- Enabled agent mode by default for tool-capable providers: OpenAI, Claude, Gemini, Grok, Llama, DeepSeek, GitHub Models, Ollama, Codex, and Claude Code. Models without tool support automatically use direct-diff mode.
- Switched local Codex and Claude Code providers to ACP registry-backed local agents instead of direct CLI prompt execution.
- Added ACP registry commands:
gw acp list,info,resolve,install,cache path, andcache refresh. - Added binary ACP distribution support for agents that do not publish an npx package.
- Added ACP authentication retry support so local agents can launch terminal or agent auth flows and continue the original request.
- Added ACP debug logs under
~/.gitwhisper/acp/logsfor failed or empty agent responses. - Limited ACP commit targeting to supported first-party/product-backed agents; use
gw acp list --allto inspect raw registry entries. - Exposed GitWhisper staged-change tools to ACP agents through a local stdio MCP server.
- Added interactive startup update notices with an option to update immediately or stay on the current version for the session.
- Removed the LLM7.io
freeprovider from the CLI. - Made
gw updatedetect Dart pub, Homebrew, APT, and manual installs, withgw update --checkto preview the update path. - Sanitized noisy agent responses so only valid conventional commit lines are used as commit messages.
- Formatted tool use events
- Expanded agent mode with richer read-only tools for large staged changes, including diff hunks, content chunks, search, deterministic file summaries, related files, and blame.
- Added local CLI providers for Codex (
--model codex) and Claude Code (--model claude-code), using the user's installed and authenticated CLIs instead of GitWhisper API keys. - Added
gw commit --agentfor OpenAI and Claude, letting models inspect staged changes through read-only GitWhisper tools instead of receiving the whole diff at once.
- switched openai models to make use of
max_completion_tokensinstead of the deprecatedmax_tokensparam
- Automatically detects files >10MB before committing to prevent accidentally adding large files to git history.
- When diff exceeds max size, automatically processes file-by-file without prompting (revert previously added behaviour)
- Configurable max diff size - New
--max-diff-sizeoption inset-defaultsto customize the threshold (in characters) before prompting for interactive staging (default: 50,000) - New command -
gw show-configdisplays your full configuration file in a formatted view - Improved large diff handling - Large diffs now trigger an interactive prompt with options to use focused staging, commit everything, or cancel
- Free Model (No API Key Required!) - New
freemodel option powered by LLM7.io. Use GitWhisper without any API key setup:gw commit --model free - Git Tagging Support - New
--tag/-tflag to create a git tag alongside your commit (e.g.,gw commit -t v1.0.0) - Auto-push Tags - When using
--auto-pushwith--tag, both the commit and tag are pushed to the remote - Improved Ticket Prefix - Fixed ticket prefix formatting to correctly include the prefix in generated commit messages (e.g.,
JIRA-123 -> fix: 🐛 Fix bug)
- Build for ARM64
- Git Editor Integration - Edit commit messages in your preferred Git editor (vim, nano, VS Code, etc.) instead of inline prompt
- Improved Edit Workflow - After editing, the commit message returns to the confirmation menu for review instead of auto-committing
- Better UX - Respects Git's editor configuration hierarchy:
GIT_EDITOR→$EDITOR→vias fallback
- Emoji Control - New
--allow-emojis/--no-allow-emojisflag to control emoji inclusion in commit messages (defaults to enabled) - Updated Model Variants - Refreshed all AI model variants with latest releases:
- OpenAI: Added GPT-5 family (gpt-5, gpt-5-mini, gpt-5-nano, gpt-5-pro), GPT-4.1 family, and gpt-realtime models
- Claude: Added claude-sonnet-4-5-20250929 and claude-opus-4-1-20250805
- Gemini: Updated to Gemini 2.5 family (gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.5-flash-image, gemini-2.5-computer-use)
- Grok: Added grok-4, grok-4-heavy, grok-4-fast, and grok-code-fast-1
- DeepSeek: Added deepseek-v3.2-exp, deepseek-v3.1, deepseek-r1-0528, and more
- Build Improvements - Added dynamic version injection via yq in build workflow
- Code Documentation - Added comprehensive method documentation for commit prompt utilities
- Interactive Commit Confirmation - Review, edit, retry with different models, or discard AI-generated messages
- Enhanced User Experience - All commands now use interactive prompts with smart defaults and guided workflows
- Multi-repo Support - Confirmation workflow works across single and multiple repositories
- Improved Security - Hidden input for API keys and better Ollama handling
- feat: ✨ Add language support to commit and analysis generation
- chore: 🔧 Update documentation
- Make gitwhisper available on all platforms through various installation channels
- fix: 🐛 Fix API key to be optional
- fix: 🐛 API key issue with Ollama
- feat: ✨ Add Ollama support
- feat: ✨ Make gitwhisper installable through Homebrew
- fix: 🐛 Add Windows compatibility for file permissions
- feat: ✨ Update Claude model variants and default version
- enhancements
- fix: 🐛 Update success message, support singular repo
- feat: ✨ Add folderPath to GitUtils.runGitCommit
- fix: 🐛 Fix Git add, pass workingDirectory
- fix: 🐛 Pass folderPath to git diff command
- fix: 🐛 multi repo options
- feat: ✨ Implement analysis on multiple git repos
- feat: ✨ Implement commit command in subfolders
- refactor: ♻️ Improve git utils with subfolder support
- fix: 🐛 remove argOptions
- fix: 🐛 remove always add abbreviation
- fix: 🐛 Handle null home directory, throw exception if null
- feat: ✨ Add always-add command to allow you to skip running
git addmanually - feat: ✨ Stage all unstaged files if configured
- refactor: ♻️ Simplify git push confirmation logic
- fix: 🐛 Handle missing remote URL during push
- feat: ✨ Add auto-push support (by Takudzwa Nyanhanga)
- fix: remove markdown changes
- render markdown properly
- feat: ✨ Update Gemini model variants and API integration, dynamic endpoint support
- increase max output tokens for analysis
- lower mason_logger dependency version
- feat: ✨ Add analyze command for detailed code change analysis
- refactor: ♻️ Update commit message generation prompt
- feat: ✨ Add mandatory format rules for commit messages
- refactor: 🔧 Remove debug print statement, bump version to 0.0.26
- fix: make AI aware of the prefix
- chore: update release notes url
- fix: formatting issue (regression)
- refactor: ♻️ Remove manual commit message prefix formatting logic
- feat: ✨ Add prefix support to AI commit message generation
- docs: 📚 Update commit prompt with prefix instructions
- docs: 📚 Update commit message guide with format details
- refactor: ♻️ Enhance prompt formatting for commit message generation
- docs: 📝 update commit message guidelines to include emojis
- chore: 🧹 remove unused process_run dependency from pubspec.yaml
- docs: expand commit types with mandatory emojis in prompt
- feat: extract commit prompt to shared utility module
- Added
Deepseek-V3,Phi-4-mini-instruct,Codestral 25.01, andMistral Large 24.11tolist_variants_command. - Updated README with a link to check for more models on GitHub Marketplace.
- Updated README to include GitHub models and authentication instructions.
- Enhanced command options to support new 'github' model.
- Added
GithubGeneratorfor generating commit messages using GitHub model. - Updated
model_variantswith a new default variant for GitHub.
- Integrated Deepseek model into the project
- Updated model listing and validation to include Deepseek
- Added Deepseek-specific generator implementation
- Updated documentation to reflect the new model addition
- Incremented version to 0.0.11 for release with new feature
- update README with better documentation of the commands
- feat: default to 'commit' command when args are empty, add 'gw' executable alias
- fix(set_defaults_command): remove default values to enforce mandatory options
- set and clear default model and variant for future use
- resolve dart sdk constraint issue
- fix(claude_generator): update API endpoint and model selection
- refactor(dependencies): remove curl_logger_dio_interceptor and update model variants
- feat(commit): add model-variant option to commit command
- feat(list-variants): update and expand model variant lists for all models
- fix(models): use ModelVariants for default model variants across all generators
- testing configurations
- setup basic features for the tool