575 Haiku Commit
Generate 5‑7‑5 haiku commit messages using AI, right from VS Code's Source Control panel. Turn everyday commits into tiny poems your team can actually skim.
·
·
·
· 

🎓 Blueprint Repo — Learn to Build VS Code Extensions

This repo is more than an extension — it's a learning resource. Clone it, reshape it, ship your own.

60‑second quick start (users)
- Install from Marketplace:
AIMatey.575-haiku-commit
- Run "Haiku Commit: Set Haiku Provider" and "Set Haiku API Key" once
- Stage changes → press
Ctrl+Shift+H / Cmd+Shift+H to generate your first haiku
For contributors & docs readers
Start here: Development · Release Prep · Learning Guides
Table of Contents
For users
For contributors & maintainers
Pull request whispers
Five–seven–five logs the change
Tests nod in silence
Features
575 Haiku Commit turns staged diffs into short, 5‑7‑5 commit messages that are easy to scan in history while staying fun and memorable for the team.
- 🎋 Generate commit messages in traditional haiku format (5-7-5 syllables)
- 🤖 Multiple providers: Anthropic, OpenAI GPT‑5, and Google Gemini 2.5
- ⚡ Quick keyboard shortcut:
Ctrl+Shift+H (or Cmd+Shift+H on Mac)
- 📝 Automatically fills in the Source Control commit message box
- 🎨 Works with any git repository
Why Haiku Commits?
If you already stage small, meaningful diffs, 575 Haiku Commit gives you a crisp 5‑7‑5 commit that teams remember and can skim fast, without bikeshedding over phrasing.
Installation
From Marketplace
Setup
- Choose a provider in Settings (
haikuCommit.provider): anthropic, openai, or gemini. If unset, the extension will prompt you on first use.
- Get an API key for the selected provider:
- Open VS Code Settings (
Ctrl+, or Cmd+,) and search for “Haiku Commit”.
- Either:
- Enter the key in the matching setting (
haikuCommit.anthropicApiKey, haikuCommit.openaiApiKey, or haikuCommit.geminiApiKey), or
- Run “Haiku Commit: Set Haiku API Key” and paste your key when prompted.
The extension will prompt you on first use if a provider or key is missing, so you can also just install, run, and follow the prompts.
Requirements
- VS Code 1.80.0 or higher
- A git repository
- An API key for the provider you select in
haikuCommit.provider
- Anthropic when
provider=anthropic
- OpenAI when
provider=openai
- Gemini when
provider=gemini
Troubleshooting
- No staged changes → Stage files first (for example
git add -p) and rerun.
- Missing API key or provider → Run:
- “Haiku Commit: Set Haiku Provider”
- “Haiku Commit: Set Haiku API Key”
- Rate limits or network errors → The extension retries transient errors with a brief backoff. If failures persist, wait a moment and try again.
- Non‑git folders → Commands only work inside a git repository.
- Need logs? → View → Output → select “Haiku Commit”, or run “Haiku Commit: Show Logs”.
Setting the API key via command or status bar
- Command Palette: run "Haiku Commit: Set Haiku API Key" to paste your key at any time.
- Status Bar: when no key is configured, a key icon appears ("Set Haiku API Key"). Click it to set your key.
Switching providers from the Command Palette
- Run "Haiku Commit: Set Haiku Provider" and choose
Anthropic, OpenAI (GPT‑5), or Gemini 2.5. The key prompt and defaults will adjust automatically.
Setting/Overriding the Model
- Run "Haiku Commit: Set Haiku Model" to set a shared model override.
- You can now pick from a curated dropdown of recommended models per provider, or choose "Custom…" to enter any valid model id.
- If you keep the shared override empty, provider‑specific defaults apply automatically.
Model precedence: the shared override (haikuCommit.model) takes priority for all providers. If it’s empty, the provider‑specific model setting is used (haikuCommit.openaiModel or haikuCommit.geminiModel). If that is also empty, the built‑in default for the selected provider is used.
When switching providers via "Haiku Commit: Set Haiku Provider", the extension offers to auto‑set the recommended model for that provider. If no shared override is set, it sets the provider’s recommended default. If a shared override is present, you can update it, keep it, or clear it to use the provider’s recommended model.
Configured Models — curated, selectable in the Model picker
Anthropic
- Claude Sonnet 4.5 (latest):
claude-sonnet-4-5-20250929
- Claude Sonnet 4 (preferred):
claude-sonnet-4-20250514
- Claude Haiku 3.5 (fastest):
claude-3-5-haiku-20241022 (alias: claude-3-5-haiku-latest)
OpenAI
- GPT‑5 2025‑08‑07:
gpt-5-2025-08-07
- GPT‑5 Mini 2025‑08‑07 (preferred):
gpt-5-mini-2025-08-07
- GPT‑5 Nano 2025‑08‑07 (cheapest):
gpt-5-nano-2025-08-07
Gemini
- Gemini 2.5 Pro:
gemini-2.5-pro
- Gemini 2.5 Flash Preview (preferred — 1M token context):
gemini-2.5-flash-preview-09-2025
- Gemini 2.5 Flash‑Lite Preview (cheapest):
gemini-2.5-flash-lite-preview-09-2025
Notes
- The dropdown shows these curated models per provider and can be updated in
src/providers/models.catalog.ts.
- You can still enter any valid model id via the “Custom…” option.
Or the extension will prompt you for your API key on first use.
Usage
All methods assume you already have a provider + API key set up (see Setup) and that your changes are staged in git.
Method 1: Keyboard Shortcut
- Stage your changes in git
- Press
Ctrl+Shift+H (Windows/Linux) or Cmd+Shift+H (Mac)
- Watch as a beautiful haiku appears in your commit message box! 🌸
Method 2: Command Palette
- Stage your changes in git
- Open Command Palette (
Ctrl+Shift+P or Cmd+Shift+P)
- Type "Generate Haiku Commit Message"
- Press Enter
- Stage your changes in git
- Look for the haiku button in the Source Control panel title bar
- Click it to generate a haiku
Multiple Options (Samples)
If you set haikuCommit.samples to a value greater than 1 (max 5), the extension will generate multiple haikus and present a selection list. Pick your favorite and it will be placed in the SCM input box.
Extension Settings
Core settings include provider, model, strict 5‑7‑5 enforcement, number of samples, and token / retry limits. See VS Code Settings → “Haiku Commit” for the full list.
See all settings
haikuCommit.anthropicApiKey: Your Anthropic API key for generating haiku commit messages.
haikuCommit.strict575 (default: true): Enforce exact 5‑7‑5 syllable counts. If the model output doesn’t match, the extension retries with corrective guidance up to two times.
haikuCommit.maxDiffLength (default: 4000): Maximum characters of the staged diff sent to the AI. Large diffs are truncated with a marker.
haikuCommit.samples (default: 1, min 1, max 5): Number of haikus to generate and choose from.
haikuCommit.model (default: empty): Shared model override (advanced). Precedence: if this value is non‑empty it is used for all providers; otherwise we use the provider‑specific model setting; otherwise the built‑in default (Anthropic: claude-sonnet-4-20250514; OpenAI: gpt-5-mini-2025-08-07; Gemini: gemini-2.5-flash-preview-09-2025).
haikuCommit.provider (default: empty): AI provider. Leave empty to be prompted to choose.
haikuCommit.openaiApiKey: Your OpenAI API key. Required when provider is openai.
haikuCommit.openaiModel (default: gpt-5-mini): OpenAI model (e.g., gpt-5, gpt-5-mini, or gpt-5-nano). Used only when haikuCommit.model is empty. See model guide: https://platform.openai.com/docs/guides/latest-model
haikuCommit.geminiApiKey: Your Gemini (Google AI Studio) API key. Required when provider is gemini.
haikuCommit.geminiModel (default: gemini-2.5-flash): Gemini model (gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite). Used only when haikuCommit.model is empty. Docs: https://ai.google.dev/gemini-api/docs/models#gemini-2.5-pro https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-lite
haikuCommit.maxTokens (default: 200): Token cap for the response payload; lower values shorten outputs, higher values allow more verbose haikus.
haikuCommit.maxRetries (default: 2): Number of corrective retries when enforcing strict 5‑7‑5 syllable counts.
haikuCommit.debug (default: false): Enable verbose logging in the “Haiku Commit” output channel for troubleshooting.
When strict mode cannot be satisfied after retries, you can choose to use the best attempt, try again, or cancel.
Project Structure
575-haiku-commit/
├── src/
│ └── extension.ts # Main extension code
├── package.json # Extension manifest
├── tsconfig.json # TypeScript configuration
└── README.md # This file
Developer docs
Maintainer-only depth lives in /docs so the README can stay user-first:
Release Prep
Learning Guides
We keep longer-form guides focused on how to build VS Code extensions like this repo in docs/GUIDES.md.
If you’re here to learn/replicate (not just use the haiku generator), start with:
Tips
- Stage meaningful chunks of changes for better haikus
- The AI analyzes your actual code changes to create relevant haikus
- Large diffs are automatically truncated to stay within API limits
- If the haiku doesn't fit, you can always generate a new one!
Privacy & Security
This extension is designed to keep everything local except the minimum required to generate a haiku.
- Your API key for the selected provider is stored in VS Code Settings on your machine (one of
haikuCommit.anthropicApiKey, haikuCommit.openaiApiKey, or haikuCommit.geminiApiKey). It is not committed to this repository.
- The extension sends your staged git diff to the selected provider’s API for haiku generation. No other data is transmitted.
- Anthropic:
https://api.anthropic.com/v1/messages
- OpenAI:
https://api.openai.com/v1/responses
- Gemini: Google AI Studio endpoints (models
...:generateContent)
- No telemetry is collected; the extension does not track usage or send analytics.
- You can remove the key at any time via Settings or by running “Haiku Commit: Set Haiku API Key” and clearing the value.
Contributing & Policies
Contributions are welcome! Please feel free to submit a Pull Request.
Maintainers
- Adam Grenier (@akgrenier)
Support
- Bugs/feature requests → GitHub Issues
- Questions/ideas → GitHub Discussions (or Issues if Discussions aren’t enabled yet)
- Security issues → see SECURITY.md
Versioning
We follow SemVer. See CHANGELOG.md and GitHub Releases for notes. Breaking changes are called out in release notes.
Roadmap
- [x] Launch v1 with Anthropic, OpenAI, and Gemini providers
- [ ] Hybrid message mode toggle (switch between haiku then conventional subject and vice versa)
- [ ] Rich UI entry points (SCM toolbar button + activity bar view)
- [ ] Tone/style customization ("zen", "summary", "cheeky")
- [ ] VSCode "creating an extension" in-repo how-to guide series
- [ ] Partial diff QuickPick for staged-file selection
- [ ] Enhanced error UX with actionable guidance
- [ ] Multi-window status bar consistency
- [ ] PR Haiku Bot that comments poetic summaries on pull requests
- [ ] VS Code walkthrough onboarding to showcase haiku generation end-to-end
FAQ
- Q: Do I need an API key?
- A: Yes. Set the key for the provider you choose (Anthropic, OpenAI, or Gemini). The extension prompts you if it’s missing.
- Q: Does my code get uploaded?
- A: Only the staged git diff is sent to the selected provider to generate the haiku.
- Q: Can I switch providers?
- A: Yes. Run “Haiku Commit: Set Haiku Provider” and choose Anthropic, OpenAI, or Gemini.
- Q: Why is a haiku sometimes labelled “approximate”?
- A: With
strict575=false, we still show whether the output truly matches 5‑7‑5; otherwise it’s labelled approximate.
Gallery
Open Gallery — screenshots and GIFs
Stage changes, press Cmd+Shift+H, haiku appears.
SCM commit message box filled with a 5‑7‑5 haiku.
Success notification after generation.
Status bar key prompt when an API key is missing.
Choose Anthropic, OpenAI (GPT‑5), or Gemini 2.5.
Optional shared model override input.
Secure input box for provider API key.
Back to top
License
MIT
Credits
Built with ❤️ using:
Enjoy your poetic commits! 🌸📝✨