NAME
storm is a git powered aware changelog manager for Go projects.
SYNOPSIS
storm [--repo <path>] [--output <file>] <command> [flags]DESCRIPTION
Storm keeps unreleased notes in .changes/*.md, promotes them into CHANGELOG.md, and offers TUIs for reviewing diffs and entries. The binary is composed of self-contained subcommands that chain well inside scripts or CI jobs.
GLOBAL FLAGS
| Flag | Description |
|---|---|
--repo <path> | Working tree to operate on (default: current directory). |
-o, --output <file> | Target changelog (default: CHANGELOG.md). |
COMMANDS
storm bump
Calculate the next semantic version by inspecting CHANGELOG.md.
storm bump --bump <major|minor|patch> [--toolchain value...]Flags
| Flag | Description |
|---|---|
--bump <type> (required) | Which semver component to increment. |
--toolchain <value> | Update language manifests (Cargo.toml, pyproject.toml, package.json, deno.json). |
Accepts explicit paths, type aliases like cargo/npm, or the literal interactive to launch a picker TUI. |
storm release
Promote .changes/*.md into the changelog and optionally tag the repo.
storm release (--version X.Y.Z | --bump <type>) [flags]Flags
| Flag | Description |
|---|---|
--version <X.Y.Z> | Explicit version for the new changelog entry. |
--bump <type> | Derive the version from the previous release (mutually exclusive with --version). |
--date <YYYY-MM-DD> | Override the release date (default: today). |
--clear-changes | Remove .changes/*.md files after a successful release. |
--dry-run | Render a preview without touching any files. |
--tag | Create an annotated git tag containing the release notes. |
--toolchain <value> | Update manifest files just like in storm bump. |
--output-json | Emit machine-readable JSON instead of styled text. |
storm generate
Create .changes/*.md files from commit history, with optional TUI review.
storm generate <from> <to>
storm generate --since <tag> [to]Flags
| Flag | Description |
|---|---|
-i, --interactive | Open a commit selector TUI for choosing entries. |
--since <tag> | Shortcut for <from>; defaults <to> to HEAD. |
--output-json | Emit machine-readable JSON instead of styled text. |
storm diff
Side-by-side or unified diff with TUI navigation.
storm diff <from>..<to> [flags]
storm diff <from> <to> [flags]| Flag | Description |
|---|---|
-f, --file <path> | Restrict the diff to a single file. |
-e, --expanded | Show all unchanged lines instead of compressed hunks. |
-v, --view <split|unified> | Rendering style (default: split). |
storm check
Verify every commit in a range has a corresponding unreleased entry.
storm check <from> <to>
storm check --since <tag> [to]| Flag | Description |
|---|---|
--since <tag> | Start range at the provided tag and default end to HEAD. |
Non-zero exit status indicates missing entries. Messages containing [nochanges] or [skip changelog] are ignored.
storm unreleased
Manage .changes entries directly.
add
storm unreleased add --type <kind> --summary <text> [--scope value]| Flag | Description |
|---|---|
--type <added|changed|fixed|removed|security> | Entry category. |
--summary <text> | Short human readable note. |
--scope <value> | Optional component indicator (e.g., cli). |
list
storm unreleased list [--json]| Flag | Description |
|---|---|
--json | Emit machine-readable JSON instead of styled text. |
partial
storm unreleased partial <commit-ref> [flags]| Flag | Description |
|---|---|
--type <value> | Override the inferred type from the commit message. |
--summary <text> | Override the inferred summary. |
--scope <value> | Optional component indicator. |
review
storm unreleased reviewLaunch a Bubble Tea TUI for editing and deleting entries before release. Requires a TTY; fall back to storm unreleased list otherwise.
storm version
Print the current build’s version string.
FILES
.changes/— queue of unreleased entries created bystorm generateorstorm unreleased add.CHANGELOG.md— Keep a Changelog-compatible file updated bystorm release.
SEE ALSO
CHANGELOG.md, Keep a Changelog, semantic versioning at semver.org.