Skip to content

CLI Reference

These flags can be used with any subcommand.

FlagShortDescription
--interactiveEnable interactive TUI (default)
--no-interactiveDisable interactive prompts
--verbose-vIncrease log verbosity. Repeat (-vv) for trace output
--silent-sSuppress all output except errors
--dry-run-nPreview changes without modifying files or running registry commands

--verbose and --silent are mutually exclusive.

Initialise a new Cursus configuration using the interactive setup wizard.

Terminal window
cursus init

Creates .cursus/config.toml with your chosen package managers and settings. This command is interactive-only.

Record a change to the project. This is the default subcommand — running cursus with no subcommand is equivalent to cursus change.

Terminal window
cursus change [OPTIONS]
FlagShortDescription
--change-type <TYPE>-tChange type: major, minor, or patch
--message <TEXT>-mDescription of the change
--project <NAME>-pPackage(s) to apply to. Repeatable. Defaults to git-changed projects, or all if none detected
--autoDerive changeset from the most recent Conventional Commit
--no-gitSkip commit and push (requires --auto)

--auto is mutually exclusive with --change-type and --message.

Terminal window
# Very simple
cursus
# Interactive
cursus change
# Non-interactive, specific package
cursus change --no-interactive -t minor -m "Add retry logic" -p my-lib
# From Conventional Commit
cursus change --no-interactive --auto

Prepare a release: aggregate changesets, bump versions, generate changelogs, and manage branches.

Terminal window
cursus prepare [OPTIONS]
FlagShortDescription
--package <NAME>-pPackage(s) to prepare. Repeatable. Defaults to all
--no-gitSkip git lifecycle automation
--branch <NAME>Override release branch name (branch strategy only)
Terminal window
# Prepare all packages
cursus prepare --no-interactive
# Prepare specific packages
cursus prepare --no-interactive -p my-lib -p my-cli
# Preview without changes
cursus prepare --no-interactive --dry-run

Publish packages to their registries, create Git tags, and optionally create GitHub Releases.

Terminal window
cursus publish [OPTIONS]
FlagShortDescription
--package <NAME>-pPackage(s) to publish. Repeatable. Defaults to all
--no-gitSkip Git tags, tag pushing, and GitHub Releases
Terminal window
# Publish all packages
cursus publish --no-interactive
# Publish without Git operations
cursus publish --no-interactive --no-git

Auto-detect repository state and run prepare or publish as needed. Designed for CI pipelines.

This command is always non-interactive.

Terminal window
cursus ci [OPTIONS]
FlagShortDescription
--package <NAME>-pPackage(s) to operate on. Repeatable. Defaults to all
--branch <NAME>Override release branch name
--no-gitSkip git/GitHub operations

Detection logic:

  1. If changeset files exist in .cursus/ → runs prepare
  2. If no changesets but packages have versions without matching Git tags → runs publish
  3. Otherwise → exits successfully (no-op)

Verify that the current branch adds at least one changeset compared to a base ref. Designed for CI to enforce changeset discipline on pull requests.

Terminal window
cursus verify [OPTIONS]
FlagDescription
--base <REF>Base Git ref to compare against (default: origin/HEAD)

Exit codes:

CodeMeaning
0Changeset(s) found
1Error
2No changesets found