Skip to main content

AI powered commit suggestions

Project description

noidea

AI-powered commit message suggestions via git hooks. Stages a diff, sends it to Claude, and pre-fills your commit editor.

noidea demo

Install

pipx install noidea
noidea init

Requires pipx. Alternatively: pip install noidea

noidea init installs a prepare-commit-msg hook in your repo. From then on, every git commit opens your editor with a suggested message pre-filled.

API Key Setup

noidea needs an Anthropic API key. Three options (checked in order):

  1. Keyring (recommended): noidea keys add
  2. Environment variable: export ANTHROPIC_API_KEY=sk-ant-...
  3. .env file: ANTHROPIC_API_KEY=sk-ant-... in a .env file (used for development)

Commands

noidea init

Installs the prepare-commit-msg hook. Backs up any existing hook as .bak. Respects core.hooksPath.

noidea suggest

Generates a commit message from the current staged diff and prints it.

Options:
  -F, --file TEXT    Write message to file instead of stdout (used by the hook)
  -M, --model TEXT   Override the model used for generation

noidea status

Shows the current noidea configuration, API key status, and whether the git hook is installed.

noidea keys

Manage API keys stored in the system keyring.

noidea keys show    # Show saved keys
noidea keys add     # Add a key interactively
noidea keys remove  # Remove a key interactively

noidea test

Sends a test message to the Claude API to verify your key and connectivity work.

noidea update

Updates noidea via pipx upgrade noidea (falls back to pip install --upgrade noidea).

noidea --version

Prints the current version.

Config

noidea supports two levels of configuration, both optional:

  • User config: ~/.noidea/config.json — applies to all repositories
  • Repository config: <repo>/.noidea/config.json — overrides user config for a specific repo

Precedence: built-in defaults → user config → repository config.

{
  "llm": {
    "max_tokens": 1024,
    "small_model": "claude-haiku-4-5",
    "large_model": "claude-sonnet-4-6",
    "context_limit": 600000,
    "system_prompt": "Your custom prompt here"
  }
}

Falls back to built-in defaults if no config file exists. The default prompt follows conventional commits style (feat/fix/refactor/etc.) with a 72-character subject line limit. Smaller diffs use small_model (Haiku) for speed; larger diffs automatically switch to large_model (Sonnet).

Requirements

  • Python 3.10+
  • Anthropic API key

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

noidea-0.5.2.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

noidea-0.5.2-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file noidea-0.5.2.tar.gz.

File metadata

  • Download URL: noidea-0.5.2.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for noidea-0.5.2.tar.gz
Algorithm Hash digest
SHA256 9b0c26ad95144c817d703d5d37e9a997e945f8c801b5087c92b7f66bea08e6a9
MD5 92ab9a8ac804f8ee43028dfb12746a97
BLAKE2b-256 a026cd44db046ee7835e536272e152800a70be07393c8f7f1e27b194544c17e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for noidea-0.5.2.tar.gz:

Publisher: publish.yml on AccursedGalaxy/noidea

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file noidea-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: noidea-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for noidea-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9ea10bfc4a8f90f0bdccf126886652f991fc567cdf90aa645f2a552ae21ad1f4
MD5 a9522132c1ab014737e313a948a786ff
BLAKE2b-256 cb31b0f61ed120fc1a6d3f7e0fb072a6552956447ae29503791f6865a659a083

See more details on using hashes here.

Provenance

The following attestation bundles were made for noidea-0.5.2-py3-none-any.whl:

Publisher: publish.yml on AccursedGalaxy/noidea

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page