Skip to content
@commit-check

Commit Check

Clean commits. Clear standards.
Commit Check — Clean commits. Clear standards.

An open policy engine for Git commit metadata — one versioned file, enforced everywhere.

PyPI Downloads Marketplace License: MIT Website


What it looks like

CC001 message check failed ==> updated the parser
The commit message should follow Conventional Commits. See https://www.conventionalcommits.org
Suggest: Use <type>(<scope>): <description>, where <type> is one of: feat, fix, docs, ...
Docs: https://commit-check.com/rules/#cc001

Every failure names a stable rule ID, the value that failed, what to do about it, and where it is documented — as text, JSON, a job summary, a PR comment, or an MCP tool call.

One policy, four places

                      cchk.toml
                          │
        ┌─────────────────┼─────────────────┬─────────────────┐
        ▼                 ▼                 ▼                 ▼
  your machine       pre-commit         GitHub CI         AI agents
 (commit-check)         hook             Action             (MCP)
        │                 │                 │                 │
        └─────────────────┴────────┬────────┴─────────────────┘
                                   ▼
                       same rules, same verdict

Write the rules once. Every surface reads that same file, so a commit that passes on a laptop passes in CI — and an agent asking "would this message be accepted?" gets the answer your maintainers actually configured.

Quick start

Nothing to configure to begin with: the defaults enforce Conventional Commits, Conventional Branch, and sane subject lengths.

# .pre-commit-config.yaml — feedback while the message is still being written
repos:
  - repo: https://github.com/commit-check/commit-check
    rev: v2.13.4
    hooks:
      - id: check-message
      - id: check-branch
# .github/workflows/commit-check.yml — where it becomes a policy, not a suggestion
- uses: commit-check/commit-check-action@v2
  with:
    message: true
    branch: true
    pr-title: true
    pr-comments: true  # needs permissions: pull-requests: write

Every rule and option is at commit-check.com.

The Commit Check family

Project What it is Use it for
commit-check Python CLI & pre-commit hook Local checks, CI pipelines, scripting
commit-check-action GitHub Action PR & push validation, job summaries, PR comments
commit-check-mcp Model Context Protocol server Letting AI agents validate against your rules

What it does not do

  • It reads commit metadata, not your code. It is not a linter.
  • A pre-commit hook can be skipped with --no-verify, so only the CI check is really a policy — the hook is there to save you the round trip.
  • Imperative-mood checking reads a word's form, so a subject led by a noun that looks like a gerund (fix: spelling in the docs) gets reported.

Where Commit Check fits

Commit metadata rules are usually behind a paid tier: GitHub's metadata restrictions need Enterprise, and Bitbucket's equivalent is Yet Another Commit Checker, a paid Marketplace app. Commit Check is the open alternative — and because the policy is a file in your repository rather than a settings page, it can be reviewed, diffed, and rolled back like anything else you version.

  • 🔒 SLSA Level 3 build provenance — verify any release yourself with gh attestation verify <wheel> --repo commit-check/commit-check
  • 🏢 Runs in repositories across Apache, Texas Instruments, Mila, and many more
  • 📖 MIT licensed, actively maintained, and itself following Conventional Commits and Conventional Branch

Get involved

Issues for bugs and feature requests · Discussions for questions and ideas · Docs for everything else.

Pinned Loading

  1. commit-check commit-check Public

    Commit Check enforces commit metadata standards — commit messages, branch naming, committer info, signoff, and more.

    Python 69 16

  2. commit-check-action commit-check-action Public

    Commit Check GitHub Action

    Python 30 2

  3. commit-check-mcp commit-check-mcp Public

    Commit Check Model Context Protocol (MCP)

    Python

Repositories

Showing 6 of 6 repositories

Top languages

Loading…

Most used topics

Loading…