Bump semantic version in any file using a regular expression pattern.
2026-02-18.091300.mp4
Inspired by gobump, but works with any file format.
go install github.com/mattn/bump@latest
bump (major|minor|patch|up|set <version>|show) -f <file> -p <pattern> [-w]
| Command | Description |
|---|---|
major |
Bump major version up (e.g. 1.2.3 → 2.0.0) |
minor |
Bump minor version up (e.g. 1.2.3 → 1.3.0) |
patch |
Bump patch version up (e.g. 1.2.3 → 1.2.4) |
up |
Bump up with interactive prompt |
set <version> |
Set exact version (no increments) |
show |
Only show the current version |
| Flag | Description |
|---|---|
-f <file> |
Target file (required) |
-p <pattern> |
Regexp pattern with a capture group for the version (required) |
-w |
Write result to file instead of stdout |
{
"name": "my-app",
"version": "1.2.3"
}bump patch -w -f package.json -p '"version":\s*"(\d+\.\d+\.\d+)"'[project]
name = "my-app"
version = "1.2.3"bump minor -w -f pyproject.toml -p 'version\s*=\s*"(\d+\.\d+\.\d+)"'[package]
name = "my-app"
version = "1.2.3"bump major -w -f Cargo.toml -p 'version\s*=\s*"(\d+\.\d+\.\d+)"'const version = "1.2.3"bump patch -w -f version.go -p 'version\s*=\s*"(\d+\.\d+\.\d+)"'bump up -w -f package.json -p '"version":\s*"(\d+\.\d+\.\d+)"'bump set 2.0.0 -w -f pyproject.toml -p 'version\s*=\s*"(\d+\.\d+\.\d+)"'bump show -f Cargo.toml -p 'version\s*=\s*"(\d+\.\d+\.\d+)"'MIT
mattn