Package Exports
- chromatic
- chromatic/isChromatic
- chromatic/node
Readme
Chromatic CLI
Publishes your Storybook to Chromatic and kicks off tests if they're enabled.

Documentation
👉 Read the Chromatic CLI docs
📝 View the Changelog
Contributing
Contributions of any kind are welcome! We're available to chat via the Intercom widget on the documentation site.
Compatibility & versioning
Compatibility is guaranteed between this package and Chromatic like so:
- Production Chromatic ensures it’s compatible with what’s on npm
- What's on the Git tag is equal to what's published on npm for that version
- This package ensures it’s compatible with production Chromatic
To facilitate upgrading in the future, removing and adding features, this is the process:
- Any new features will have to be on Chromatic production before they could be used in this package
- We can add feature flags to be able to test new functionality
- Chromatic production can not remove any features this package depends on until after the usage has been removed from this package in addition to a grace period to allow users to upgrade
Building and running locally
- Ensure all dependencies are installed with
yarn install
- Build + watch the code locally:
yarn dev
- Run a build of all the CLI's stories against a Chromatic project:
yarn chromatic -t <token>
.
Running against staging
CHROMATIC_INDEX_URL=https://index.staging-chromatic.com yarn chromatic -t <token>
Running against development
To test against a local development version of the Chromatic stack, use
CHROMATIC_INDEX_URL=https://index.dev-chromatic.com yarn chromatic -t <token>
To only test a small number of test stories as a smoke test, use:
SMOKE_TEST=1 CHROMATIC_INDEX_URL=https://index.dev-chromatic.com yarn chromatic -t <token>
Publishing a new version
We use auto
to automate the release process. Versions are bumped, tags are created and the changelog is updated automatically. A new release goes out whenever a PR is merged to main
. A PR must have exactly one of the following labels before merging:
major
triggers a major version bumpminor
triggers a minor version bumppatch
triggers a patch version bump
Additionally, a PR may have exactly one of these labels:
release
creates alatest
rather than anext
release (see below)skip-release
does not create a release at all
We have three types of releases:
latest
releases are the general audience production releases, used by most people. Automatically created when merging a PR with therelease
label.next
releases should be valid, working releases that can potentially be used by early adopters of new features, for example to handle a support request. Automatically created when merging a PR without therelease
andskip-release
labels.canary
releases are intended for testing purposes and should not be used in production, as they may only work against a staging or dev environment. Automatically created on every PR, but does not auto-publush the GitHub Action.
For GitHub Actions, we publish
chromaui/action-next
andchromaui/action-canary
. The latter is only published manually, rather than for every PR.
A script is provided to manually publish the GitHub Action, though it's typically only necessary for action-canary
releases:
yarn publish-action <canary|next|latest>