monochange
monochange is the top-level entry point for the workspace.
Reach for this crate when you want one API and CLI surface that discovers packages across Cargo, npm/pnpm/Bun, Deno, and Dart/Flutter workspaces, exposes top-level commands from monochange.toml, and runs configured CLI commands from those definitions.
Why use it?
- coordinate one config-defined CLI across several package ecosystems
- expose discovery, change creation, and release preparation as both commands and library calls
- connect configuration loading, package discovery, graph propagation, and semver evidence in one place
Best for
- shipping the
mcCLI in CI or local release tooling - embedding the full end-to-end planner instead of wiring the lower-level crates together yourself
- generating starter config with
mc initand then evolving the CLI command surface over time
Key commands
Responsibilities
- aggregate all supported ecosystem adapters
- load
monochange.toml - start from the built-in default CLI commands and let matching config entries replace them
- resolve change input files
- render discovery and release command output in text or JSON
- execute configured CLI commands plus built-in assistant setup and MCP commands
- preview or publish provider releases from prepared release data
- evaluate pull-request changeset policy from CI-supplied changed paths and labels
- expose JSON-first MCP tools for assistant workflows