cambi

A tool that infers semantic version bumps from conventional commits, updates CHANGELOG.md, and manages GitHub releases.

Introduction

%s %s

cambi is a tool that infers semantic version bumps from conventional commits, updates CHANGELOG.md, and manages GitHub releases.

It can:

Project page: https://sw.cowtech.it/cambi

Features

Installation

Prebuilt binaries

Download one of the prebuilt binaries for your platform, then make it executable:

Example:

curl -L -o cambi https://github.com/ShogunPanda/cambi/releases/latest/download/cambi-linux 
chmod a+x cambi

From source (Cargo)

cargo install cambi

Usage

cambi [OPTIONS] 

Global options:

Commands

version (v)

Print current version from the latest matching tag (or from -f, --from-tag).

cambi version 
cambi v 
cambi version --from-tag v1.2.3

Options:

semver (s)

Compute next bump type from commits since latest matching tag (or from -f, --from-tag).

cambi semver 
cambi s 
cambi semver --from-tag v1.2.3

Options:

update (u)

Update project version files. By default it infers the bump from commits. You can override detection by passing:

cambi update 
cambi u 
cambi update major 
cambi update 1.4.0 
cambi update --commit 
cambi update --commit --commit-message "chore: bump app version" 
cambi update --commit --tag

Options:

Supported update targets (first match wins):

changelog (c)

Update CHANGELOG.md with the next pending release section.

cambi changelog 
cambi changelog minor 
cambi changelog 1.4.0 
cambi c --dry-run 
cambi changelog --commit 
cambi changelog --commit --commit-message "chore: update release notes" 
cambi changelog --rebuild

Options:

release (r)

Create/update GitHub releases from git tags and commits.

cambi release 
cambi r --dry-run 
cambi release --rebuild 
cambi release --owner my-org --repo my-repo --token "$GH_RELEASE_TOKEN" 
cambi release 1.2.3 --prerelease 
cambi release --notes-only

Options:

Notes:

Configuration

Config files

Local config overlays global config.

Environment variables

Defaults

Example cambi.yml

token: ghp_xxx 
owner: my-org 
repo: my-repo 
tag_pattern: '^v\d+\.\d+\.\d+$' 
ignore_patterns: 
  - "^docs: .+$" 
  - "^chore: .+$" 
changelog_template: | 
  ### $DATE / $VERSION 
 
  $COMMITS

Template placeholders:

Contributing

License

Copyright (C) 2026 and above Shogun (shogun@cowtech.it).

Licensed under the ISC license.