Overview
HelixCommit offers flexible configuration through configuration files, command-line flags, and environment variables. You can customize how commits are processed, what gets included in release notes, and how output is formatted.Configuration methods
Configuration files
Store project defaults in
.helixcommit.toml or .helixcommit.yaml. Best for team-wide settings.Command-line flags
Pass options directly when running commands. Best for one-off customizations and testing.
Environment variables
Set variables in your shell or CI/CD environment. Ideal for credentials and secrets.
Configuration precedence
When the same option is set in multiple places, HelixCommit uses this precedence (highest to lowest):- Command-line flags - Always take priority
- Configuration file - Project defaults from
.helixcommit.tomlor.helixcommit.yaml - Built-in defaults - Fallback values
Configuration files
HelixCommit looks for configuration files in your repository root in this order:.helixcommit.toml(TOML format).helixcommit.yaml(YAML format)
Custom config file location
Use the--config flag to specify a custom config file location instead of the default discovery:
The
--config flag is available on both generate and generate-commit commands.Example: Multiple project configurations
Example: Multiple project configurations
Maintain different configurations for different release types:
Example: Shared team configuration
Example: Shared team configuration
Example: CI/CD with custom configs
Example: CI/CD with custom configs
Use different configs per CI environment:
- TOML format
- YAML format
Create a
.helixcommit.toml file in your repository root:Environment variable expansion
Configuration files support environment variable expansion using the${VAR} syntax. This allows you to reference environment variables directly in your config files, making configurations more portable across different environments.
- Basic syntax
- Default values
Use Set the variables before running:
${VAR_NAME} to reference an environment variable:Example: Environment-specific configurations
Example: Environment-specific configurations
Use environment variables to switch between development and production settings:Then configure per environment:
Example: Dynamic template paths
Example: Dynamic template paths
Reference template directories via environment variables:
Example: Team-specific roles
Example: Team-specific roles
Configure expert roles per team member or CI environment:
If an environment variable is not set and no default is provided, the reference (e.g.,
${UNDEFINED_VAR}) is kept as-is in the config value.Configuration reference
[generate] section
[generate] section
| Option | Type | Default | Description |
|---|---|---|---|
format | string | "markdown" | Output format: markdown, html, text, or json |
include_scopes | boolean | true | Show commit scopes (e.g., feat(api)) |
no_merge_commits | boolean | false | Exclude merge commits from output |
no_prs | boolean | false | Skip GitHub/GitLab/Bitbucket PR lookups |
fail_on_empty | boolean | false | Exit with code 1 if no commits found |
include_types | string[] | [] | Only include commits of these types (e.g., ["feat", "fix"]) |
exclude_scopes | string[] | [] | Exclude commits with these scopes (e.g., ["deps", "ci"]) |
author_filter | string | null | Regex pattern to filter commits by author name or email |
[ai] section
[ai] section
| Option | Type | Default | Description |
|---|---|---|---|
enabled | boolean | false | Enable AI-powered summaries |
provider | string | "openrouter" | AI provider: openai or openrouter |
openai_model | string | "gpt-4o-mini" | OpenAI model to use |
openrouter_model | string | "x-ai/grok-4.1-fast:free" | OpenRouter model to use |
include_diffs | boolean | false | Include commit diffs for AI context |
domain_scope | string | null | Domain context for AI prompts |
expert_roles | string[] | [] | Expert roles for multi-perspective analysis |
rag_backend | string | "simple" | RAG backend: simple or chroma |
Example configurations
Minimal AI-enabled setup
Minimal AI-enabled setup
CI/CD optimized
CI/CD optimized
Full-featured with AI
Full-featured with AI
With advanced filtering
With advanced filtering
Core configuration areas
Commit range selection
Control which commits are included in your release notes.- Tag-based ranges
- Commit-based ranges
- Date-based ranges
Use semantic version tags to define ranges:
Output formatting
Customize how release notes are formatted and where they’re saved.Choose the output format that fits your publishing workflow.Markdown - Perfect for GitHub releases and documentation sitesHTML - Ready for embedding in websitesText - Plain text for email notifications or chatJSON - Machine-readable for programmatic use
Control where output is written.Standard output (default)File output
Parent directories are created automatically if they don’t exist.
Filtering commits
Fine-tune which commits appear in your release notes.Include or exclude merge commits
Include or exclude merge commits
Limit commit count
Limit commit count
Show or hide commit scopes
Show or hide commit scopes
Scopes are extracted from Conventional Commits format:
feat(api): messageGitHub integration
Configure how GitReleaseGen interacts with GitHub’s API.Authentication
Create a GitHub token
Visit github.com/settings/tokens and create a personal access token.For public repositories: No special permissions neededFor private repositories: Select the
repo scopeRate limiting and retries
GitReleaseGen handles GitHub API rate limits automatically with exponential backoff.Maximum number of retry attempts for failed requests.
Initial delay between retries in seconds.
Maximum delay between retries in seconds.
Caching
Reduce API calls and improve performance with caching.Enable persistent caching of GitHub API responses.Valid values:
1, true, yes, onDirectory where cache files are stored.
How long cache entries remain valid in minutes.
Skip GitHub integration
Work offline or skip PR lookups:Using
--no-prs means no GitHub API calls are made. Perfect for offline work or when PR metadata isn’t needed.GitLab integration
HelixCommit automatically detects GitLab repositories (including self-hosted instances) and enriches release notes with merge request data.Authentication
read_api and read_repository for private projects.
For more details, see the GitLab integration guide.
Bitbucket integration
HelixCommit automatically detects Bitbucket Cloud repositories and enriches release notes with pull request data.Authentication
For more details, see the Bitbucket integration guide.
AI configuration
Configure AI-powered summarization features.Provider selection
- OpenAI
- OpenRouter
gpt-4o-mini- Fast and cost-effective (recommended)gpt-4o- Most capablegpt-3.5-turbo- Budget option
Summary caching
AI summaries are cached to minimize token usage and costs.Prompt engineering
Customize AI behavior with advanced options:Set the domain context for better AI summaries.Examples:
"conservation", "healthcare", "finance", "e-commerce"Define expert roles for multi-perspective analysis.
Default roles: Product Manager, Tech Lead, QA Engineer
Choose the retrieval backend for context.
Example configurations
Minimal offline setup
Minimal offline setup
Generate release notes with no external dependencies:Perfect for local development or air-gapped environments.
Full-featured with AI
Full-featured with AI
Maximum enrichment with AI summaries and GitHub integration:
CI/CD optimized
CI/CD optimized
Fast generation for automated pipelines:
Team workflow
Team workflow
Balanced configuration for team use:
Custom templates
GitReleaseGen uses formatters to render output. You can customize the look and feel by modifying templates.Template locations
Templates are located in the GitReleaseGen package:Creating custom formatters
Modify the template
Edit the rendering logic to match your needs. Formatters use Jinja2 templates for rendering.
For more details on programmatic usage, see the Python API reference.
Environment file
Create a.env file to store configuration:
.env
Next steps
CLI reference
Complete list of all CLI options
AI features
Learn about AI-powered summarization
Examples
See configuration in action
GitHub integration
Deep dive into GitHub API features