CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-taze

A modern cli tool that keeps your deps fresh

Pending
Overview
Eval results
Files

cli-usage.mddocs/

CLI Usage

Command-line interface for interactive and automated dependency management. The CLI provides a comprehensive set of options for checking, updating, and managing package dependencies.

Command Syntax

taze [mode] [options]

Update Modes

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 tag

Usage 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

Core Options

Directory and Search Options

--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)

Dependency Filtering Options

--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

Update and Write Options

--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

Display and Output Options

--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)

Logging and Control Options

--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 Package Management

--global, -g                 # Update global packages instead of local ones

Common Usage Patterns

Basic Workflows

# 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

Advanced Filtering

# 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

CI/CD Integration

# 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

Monorepo Management

# 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

Global Package Management

# Check global packages
taze -g

# Update global packages interactively
taze -g -I -w

# Update specific global packages
taze -g -n "typescript,@angular/cli" -w

Configuration Files

Taze supports configuration files for persistent settings:

.tazerc.json

{
  "mode": "minor",
  "recursive": true,
  "include": ["react*", "@types/*"],
  "exclude": ["legacy-*"],
  "write": false,
  "interactive": true,
  "sort": "diff-desc",
  "group": true
}

taze.config.js

export default {
  mode: "patch",
  recursive: true,
  depFields: {
    dependencies: true,
    devDependencies: true,
    peerDependencies: false
  },
  packageMode: {
    "react": "minor",
    "typescript": "patch"
  }
};

Interactive Mode

When using --interactive or -I, Taze provides a rich interactive interface:

Features

  • Checkbox selection: Use space to toggle individual dependencies
  • Bulk actions: Select/deselect all with keyboard shortcuts
  • Filtering: Search and filter dependencies by name or type
  • Preview: See exactly what changes will be made before writing
  • Grouping: Dependencies organized by type (deps, devDeps, etc.)

Keyboard Controls

  • ↑/↓: Navigate between dependencies
  • Space: Toggle selection
  • a: Select all
  • i: Invert selection
  • Enter: Apply selected changes
  • q/Esc: Quit without changes

Exit Codes

0  # Success, no outdated dependencies or updates applied successfully
1  # Outdated dependencies found (when using --fail-on-outdated)
1  # Error occurred during execution

Environment Variables

DEBUG=taze:*          # Enable debug logging for all Taze operations
NO_COLOR=1            # Disable colored output
FORCE_COLOR=1         # Force colored output even in non-TTY environments

Package Manager Integration

Taze automatically detects and works with different package managers:

npm

# Taze will use npm commands when package-lock.json is present
taze -w -i  # Runs 'npm install' after updates

yarn

# Taze will use yarn commands when yarn.lock is present
taze -w -u  # Runs 'yarn upgrade' after updates

pnpm

# Taze will use pnpm commands when pnpm-lock.yaml is present
taze -w -i  # Runs 'pnpm install' after updates

Examples with Output

Standard Check

$ 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      │
└─────────────────┴─────────────┴─────────────┴──────────────┘

Interactive Mode

$ 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 apply

Install with Tessl CLI

npx tessl i tessl/npm-taze

docs

api-usage.md

cli-usage.md

configuration.md

index.md

tile.json