@ulysses0604/drumroll
v0.1.0
Published
Turn git log into changelog sections and release announcement drafts
Downloads
99
Readme
drumroll
You already wrote the commit messages. Stop rewriting them by hand for the changelog.
drumroll reads your git log, classifies commits by Conventional Commits type, and generates a CHANGELOG.md section — deterministically, offline, no API key required. No actual drumroll included, but the suspense is optional.
$ drumroll v1.2.0..v1.3.0
## v1.3.0 - 2026-07-20
### Breaking
- drop Node 18 support
### Added
- **cli**: add --write flag to insert into CHANGELOG.md (#12)
### Fixed
- handle repos with no tags
### Other
- Update readme wordingInstall
npm install -g @ulysses0604/drumrollOr run it without installing:
npx @ulysses0604/drumrollUsage
drumroll [range] [options]| Argument | Description |
|---|---|
| range | A git rev range, e.g. v1.2.0..v1.3.0. Omit it to use <latest-tag>..HEAD. If the repo has no tags yet, the full history is used. |
| Flag | Description |
|---|---|
| --write | Insert the generated section into CHANGELOG.md instead of printing to stdout. Creates the file with a Keep a Changelog header if it doesn't exist yet. Refuses to overwrite a section that already exists for that version. |
| --version-name <name> | Override the version name used in the heading (defaults to the tag at the end of the range, or Unreleased). |
| --x-post | Also generate a draft X (Twitter) post announcing the release. Requires ANTHROPIC_API_KEY — see below. |
Examples
# Print the changelog for a specific release to stdout
drumroll v1.2.0..v1.3.0
# Insert it into CHANGELOG.md instead
drumroll v1.2.0..v1.3.0 --write
# Everything since the last tag, with a custom heading
drumroll --version-name v2.0.0-beta.1
# Also draft an announcement post
drumroll v1.2.0..v1.3.0 --x-postHow commits are classified
| Commit prefix | Section |
|---|---|
| feat: | Added |
| fix: | Fixed |
| refactor:, perf: | Changed |
| feat!:, fix!:, or a BREAKING CHANGE: footer | Breaking |
| docs:, chore:, test:, ci:, build:, style: | Excluded (noise) |
| anything else | Other (kept, not dropped) |
Merge commits are skipped — they're between you and your branches. Non-Conventional-Commits messages aren't discarded either; they land in Other so nothing silently disappears.
--x-post and your source code's privacy
--x-post sends only the release's commit messages (type, scope, description) to the Anthropic API to draft an announcement — never your source code, diffs, or file contents. Without ANTHROPIC_API_KEY set, the flag is silently skipped and the changelog output is unaffected.
No dashboard, no login, no drumroll sound effects (yet).
License
MIT
