Run codemods to migrate your app across Pluma breaking changes with the @customerio/pluma-cli command-line tool.
Command-line tools for Pluma, Customer.io's design
system. Today it ships codemods — automated migrations that move a consuming
app across Pluma breaking changes — grouped by the @customerio/pluma-components
version each change lands in.
No install needed — run it with pnx:
Or add it as a dev dependency and call the pluma-cli binary:
upgrade| Option | Description |
|---|---|
--list | List available codemods, grouped by target @customerio/pluma-components version. |
--codemod <id> | Run the codemod with this id (see --list). |
--json | With --list, print machine-readable JSON. |
--dry, -d | Preview changes without writing them. |
--force | Bypass a codemod's re-run safety check. |
-h, --help | Show help. |
After --codemod <id>, pass the framework (react or ember), then one or more
paths, then any flags. Flags and paths are forwarded to the codemod, so its
own options (--dry, --force, and — for React — standard jscodeshift flags)
work as documented in each codemod's README.
@customerio/pluma-components.pluma-cli upgrade --list and note the codemods whose version falls in
the range you're crossing.--dry first, review the diff and the "needs manual review"
summary, then run for real and commit.src/codemods/<target-version>/<id>/ containing a bin.mjs dispatcher
(bin.mjs <react|ember> <path…>), the react.cjs and/or ember.mjs
transforms, a README.md, and a tests/ suite. Use an existing codemod as
the template.src/registry.ts.@customerio/pluma-cli
release.The TypeScript CLI layer is bundled with pkgroll. The codemod transforms under
src/codemods/ are plain JS assets copied to dist/ at build time and run in
their own child processes, so they stay independently runnable and testable.