A modern cli tool that keeps your deps fresh
—
Command-line interface for interactive and automated dependency management. The CLI provides a comprehensive set of options for checking, updating, and managing package dependencies.
taze [mode] [options]Specify the maximum level of version updates to consider:
# Available modes
taze default # Respect existing version ranges (safe, default behavior)
taze major # Allow major version updates (breaking changes)
taze minor # Allow minor version updates (new features)
taze patch # Allow patch version updates (bug fixes only)
taze latest # Update to latest stable version
taze newest # Update to newest version (including pre-release)
taze next # Update to next version tagUsage Examples:
# Check for updates within existing ranges
taze
# Check for major updates (including breaking changes)
taze major
# Check only for patch updates (bug fixes)
taze patch--cwd, -C <cwd> # Specify current working directory
--recursive, -r # Recursively search for package.json in subdirectories
--ignore-paths <paths> # Ignore specific paths during recursive search
--ignore-other-workspaces # Ignore package.json files in other workspaces (default: true)--include, -n <deps> # Only check specified dependencies (comma-separated)
--exclude, -x <deps> # Exclude specific dependencies (comma-separated, overrides --include)
--include-locked, -l # Include locked dependencies and devDependencies
--peer # Include peerDependencies in the update process--write, -w # Write changes to package.json files
--interactive, -I # Interactive mode for selective updates
--install, -i # Run package manager install after updating
--update, -u # Run package manager update after updating--all, -a # Show all packages, including up-to-date ones
--sort <type> # Sort by update urgency (diff-asc, diff-desc, name-asc, name-desc)
--group # Group dependencies by source (dependencies, devDependencies, etc.)
--timediff # Show time difference between current and updated versions (default: enabled)
--nodecompat # Show package compatibility with current Node.js version (default: enabled)--loglevel <level> # Set log level (debug, info, warn, error, silent)
--silent, -s # Complete silent mode (equivalent to --loglevel silent)
--fail-on-outdated # Exit with code 1 if outdated dependencies are found
--force, -f # Force fetching from server, bypass cache--global, -g # Update global packages instead of local ones# Check for updates (read-only)
taze
# Check and write updates interactively
taze -I -w
# Check for minor updates and install automatically
taze minor -w -i
# Recursively check monorepo with interactive updates
taze -r -I -w# Only check React ecosystem packages
taze -n "react,react-dom,@types/react" -w
# Exclude testing libraries from updates
taze -x "jest,vitest,@testing-library/*" -w
# Update only TypeScript type packages
taze -n "@types/*" minor -w# Check for outdated dependencies in CI (fail build if found)
taze --fail-on-outdated --silent
# Generate update report without writing changes
taze major --all --sort diff-desc
# Force cache refresh in CI environment
taze --force --loglevel warn# Recursively check all packages in monorepo
taze -r
# Update workspace root and all packages
taze -r -w --include-locked
# Interactive updates across entire monorepo
taze -r -I -w --group# Check global packages
taze -g
# Update global packages interactively
taze -g -I -w
# Update specific global packages
taze -g -n "typescript,@angular/cli" -wTaze supports configuration files for persistent settings:
{
"mode": "minor",
"recursive": true,
"include": ["react*", "@types/*"],
"exclude": ["legacy-*"],
"write": false,
"interactive": true,
"sort": "diff-desc",
"group": true
}export default {
mode: "patch",
recursive: true,
depFields: {
dependencies: true,
devDependencies: true,
peerDependencies: false
},
packageMode: {
"react": "minor",
"typescript": "patch"
}
};When using --interactive or -I, Taze provides a rich interactive interface:
↑/↓: Navigate between dependenciesSpace: Toggle selectiona: Select alli: Invert selectionEnter: Apply selected changesq/Esc: Quit without changes0 # Success, no outdated dependencies or updates applied successfully
1 # Outdated dependencies found (when using --fail-on-outdated)
1 # Error occurred during executionDEBUG=taze:* # Enable debug logging for all Taze operations
NO_COLOR=1 # Disable colored output
FORCE_COLOR=1 # Force colored output even in non-TTY environmentsTaze automatically detects and works with different package managers:
# Taze will use npm commands when package-lock.json is present
taze -w -i # Runs 'npm install' after updates# Taze will use yarn commands when yarn.lock is present
taze -w -u # Runs 'yarn upgrade' after updates# Taze will use pnpm commands when pnpm-lock.yaml is present
taze -w -i # Runs 'pnpm install' after updates$ taze
┌─────────────────────────────────────────────────────────────┐
│ Dependencies │
├─────────────────┬─────────────┬─────────────┬──────────────┤
│ Name │ Current │ Wanted │ Latest │
├─────────────────┼─────────────┼─────────────┼──────────────┤
│ typescript │ ^4.9.5 │ ^5.2.2 │ 5.2.2 │
│ @types/node │ ^18.0.0 │ ^18.17.5 │ 18.17.5 │
└─────────────────┴─────────────┴─────────────┴──────────────┘$ taze -I
┌─────────────────────────────────────────────────────────────┐
│ Interactive Updates │
├─────────────────┬─────────────┬─────────────┬──────────────┤
│ ☐ typescript │ ^4.9.5 │ ^5.2.2 │ 5.2.2 │
│ ☑ @types/node │ ^18.0.0 │ ^18.17.5 │ 18.17.5 │
└─────────────────┴─────────────┴─────────────┴──────────────┘
Use ↑/↓ to navigate, Space to select, Enter to applyInstall with Tessl CLI
npx tessl i tessl/npm-taze