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, 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.
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.