On this page
Overview
Changesets is a CLI and workflow for package versioning and changelog management. Contributors record the affected packages, SemVer bump types, and release notes in Markdown changeset files, then release tooling consumes those files to update versions and changelogs. It is designed especially for monorepos and their internal dependency relationships.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Record package and SemVer bump intent alongside each change
A changeset is a Markdown file whose YAML frontmatter lists packages and patch, minor, or major bump types while the body carries the changelog summary.
Sources: [2]
Coordinate related package versions in monorepos
Changesets focuses on monorepos and can account for dependencies between packages when assembling release plans, while the workflow also works for single-package repositories.
Run versioning, changelog updates, and publishing through one CLI
changeset version consumes accumulated changesets and updates package versions and changelogs, while changeset publish publishes updated packages and creates Git tags.
Sources: [3]
Best fit
Before adoption
Do not require changesets for changes that do not produce releases
The official guide says changes that do not need a release do not require a changeset and recommends against making the absence of a changeset a universal contribution blocker.
Sources: [2]
Protect publishing credentials and push generated tags
Publishing requires registry permissions. The guide warns against leaking access tokens, recommends trusted publishing where practical, and notes that generated Git tags need to be pushed to the remote.
Sources: [3]
Official sources
- [1]Changesets CLI 3.0.3 README(2026-10-03)
- [2]Changesets 3.0.3 getting started(2026-10-03)
- [3]Changesets 3.0.3 versioning and publishing(2026-10-03)
- [4]@changesets/cli 3.0.3 package metadata(2026-10-03)
- [5]@changesets/cli 3.0.3 release(2026-10-03)
- [6]Changesets MIT license(2026-10-03)
Supplemental curator note
Changesets captures release intent while the contributor still has context about the change. Avoid making a changeset mandatory for every commit; define how documentation, tests, and other non-release changes should be handled by the team.
Try it in 3 steps
- 1
Add Changesets CLI 3.0.3 as a development dependency
Pin the CLI in an existing package project using Node
^22.11 || ^24 || >=26and npm 10.9 or newer.npm install --save-dev @changesets/cli@3.0.3 - 2
Initialize the
.changesetconfigurationCreate the
.changesetdirectory and configuration that drives version and changelog management.npx changeset init - 3
Record the change and its SemVer bump
Interactively select packages, patch/minor/major bump types, and a changelog summary, then commit the generated Markdown file with the change.
npx changeset
Growth
Growth trends · Last 30 days
12,466 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 18
- Open PRs
- 76
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
- Stars
- 12,466
- Forks
- 840
- Watchers
- 45
- Open issues
- 194
- Contributors
- 198
- Owner type
- Organization
- Primary language
- TypeScript
- License
- MIT
- Repository last updated
- Sep 27, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- n8n206,530 Stars
2 shared tag(s) · 1 shared category(s) · Same language
Connect visual workflows, code, AI agents, and human approvals in one automation runtime
TypeScript - Dify157,734 Stars
2 shared tag(s) · 1 shared category(s) · Same language
design and publish AI workflows, retrieval, and agents on one platform
TypeScript - Mermaid90,524 Stars
2 shared tag(s) · 1 shared category(s) · Same language
Generate flowcharts, sequences, classes, ER diagrams, Gantt charts, and more from text syntax
TypeScript - commitlint18,759 Stars
4 shared tag(s) · 3 shared category(s) · Same language
lint Git commit messages against Conventional Commits and custom rules so release and changelog automation receives consistent metadata
TypeScript - Playwright97,021 Stars
4 shared tag(s) · 1 shared category(s) · Same language
Drive Chromium, Firefox, and WebKit through one API and test runner for E2E, scripting, and agent browser automation
TypeScript - Storybook91,196 Stars
3 shared tag(s) · 1 shared category(s) · Same language
capture UI states once and reuse them across docs, interaction tests, and agent tooling
TypeScript
Report incorrect information
Tell us if any listing information is incorrect or outdated.