
Bump Deps
- 2.2k installs
- 68 repo stars
- Updated July 30, 2026
- paulrberg/agent-skills
bump-deps is an agent skill that Use for dependency updates: update/bump deps, npm/pnpm/yarn/bun package upgrades, outdated checks, package.json updates,.
About
Update Node js dependencies using taze CLI with smart prompting auto apply MINOR PATCH updates prompt for MAJOR updates individually skip fixed version packages For projects with a package manager minimum age policy pass Taze s maturity period flags so Taze filters out too new releases before writing manifests When package names are provided as arguments e g bump deps react typescript scope all taze commands to only those packages using include When dry run is passed e g bump deps dry run or bump deps dry run react scan for updates and present a summary table without applying any changes See Dry Run Mode dry run mode below Before choosing commands check whether the target project has either The bump deps agent skill provides documented workflows prerequisites triggers and safety guidance from its SKILL md source Agents load it when user requests match the description and follow step by step instructions without inventing capabilities It integrates with standard agent tooling for the tasks inputs outputs and failure modes described
- argument-hint: '[--dry-run] [package ...]'
- description: 'Use for dependency updates: update/bump deps, npm/pnpm/yarn/bun package upgrades, outdated checks, package
- Update Node.js dependencies using taze CLI with smart prompting: auto-apply MINOR/PATCH updates, prompt for MAJOR update
- Follow bump-deps SKILL.md steps and documented constraints.
- Follow bump-deps SKILL.md steps and documented constraints.
Bump Deps by the numbers
- 2,162 all-time installs (skills.sh)
- +63 installs in the week ending Jul 29, 2026 (Skillselion tracking)
- Ranked #491 of 16,565 AI & Agent Building skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Jul 31, 2026 (Skillselion catalog sync)
bump-deps capabilities & compatibility
- Capabilities
- argument hint: '[ dry run] [package ...]' · description: 'use for dependency updates: update · update node.js dependencies using taze cli with · follow bump deps skill.md steps and documented c
- Use cases
- orchestration
What bump-deps says it does
argument-hint: '[--dry-run] [package ...]'
description: 'Use for dependency updates: update/bump deps, npm/pnpm/yarn/bun package upgrades, outdated checks, package.json updates, or taze.'
Update Node.js dependencies using taze CLI with smart prompting: auto-apply MINOR/PATCH updates, prompt for MAJOR updates individually, skip fixed-version packages.
npx skills add https://github.com/paulrberg/agent-skills --skill bump-depsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2.2k |
|---|---|
| repo stars | ★ 68 |
| Security audit | 2 / 3 scanners passed |
| Last updated | July 30, 2026 |
| Repository | paulrberg/agent-skills ↗ |
When should an agent use bump-deps and what problem does it solve?
Use for dependency updates: update/bump deps, npm/pnpm/yarn/bun package upgrades, outdated checks, package.json updates, or taze.
Who is it for?
Developers invoking bump-deps as documented in the skill source.
Skip if: Skip when requirements fall outside bump-deps documented scope.
When should I use this skill?
Use for dependency updates: update/bump deps, npm/pnpm/yarn/bun package upgrades, outdated checks, package.json updates, or taze.
What you get
Outputs aligned with the bump-deps SKILL.md workflow and stated deliverables.
- taze upgrade report
- breaking-change candidate list
Files
Bump Dependencies Skill
Update Node.js dependencies using taze CLI with smart prompting: auto-apply MINOR/PATCH updates, prompt for MAJOR updates individually, skip fixed-version packages.
For projects with a package-manager minimum-age policy, pass Taze's maturity-period flags so Taze filters out too-new releases before writing manifests.
When package names are provided as arguments (e.g. /bump-deps react typescript), scope all taze commands to only those packages using --include.
When --dry-run is passed (e.g. /bump-deps --dry-run or /bump-deps --dry-run react), scan for updates and present a summary table without applying any changes. See Dry Run Mode below.
Prerequisites
Before choosing commands, check whether the target project has either:
bun.lockorbun.lockbplusbunfig.tomlwith[install].minimumReleaseAge- pnpm or Yarn minimum-age settings
If present, follow Minimum Release Age Mode.
The scan command in Step 1 also verifies that taze is installed.
scripts/run-taze.shIf exit code is 1, stop and inform the user that taze must be installed:
- Global install:
npm install -g taze - One-time:
bunx taze
Minimum Release Age Mode
Use this mode for projects that configure a package-manager minimum-age policy.
Taze calls this maturityPeriod:
--maturity-period [days]filters out package versions newer than the given number of days--maturity-period-exclude <packages>excludes packages from that filter, when supported by the installed Taze version
# 7-day cooldown
taze major -r --maturity-period 7For Bun minimumReleaseAge, convert seconds to whole days using a ceiling division. Example: 604800 seconds becomes --maturity-period 7. If the configured seconds are not a whole number of days, round up so Taze is not weaker than the package manager policy.
Taze v19.13.0+ auto-infers maturity periods from pnpm and Yarn workspace config, but not from Bun bunfig.toml. For Bun projects, pass --maturity-period explicitly.
When the package manager config has an exclude list, pass matching Taze excludes if available:
taze major -r --maturity-period 7 --maturity-period-exclude react,webpackAppend the same maturity flags to every Taze scan and write command in the workflow. After Taze writes manifests, run the project package manager install as usual; the package manager remains the final enforcement layer for direct and transitive resolution.
Update Workflow
Step 1: Scan for Updates
Run the taze script once to discover available updates. The script auto-detects monorepo projects (workspaces in package.json or pnpm-workspace.yaml) and enables recursive mode automatically.
scripts/run-taze.shStep 2: Parse and Categorize Updates
From the taze output, categorize each package update:
| Category | Version Change | Action |
|---|---|---|
| Fixed | No ^ or ~ prefix (e.g., "1.0.0") | Skip entirely |
| PATCH | x.y.z → x.y.Z (e.g., 1.0.0 → 1.0.1) | Auto-apply |
| MINOR | x.y.z → x.Y.0 (e.g., 1.0.0 → 1.1.0) | Auto-apply |
| MAJOR | x.y.z → X.0.0 (e.g., 1.0.0 → 2.0.0) | Prompt user |
If package arguments were provided, filter to only those packages.
Dry Run Mode
If --dry-run was passed, stop here — do not apply any updates. Instead, present a single markdown table summarizing all available updates and exit. The table must include every discovered package (including fixed-version packages, shown as skipped):
| Package | Current | Available | Type | Action |
|---------|---------|-----------|------|--------|
| @types/node | ^20.0.0 | ^22.0.0 | major | prompt |
| typescript | ^5.3.0 | ^5.4.0 | minor | auto-apply |
| eslint | ^8.56.0 | ^8.57.0 | patch | auto-apply |
| lucide-react | ^3.0.0 | ^4.0.0 | major | auto-apply |
| lodash | 4.17.21 | 4.18.0 | minor | skip (fixed) |Column definitions:
- Package — package name
- Current — version string as it appears in package.json (with range prefix)
- Available — new version string (preserving range prefix)
- Type —
major,minor, orpatch - Action — what the normal (non-dry-run) workflow would do:
auto-apply— MINOR/PATCH updates and auto-approved major packages (e.g.lucide-react)prompt— MAJOR updates that would be prompted to the userskip (fixed)— fixed-version packages that would be skipped
Sort the table by action priority: prompt first, then auto-apply, then skip (fixed). Within each group, sort alphabetically by package name.
After presenting the table, print a one-line summary: N updates available (M major, P minor, Q patch, F fixed-skipped) and stop. Do not proceed to Step 3 or beyond.
Identifying fixed versions: In package.json, fixed versions have no range prefix:
- Fixed:
"lodash": "4.17.21"→ skip - Ranged:
"lodash": "^4.17.21"→ process
Step 3: Select Updates to Apply
Automatically select all MINOR/PATCH updates for application. Also automatically select approved major packages:
lucide-react(icon library with frequent major bumps, backward-compatible in practice)
Do not prompt for fixed-version packages. Do not prompt for auto-approved major packages.
If no packages are selected, stop without running install.
Report the packages selected for automatic update.
Step 4: Prompt for MAJOR Updates
For each remaining major update, use AskUserQuestion to ask the user individually:
Package: <package-name>
Current: <current-version>
Available: <new-version>
Update to major version?Question format:
- header: Package name (max 12 chars, truncate if needed)
- options: "Yes, update" / "No, skip"
- multiSelect: false
Collect all approved major updates.
Step 5: Apply Selected Updates
After collecting user approvals, apply all selected packages in one write command. Include MINOR/PATCH updates, auto-approved major packages, and user-approved major packages:
scripts/run-taze.sh --write --include <pkg1>,<pkg2>,<pkg3>The script keeps the same monorepo and maturity-period flags used by the scan. It omits --include-locked in write mode so fixed-version packages remain untouched.
Step 6: Update Bun Catalogs
After applying all updates, check the root package.json for Bun workspace catalogs. Bun monorepos can centralize dependency versions using catalog and catalogs fields inside the workspaces object:
{
"workspaces": {
"packages": ["packages/*"],
"catalog": {
"react": "^19.0.0"
},
"catalogs": {
"testing": {
"jest": "^30.0.0"
}
}
}
}Workspace packages reference these with "react": "catalog:" (default catalog) or "jest": "catalog:testing" (named catalog).
Skip this step if neither workspaces.catalog nor workspaces.catalogs exists in the root package.json.
For each package that was updated in Step 5:
1. Check if it appears in workspaces.catalog — if so, update the version there 2. Check each named catalog in workspaces.catalogs — if the package appears, update the version there
Preserve the existing range prefix (^, ~, or none) from the catalog entry. For example, if the catalog has "react": "^19.0.0" and taze bumped react to 19.1.0, update the catalog to "react": "^19.1.0".
Use Edit to apply the version changes directly to the root package.json.
Step 7: Install Dependencies
After all updates are applied, run ni to install dependencies. It auto-detects the package manager.
Taze Output Interpretation
Taze displays updates grouped by type. Example output:
@types/node ^20.0.0 → ^22.0.0 (major)
typescript ^5.3.0 → ^5.4.0 (minor)
eslint ^8.56.0 → ^8.57.0 (patch)The rightmost column indicates update type (major/minor/patch).
Packages shown with --include-locked that have no ^ or ~ are fixed versions—skip these entirely.
Script Reference
| Script | Purpose |
|---|---|
scripts/run-taze.sh | Run taze in non-interactive mode, check installation |
Supported script arguments:
--include <packages>— pass a comma-separated package list or taze include regex--concurrency <n>— pass through taze's request concurrency setting--write— write selected updates; requires--include; scan mode is the default
Important Notes
- Fixed-version dependencies (no
^or~) indicate intentional pinning—never modify these - MAJOR updates may contain breaking changes—prompt the user unless the package is explicitly auto-approved
- MINOR/PATCH updates are backward-compatible by semver convention—safe to auto-apply
- The
--includeflag accepts comma-separated package names or regex patterns - Monorepo detection is automatic—no flag needed when using
scripts/run-taze.sh - Bun catalogs (
workspaces.catalog/workspaces.catalogs) are the source of truth for workspace packages using thecatalog:protocol—always update catalog entries alongside regular deps
policy:
allow_implicit_invocation: true
#!/usr/bin/env bash
# run-taze.sh - Run taze in non-interactive mode
#
# Usage: run-taze.sh [--include pkg1,pkg2] [--concurrency n] [--write] [path]
#
# Automatically detects monorepo projects (workspaces in package.json
# or pnpm-workspace.yaml) and enables recursive mode.
#
# Bun projects with bunfig.toml minimumReleaseAge get matching Taze
# maturity-period flags. Taze does not auto-infer Bun's age gate.
#
# Exit codes:
# 0 - Success (updates displayed)
# 1 - taze not installed
# 2 - No package.json found
# 64 - Usage error
set -euo pipefail
include=""
concurrency=""
write=false
target_dir="."
while [[ $# -gt 0 ]]; do
case "$1" in
--include)
include="${2:?ERROR: --include requires a value}"
shift 2
;;
--include=*)
include="${1#*=}"
shift
;;
--concurrency)
concurrency="${2:?ERROR: --concurrency requires a value}"
shift 2
;;
--concurrency=*)
concurrency="${1#*=}"
shift
;;
--write)
write=true
shift
;;
-*)
echo "ERROR: Unknown option: $1" >&2
exit 64
;;
*)
if [[ "$target_dir" != "." ]]; then
echo "ERROR: Only one target path is supported" >&2
exit 64
fi
target_dir="$1"
shift
;;
esac
done
# Check for package.json
if [[ ! -f "$target_dir/package.json" ]]; then
echo "ERROR: No package.json found in $target_dir" >&2
exit 2
fi
cd "$target_dir"
# Auto-detect monorepo
taze_args=(major)
if grep -q '"workspaces"' package.json 2>/dev/null ||
[[ -f pnpm-workspace.yaml ]]; then
taze_args+=("-r")
fi
# Check taze availability
if ! command -v taze &>/dev/null; then
cat >&2 <<'EOF'
ERROR: taze CLI is not installed.
Install taze globally:
npm install -g taze
Or run via bunx:
bunx taze
Documentation: https://github.com/antfu-collective/taze
EOF
exit 1
fi
if [[ -n "$include" ]]; then
taze_args+=("--include" "$include")
fi
if [[ -n "$concurrency" ]]; then
taze_args+=("--concurrency" "$concurrency")
fi
if [[ "$write" == true && -z "$include" ]]; then
echo "ERROR: --write requires --include with the selected package list" >&2
exit 64
fi
# Mirror Bun's delayed-resolution policy for direct dependency candidates.
# bunfig.toml stores seconds; Taze expects whole days.
if [[ -f bunfig.toml ]] && [[ -f bun.lock || -f bun.lockb ]]; then
minimum_release_age="$(sed -nE 's/^[[:space:]]*minimumReleaseAge[[:space:]]*=[[:space:]]*([0-9]+).*$/\1/p' bunfig.toml | head -n 1)"
if [[ -n "$minimum_release_age" && "$minimum_release_age" != "0" ]]; then
maturity_days=$(((minimum_release_age + 86399) / 86400))
taze_args+=("--maturity-period" "$maturity_days")
fi
maturity_excludes="$(sed -nE 's/^[[:space:]]*minimumReleaseAgeExcludes[[:space:]]*=[[:space:]]*\[(.*)\].*$/\1/p' bunfig.toml | head -n 1 | tr -d '[:space:]"')"
if [[ -n "$maturity_excludes" ]] && taze --help 2>/dev/null | grep -q -- '--maturity-period-exclude'; then
taze_args+=("--maturity-period-exclude" "$maturity_excludes")
fi
fi
if [[ "$write" == true ]]; then
taze_args+=("--write")
else
# Scan all available updates, including fixed versions (no ^ or ~).
taze_args+=("--include-locked")
fi
taze "${taze_args[@]}" 2>&1
Related skills
How it compares
Pick bump-deps over generic package-audit prompts when you need taze-specific major-version and breaking-change output across detected workspaces.
FAQ
What is bump-deps?
Use for dependency updates: update/bump deps, npm/pnpm/yarn/bun package upgrades, outdated checks, package.json updates, or taze.
When should I use bump-deps?
Use for dependency updates: update/bump deps, npm/pnpm/yarn/bun package upgrades, outdated checks, package.json updates, or taze.
Is bump-deps safe to install?
Review the Security Audits panel on this page before production use.