Skip to content

Quick Start

This guide walks you through the core Cursus workflow: initialise, record changes, prepare a release, and publish.

Run the setup wizard in the root of your Git repository:

Terminal window
cursus init

This creates a .cursus/config.toml file and the .cursus/ directory where changesets are stored. The wizard will ask which package managers you use and configure them.

After making changes to your code, record what changed:

Terminal window
cursus change

With no subcommand, change is the default. The interactive TUI will ask you to select the affected packages, choose a change type (major, minor, or patch), and write a description.

For non-interactive use (e.g., in scripts or CI):

Terminal window
cursus change --no-interactive -t minor -m "Add support for linked versions"

This creates a changeset file in .cursus/ — commit it alongside your code changes.

When you’re ready to release, aggregate all pending changesets into a version bump:

Terminal window
cursus prepare

This will:

  • Read all pending changeset files
  • Determine the next version for each package based on the highest change type
  • Update version numbers in your package files (Cargo.toml, package.json, etc.)
  • Generate or update CHANGELOG.md entries
  • Remove the consumed changeset files

Once a release is prepared, publish to your registries:

Terminal window
cursus publish

This publishes each package to its registry (crates.io, npm), creates Git tags, and optionally creates GitHub Releases with build artifacts.

For CI pipelines, the ci subcommand handles everything automatically:

Terminal window
cursus ci --no-interactive

It detects the repo state and runs either prepare or publish as needed. See the CI Integration guide for details.