Utility Commands
Beyond the core release workflow, Cursus provides a few utility commands for setup and quality enforcement.
cursus init
Section titled “cursus init”Initialises a new Cursus configuration in your repository:
cursus initThis runs an interactive TUI wizard that asks which package managers you use and writes a .cursus/config.toml with sensible defaults. It also creates the .cursus/ directory if it doesn’t already exist.
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.
cursus verify
Section titled “cursus verify”Checks that the current branch has at least one new changeset relative to a base ref:
cursus verify --no-interactiveExit codes:
| Code | Meaning |
|---|---|
| 0 | At least one changeset found |
| 1 | Error |
| 2 | No changesets found |
By default the base ref is origin/HEAD. Override it with --base:
cursus verify --no-interactive --base origin/mainEnforcing changesets on pull requests
Section titled “Enforcing changesets on pull requests”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: CIon: pull_request:
jobs: verify-changeset: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 with: fetch-depth: 0 - run: cursus verify --no-interactiveThe 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.