Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>Commitproof — AI commit messages that always pass commitlintNew to Visual Studio Code? Get it now.
Commitproof — AI commit messages that always pass commitlint

Commitproof — AI commit messages that always pass commitlint

Commitproof

| (0) | Free
AI drafts your commit message, then guarantees it passes your repo's commitlint — Conventional Commits, scopes, banned words, ticket IDs. Obeys your convention on the first try, unlike Copilot.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Commitproof

Copilot ignores your commit instructions. Commitproof enforces them.

You wrote a commit convention. Your tooling won't follow it. Copilot hands you Implement code changes to enhance functionality and you rewrite it by hand — again.

Commitproof reads your staged diff, drafts a message, then validates it against your repo's actual commitlint config and regenerates until it passes — before it ever reaches the commit box. AI drafts. A rules engine enforces. The difference is a guarantee.

Watch it work

Commitproof enforce loop: first-try 0/10, after enforcement 10/10

Give it a deliberately strict rule — type must be fix, header ≤ 32 characters, the word "add" is banned — on a change that literally adds a feature. The model breaks the rule on its first attempt every time. Commitproof catches each failure, feeds the error back, and regenerates:

[#1](https://github.com/Flyingmiata-droid/commitproof/issues/1)  first attempt: fail  →  enforced: PASS  | fix(auth): block brute force
[#2](https://github.com/Flyingmiata-droid/commitproof/issues/2)  first attempt: fail  →  enforced: PASS  | fix(auth): lock account after failures
...
first-try compliance : 0/10
final (enforced)     : 10/10   ← every message passes the hook

A prompt can't promise that. A rules engine can.

What it does

  • Enforces your commitlint config — detects commitlint.config.* / .commitlintrc.* and validates every draft against it.
  • Regenerate-until-valid — on failure, the exact commitlint errors are fed back and the message is redrafted (up to 3×). No off-spec message reaches your commit box.
  • Deterministic scope injection — derives the Conventional Commit scope from changed package paths (packages/api/** → feat(api): …).
  • Ticket-aware — pulls the ticket id from your branch (feature/JIRA-123-…) and references it per your convention.
  • Your rules, not ours — Conventional Commits by default; point it at any convention you already enforce.

How it works

  1. Stage your changes.
  2. Click the sparkle in the Source Control title bar (or run Commitproof: Generate Commit Message).
  3. It drafts → validates against commitlint → regenerates until it passes → drops the result in the commit box.

No commitlint config in the repo? It still drafts a clean Conventional Commit — it just has nothing to enforce against.

Settings

Setting Default What it does
commitproof.apiKey "" Anthropic API key (or use the ANTHROPIC_API_KEY env var).
commitproof.model claude-sonnet-4-6 Model used to draft.
commitproof.instructions Conventional Commits Your commit convention — Commitproof enforces it.
commitproof.enforce true Validate against commitlint and regenerate until the draft passes.

Free vs Pro

Free Pro ($5–15/mo)
Unlimited solo use, bring-your-own key Team-shared config sync
Full convention config Hosted inference (no API key)
commitlint validation + regenerate-until-valid CI hook that rejects off-spec commits

Free is best-in-class on its own. Pro is for teams.

Develop

npm install
npm run compile   # tsc -> out/
npm test          # core + enforce-loop unit tests (no API key needed)

The moat lives in src/core.ts (pure, no editor dependency) so the enforce loop is unit-tested. src/extension.ts is the VS Code glue. Press F5 for the Extension Development Host.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft