Skip to content

Cursus

A structured workflow for recording changes, bumping semantic versions, generating changelogs, and publishing packages to registries.

Cursus breaks the release process into three distinct steps, giving you control over each stage.

1. Record changes

As you work, record what changed and how significant it is. Each change gets its own changeset file — no merge conflicts, no manual changelog editing.

2. Prepare a release

Cursus aggregates your changesets, determines the next version using semantic versioning, updates version files, and generates a changelog.

3. Publish

Publish your packages to registries (crates.io, npm) and create GitHub Releases with build artifacts — all in one step.

CI-native

The ci subcommand auto-detects your repo state and runs the right step automatically. Works with any CI provider.

  • Changeset-based workflow — each change is a small file, avoiding merge conflicts
  • Semantic versioning — automatic version bumps based on change types
  • Monorepo support — manage multiple packages with independent or linked versions
  • Package manager adapters — first-class support for many different package ecosystems
  • Polyglot monorepo support — support for deploying to multiple ecosystems at the same time
  • Git lifecycle management — automated branching, tagging, and pushing
  • GitHub integration — pull requests, releases, and asset uploads
  • Conventional Commits — optionally derive changesets from commit messages
  • Dry-run mode — preview every action before it happens