Lightweight, composable release tooling for JavaScript and Rust projects. Built on conventional commits and designed for CI/CD pipelines.
| Package | Version | Description |
|---|---|---|
| @releasekit/release | Unified CLI — run version, notes, and publish in a single command | |
| @releasekit/version | Semantic versioning based on Git history and conventional commits | |
| @releasekit/notes | Changelog generation with LLM-powered enhancement and flexible templating | |
| @releasekit/publish | Publish packages to npm and crates.io with git tagging and GitHub releases | |
| @releasekit/config | — | (internal) Shared config loading and schema validation |
| @releasekit/core | — | (internal) Shared types and utilities |
- Conventional Commits — automatically derives the next semver bump from commit history
- Monorepo support — versions packages independently or in sync, with per-package git tags
- JavaScript + Rust — handles
package.jsonandCargo.tomlside by side - CI/CD first — JSON output mode for scriptable pipelines; OIDC or token-based npm publishing
- PR release previews — posts a comment on PRs showing what would be released if merged
- Config-driven CI automation — control release triggers (commit vs label) and strategies per repo
- Changelog generation — auto-generated from conventional commits with flexible templating
- LLM-enhanced release notes — optional AI summarisation via Anthropic, OpenAI, or local models
- Composable — use each tool independently or pipe them together
# Preview the full release pipeline
releasekit --dry-run
# Run a full release: version, changelog, and publish
releasekit
# Skip changelog generation
releasekit --skip-notes
# Force a patch bump
releasekit --bump patchIndividual steps are also available as subcommands:
releasekit version --dry-run --json
releasekit notes --dry-run
releasekit publish --dry-runEach tool can also be used independently or piped together:
# Preview changes (dry run)
releasekit-version --dry-run --json
# Run version once, use output for both notes and publish
output=$(releasekit-version --json)
echo "$output" | releasekit-notes
echo "$output" | releasekit-publish
# Changelog-only (no publishing)
releasekit-version --json | releasekit-notes
# Publish-only (no changelog)
releasekit-version --json | releasekit-publishSee the package READMEs for full CLI reference.
Use ReleaseKit as a composite GitHub Action with two modes: release and preview.
jobs:
release:
permissions:
id-token: write
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: goosewobbler/releasekit@v1
with:
mode: release
json: "true"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}jobs:
preview:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: goosewobbler/releasekit@v1
with:
mode: preview
preview-dry-run: "true"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}See docs/action.md for full input/output reference and rollout guidance.
ReleaseKit uses a single releasekit.config.json at the project root. Add $schema for editor autocompletion:
{
"$schema": "https://goosewobbler.github.io/releasekit/schema.json",
"notes": {
"changelog": { "mode": "root" }
},
"publish": {
"npm": { "enabled": true, "access": "public" }
}
}All configuration is optional — ReleaseKit uses sensible defaults. The full set of top-level keys:
| Key | Description |
|---|---|
git |
Remote name, branch, push method |
version |
Tag template, commit presets, monorepo strategy |
notes |
Changelog and release notes output, templates, LLM |
publish |
npm, Cargo, GitHub Releases |
release |
Pipeline steps, CI skip patterns |
ci |
Release triggers, PR labels, preview comments |
monorepo |
Package paths for monorepo projects |
See the per-package docs for full option references.
Getting Started — install, first dry run, first release, CI setup
Reference
- @releasekit/release — unified pipeline, CI automation, programmatic API
- @releasekit/version — versioning strategies, JSON output
- @releasekit/notes — changelog, release notes, LLM, templates
- @releasekit/publish — npm, crates.io, GitHub Releases
Guides
- CI setup — GitHub Actions workflows
- LLM providers — AI-enhanced release notes
- GitHub Releases — release body options
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run tests
pnpm test
# Lint and typecheck
pnpm lint
pnpm typecheckSee CONTRIBUTING.md for the full development guide.
MIT