A CLI tool for managing the pnpm workspace catalog, which helps you categorize the packages in the catalog and update the associated package.json reference.
pnpm-category-catalog is a CLI tool designed for monorepo projects using pnpm workspace. It solves the following pain
points:
- Batch Category Management: Process all dependencies in catalog at once, categorizing them by function or purpose
- Automatic Reference Updates: Automatically update dependency references in package.json files of sub-projects to
catalog:category-name format
- Interactive Operations: Provide a friendly command-line interactive interface with confirm, cancel and undo
support
- Batch Processing: Support loop processing until all packages are categorized

1. Project must use pnpm workspace.
2. pnpm-workspace.yaml file must exist in the project root directory.
3. pnpm-workspace.yaml file must contain catalog configuration.
> π Interested in pnpm catalogs? Recommend you read this
> post: Categorize Your Dependencies by Anthony.
> [!TIP]
> You can execute directly or install globally. The following examples use direct execution:
``bashpnpm catalog1. migrate to
(execute this command if not yet migrated).
pnpx codemod pnpm/catalog
$3
If you want to use the command globally, you can do this:
#### Global Installation
`bash
npm install -g pnpm-category-catalog
or
pnpm add -g pnpm-category-catalog
`#### Run
Run in the project root directory:
`bash
pcc
`π§ Extensions
$3
If you want to use ESLint for some constraints, you can choose one of
the following methods (optional):
@antfu/eslint-config`ts
export default antfu({
pnpm: true,
// other options ...
})
`2. If you are not using
@antfu/eslint-config, use it directly in eslint.config.js. For details,
see: pnpm-workspace-utilsπ€ Contributing
Welcome to submit Issues and Pull Requests!
$3
`bash
Install dependencies
pnpm installRun with example scenario (auto setup + run CLI)
pnpm dev:basic
`#### Example Scenarios
| Command | Description |
|------------------|------------------------------------------------------------|
|
pnpm dev:basic | Basic scenario: all deps in catalog, not yet categorized |Each run automatically resets to initial state, so you can test repeatedly without pollution.
#### Directory Structure
`
examples/
βββ fixtures/ # Original templates (read-only)
β βββ basic/
βββ workspace/ # Working directory (auto-generated, git ignored)
βββ basic/
``MIT License Β© lonewolfyx