Initial release of herald — a CLI tool that automates GitHub release note generation using Claude AI. It analyzes git commits between releases, constructs a detailed prompt, and produces well-structured Markdown release notes.
Features
- AI-powered release note generation via the
claudeCLI with customizable model selection (--model) - Smart release detection: automatically resolves the previous release by publication date to compute commit diffs
- Flexible tag resolution with support for explicit tags or
lastkeyword for the latest release - Custom instructions support to guide Claude's output for specific release emphasis
- Interactive confirmation prompt before updating GitHub releases
- Dry-run mode (
--dry-run) to preview generated notes without modifying releases - Verbose mode (
--verbose) for detailed intermediate output - Automatic remote tag fetching to handle CI-created releases
- File output with configurable path (
--output) and default temp directory storage - Optional attribution footer (
--no-footerto omit)
Internal
- Clean modular architecture:
cli,git,github,claude,prompt,errors,termpackages - Embedded Go template for prompt construction with full commit context
- Typed error system with distinct exit codes: runtime (1), configuration (2), environment (3), user abort (4)
- ANSI terminal color utilities with
NO_COLORenvironment variable support - Preamble stripping to remove unwanted headings from Claude output
- CI workflow for linting, testing, and cross-platform builds
- Automated publish workflow for GitHub releases with goreleaser-style multi-platform binaries
- Comprehensive test suite across all packages
Release notes generated by herald v1.0.0