noidea
Because you shouldn't have to think about commit messages.
A small Python CLI that hooks into git commit, writes the message in your repo's own style, and
sends small diffs to cheap models.
Quick start
pipx install noidea
noidea keys add # stores your Anthropic key in the system keyring
noidea init # run once per repository
Now run git commit without -m. Your editor opens with a suggested message already filled in,
ready to edit or throw away.
No API key? Use a local Ollama model instead.
Why noidea
It writes like your repo
Before each suggestion noidea reads your recent commits and copies the house style: your scopes, whether you write bodies, how long your subjects are, and gitmoji if you use them. Your history keeps reading like your team wrote it.
Small commits cost less
Ordinary diffs go to a fast, cheap model, and only very large changes go to the strong one. noidea tells you which one it picked.
You always have the last word
noidea never commits for you. It fills in the editor on a
plain git commit, so there's no new command to remember. If you already wrote a message with
-m, --amend, or in a merge, noidea leaves it alone.
Small and private
noidea is an MIT-licensed Python CLI with no telemetry, built to a strict safety-first style guide. Your diff goes to the model you chose and nowhere else, and with Ollama it never leaves your machine.
Compared with other tools
| noidea | opencommit | aicommits | gptcommit | |
|---|---|---|---|---|
| Install | pipx install noidea |
npm i -g opencommit |
npm i -g aicommits |
cargo / brew |
| Language | Python | Node.js | Node.js | Rust |
Hooks into git commit |
✅ | ✅ | ✅ | ✅ |
| Learns your repo's style | ✅ | ❌ | ❌ | ❌ |
| Cost-aware model routing | ✅ | ❌ | ❌ | ❌ |
| Multiple providers | ✅ 7 | ✅ | ✅ | partial |
| No Node.js required | ✅ | ❌ | ❌ | ✅ |
| GitHub Action | ✅ | ✅ | ❌ | ❌ |
Providers
Anthropic is the default. OpenAI, Gemini, DeepSeek, Groq and OpenRouter work with a key, Ollama
runs locally without one, and any OpenAI-compatible server works through base_url. Switching is
a few lines of config:
{ "llm": { "provider": "ollama", "small_model": "llama3.2", "large_model": "llama3.2" } }
See Providers for keys, endpoints and examples, and Configuration for every setting.
GitHub Action
noidea also runs on pull requests and posts a suggested squash-merge message as a comment:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: AccursedGalaxy/noidea@main
with:
api-key: ${{ secrets.ANTHROPIC_API_KEY }}
The GitHub Action guide has the full workflow, inputs and outputs.
Documentation
- Getting started: install, keys, and your first commit
- Commands: every command and flag
- How it works: routing, style learning, and exactly what is sent to the model
- Troubleshooting: fixes for the usual error messages
Contributing
Bug reports and pull requests are welcome. CONTRIBUTING.md covers the development setup, and the code follows TigerStyle.
License
Metadata
Release files for noidea 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| noidea-1.3.0.tar.gz | 42.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| noidea-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 92.0 kB
Release files / noidea-1.3.0.tar.gz
| Download URL | noidea-1.3.0.tar.gz |
|---|---|
| Size | 42.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a5411331c13981ed0116cd4b64e1f73965c3e94b67fd54675adf3789b32b7533
|
|
BLAKE2b-256 checksum How to use checksums |
d92635314fdebe53f804fa7e0124c43fea3650c6818e0c44a5fedc60d9574180
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logRelease files / noidea-1.3.0-py3-none-any.whl
| Download URL | noidea-1.3.0-py3-none-any.whl |
|---|---|
| Size | 49.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
692051064366e5badf50953dc6db8e2454e396630555566b0b2ad1f70b056edc
|
|
BLAKE2b-256 checksum How to use checksums |
36ee18fa93b40a4565f628619c4deec349413a3e60c755fcc7161417969c9ddb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency log