Skip to content

Utility Commands

Beyond the core release workflow, Cursus provides a few utility commands for setup and quality enforcement.

Initialises a new Cursus configuration in your repository:

Terminal window
cursus init

This runs an interactive TUI wizard that asks which package managers you use, whether to enable git lifecycle automation, and which forge (GitHub, GitLab, or neither) to use for releases. It writes a .cursus/config.toml with sensible defaults and creates the .cursus/ directory if it doesn’t already exist. The full screen-by-screen flow is documented in the CLI reference.

init is interactive-only. Projects that need to generate config programmatically can write .cursus/config.toml directly — see the configuration reference for the full schema.

Checks that the current branch has at least one new changeset relative to a base ref:

Terminal window
cursus verify --no-interactive

Exit codes:

CodeMeaning
0At least one changeset found
1Error
2No changesets found

By default the base ref is origin/HEAD. Override it with --base:

Terminal window
cursus verify --no-interactive --base origin/main

verify is designed to be used as a CI gate so that every PR that touches releasable code includes a changeset. Add it as a required status check:

name: CI
on:
pull_request:
jobs:
verify-changeset:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- run: cursus verify --no-interactive

The fetch-depth: 0 is important — a shallow clone won’t have the history needed to compare against the base ref.

Note that PRs which use --auto to derive their changeset automatically (e.g. dependency update PRs) will satisfy this check without any manual intervention. See Automating dependency update changesets.