home / github / changesets

Changesets

12k

Release workflow CLI for adding changesets, versioning packages, generating changelogs, and publishing npm releases.

$npm install -D @changesets/cli
Language
TypeScript
Stars
11,502
Category
GitHub & Git
Agent
Ready
Agent Compatibility
JSON Output
Agent Skill
MCP Support
AI Analysis

Changesets is a release workflow CLI for package repositories that stores release intent in checked-in .changeset files, then turns those files into version bumps, changelog updates, and publishes. It is built around monorepos, but it also supports single-package repos and private apps tracked through package.json.

What It Enables
  • Capture release intent per change by creating .changeset files with package bump types and human-written summaries.
  • Turn accumulated changesets into coordinated package version bumps, internal dependency updates, changelog entries, and git tags across a repo.
  • Gate CI or release automation with changeset status, then publish unpublished packages to npm or trigger other release workflows from the tags it creates.
Agent Fit
  • Commands like init, version, status, publish, and tag are deterministic shell steps that fit inspect/change/verify loops in CI and release scripts.
  • changeset status --output provides a machine-readable release plan, and missing-changeset cases fail with a non-zero exit code that automation can enforce.
  • add is prompt-driven by default, and publish may require npm auth or OTP input, so unattended agents work best when changeset files and credentials are already in place.
Caveats
  • Structured output is limited: the JSON release plan is written to a file via status --output, while most commands print human-oriented logs to stdout.
  • publish assumes the last commit is the release commit and should be run in a disciplined release flow to avoid tagging or publishing the wrong state.