Skip to content

Latest commit

 

History

History

README.md

Patch Pulse CLI

This package lives in the Patch Pulse monorepo at packages/cli.

Check for outdated npm dependencies across your project.

License npm Version npm Downloads CI/CD GitHub stars

Patch Pulse Banner

Quick Start

npx patch-pulse

That's it! Patch Pulse scans the current project for package.json files and shows which dependencies are outdated.

Docs: https://barrymichaeldoyle.github.io/patch-pulse/

  • Zero runtime dependencies
  • Monorepo-aware, including pnpm catalog: support
  • Interactive terminal updates for patch, minor, or all outdated packages

Example CLI Demo

Configuration

Patch Pulse supports configuration files for persistent settings. Prefer patchpulse.json in your project root. These filenames are supported:

  • patchpulse.json
  • patchpulse.config.json
  • .patchpulserc.json
  • .patchpulserc

Configuration File Example

{
  "skip": ["lodash", "@types/*", "test-*"],
  "ignorePaths": ["packages/cli/e2e"],
  "packageManager": "npm",
  "interactive": true
}

Skip Patterns

The skip array supports exact names and glob wildcards:

  • Exact names: "lodash", "chalk"
  • Glob patterns: "@types/*", "test-*", "*-dev"

Ignore Paths

The ignorePaths array excludes matching directories or package.json paths from workspace scanning:

  • Exact paths: "packages/cli/e2e"
  • Glob patterns: "**/fixtures", "packages/*/dist"

Package Manager

The packageManager option allows you to override the package manager detection.

  • npm
  • pnpm
  • yarn
  • bun

Interactive Mode

The interactive option opts in to the interactive update prompt after the summary.

CLI vs File Configuration

CLI arguments override file configuration:

# This will override any settings in patchpulse.json
npx patch-pulse --skip "react,react-dom" --package-manager pnpm --no-interactive

For monorepos, use --expand to print full dependency sections for clean workspaces too.

npx patch-pulse --expand

Use --hide-clean to hide clean workspaces entirely.

npx patch-pulse --hide-clean

Focus one project by workspace path or package name:

npx patch-pulse --project packages/app

Use --json for scripts, CI, or editor integrations:

npx patch-pulse --json

Use --fail to exit with code 1 if any outdated packages are found — useful as a CI gate:

npx patch-pulse --fail
# or combine with --json for machine-readable output + non-zero exit
npx patch-pulse --json --fail

When running the local workspace CLI through the root script, use pnpm -s to suppress pnpm's script banner before JSON output:

pnpm -s pp -- --json

Monorepos

When run from a repository root, Patch Pulse scans every package.json under the current directory except anything inside node_modules.

  • workspace:* dependencies are ignored
  • pnpm catalog: dependencies are resolved from pnpm-workspace.yaml
  • interactive dependency updates can update both direct dependency ranges and pnpm catalog entries

Slack Bot

Get notified in Slack whenever a package you depend on releases a new version.

Add to Slack

Help us reach the Slack Marketplace! We need at least 5 active workspace installs before Slack will approve PatchPulse for the official Marketplace. If the bot looks useful to you, installing it now is a huge help — it's free and takes about 30 seconds.

Discord Bot

Get notified in Discord whenever a package you depend on releases a new version.

Add to Discord

GitHub Action

Automate dependency update pull requests on a schedule with the Patch Pulse GitHub Action.

Read the GitHub Action docs

Ecosystem

  • 🔧 CLI Tool (this repo) - Check dependencies from terminal
  • ⚡ VSCode Extension (@PatchPulse/vscode-extension) - Get updates in your editor (Coming soon)
  • 🤖 Slack Bot (Add to Workspace) - Get notified in Slack
  • 💬 Discord Bot (Add to Server) - Get notified in Discord
  • ⚙️ GitHub Action (Docs) - Open dependency update PRs automatically

Troubleshooting

  • "No dependencies found" - Run from a project directory that contains dependency-bearing package.json files
  • "Error reading package.json" - Check JSON syntax and file permissions
  • Network errors - Verify internet connection and npm registry access
  • Debug registry lookups - Run PATCH_PULSE_DEBUG=1 npx patch-pulse to log npm lookup failures and HTTP/network errors
  • Machine-readable output - Run npx patch-pulse --json for scripts or CI

Contributing

  1. Fork and clone
  2. npm install
  3. Make changes
  4. Submit PR

Guidelines: Add tests, update docs, keep commits atomic.

Support

License

MIT - see LICENSE

Author

@BarryMichaelDoyle

🎥 Live Development: Sometimes I stream on Twitch - drop by and say hello!


Made with ❤️ for the Node.js community