Beachball
The Sunniest Semantic Version Bumper
Install / Use
/learn @microsoft/BeachballREADME
beachball
the sunniest version bumping tool
Prerequisites
A git repo with a remote
Usage
beachball [command] [options]
Commands
change (default)
a tool to help create change files in the change/ folder
check
checks whether a change file is needed for this branch
bump
bumps versions as well as generating changelogs
publish
bumps, publishes to npm registry, and pushes changelogs back into the target branch
sync
synchronizes published versions of packages from a registry, makes local package.json changes to match what is published
config
inspect the effective beachball configuration for the repo or a specific package
Options
Some of the most common options are summarized below. For all options, see the pages for CLI options and config file options.
--config, -c
Explicit configuration file to use instead of the configuration automatically detected by cosmicconfig.
--registry, -r (config: registry)
registry, defaults to https://registry.npmjs.org
--tag, -t (config: tag)
- for the
publishcommand: dist-tag for npm publishes - for the
synccommand: will use specified tag to set the version
--branch, -b (config: branch)
target branch from remote (default: as configured in git config init.defaultBranch)
--message, -m
- for the
publishcommand: message for the checkin (default: "applying package updates") - for the
changecommand: change file comment for all changed packages
--type
for the change command: change type for all changed packages
--package
for the change command: specific package(s) to create a change file for
--no-push (config: push)
skip pushing changes back to git remote origin
--no-publish (config: publish)
skip publishing to the npm registry
--help, -?, -h
show help message
--yes, -y
skips the prompts for publish
Examples
# check for change files
beachball check
# interactively create change files
beachball change
# non-interactively create change files
beachball change --type patch --message "awesome changes"
# publish changes
beachball publish -r http://localhost:4873 -t beta
Notes
Overriding concurrency
In large monorepos, the process of fetching versions for sync or before publishing can be time-consuming due to the high number of packages. To optimize performance, you can override the concurrency for fetching from the registry by setting options.npmReadConcurrency (default: 5). You can also increase concurrency for hook calls and publish operations via options.concurrency (default: 1; respects topological order).
API surface
Beachball does not have a public API beyond the provided options. Usage of private APIs is not supported and may break at any time.
If you need to customize something beyond what's currently supported in the options, please open a feature request or talk with the maintainers.
AI integration
Normally, Beachball uses an interactive CLI prompt for generating change files. Since this doesn't work for AI agents, we have a change file skill with manual instructions.
Related Skills
apple-reminders
341.8kManage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
gh-issues
341.8kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
healthcheck
341.8kHost security hardening and risk-tolerance configuration for OpenClaw deployments
node-connect
341.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
