Skip to content

Commit Check

Clean commits. Clear standards.

Get started

Commit Check

One config, enforced everywhere

Write the policy once. The same rules run on a developer's laptop, in CI, and in whatever your AI agent is committing on your behalf.

$ commit-check --message --branch
CC003 subject_imperative check failed ==> docs: revamped the profile
Commit message should use imperative mood (e.g., 'fix bug' not 'fixed bug')
Suggest: Change the first verb to imperative form
Docs: https://commit-check.com/rules/#cc003
.pre-commit-config.yaml
repos:
  - repo: https://github.com/commit-check/commit-check
    rev: v2.11.0
    hooks:
      - id: check-message
      - id: check-branch
      - id: check-author-email
.github/workflows/commit-check.yml
- uses: commit-check/commit-check-action@v2
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  with:
    message: true
    branch: true
    pr-comments: ${{ github.event_name == 'pull_request' }}
MCP server
{
  "mcpServers": {
    "commit-check": {
      "command": "uvx",
      "args": ["commit-check-mcp"]
    }
  }
}

What it checks

  • Commit messages


    Conventional Commits by default, or your own pattern. Subject length, mood, capitalisation, required body, forbidden merge/fixup/WIP commits.

    CC001–CC013

  • Branch names


    Conventional Branch naming, plus rebase checks that catch a branch drifting behind its target before CI wastes a run on stale code.

    CC201–CC202

  • Committer identity


    Catch commits authored by ec2-user on a build box, or require everyone to contribute from a company address.

    CC101–CC102

  • Signoff and DCO


    Require the Signed-off-by trailer locally, so contributors find out before CI rejects the pull request.

    Signoff guide

  • AI attribution


    Whatever your project has decided about AI-assisted commits, enforce it mechanically instead of relitigating it in review.

    AI attribution guide

  • Org-wide policy


    Inherit a base config from a shared repository, then let each project override only what it needs.

    Organization guide

Built to be trusted

  • SLSA Level 3


    Build provenance with artifact attestation you can verify before installing.

  • Stable rule IDs


    Every diagnostic carries an ID like CC003 that never changes, so you can cite it in review, suppress it, or feed it to tooling.

  • Used in production


    Running at Apache, Texas Instruments, Mila, and many more.

Trusted by developers worldwide

Used by developers and organizations worldwide in their production workflows.

Apache Apache
Discovery Unicamp Discovery Unicamp
Texas Instruments Texas Instruments
OpenCADC OpenCADC
Extrawest Extrawest
Chainlift Chainlift
Mila Mila
RLinf RLinf
Istio Ecosystem Istio Ecosystem
Juniper Networks Juniper Networks
French National Parks French National Parks
OpenDriveLab OpenDriveLab
UT Austin RobIn UT Austin RobIn
WorldArena2 WorldArena2
moniqo moniqo
elu mobility elu mobility
Open Energy Platform Open Energy Platform
Collective Collective

Ecosystem

Commit Check is a family of projects — one engine, multiple surfaces. Write your policy once in a cchk.toml, enforce it everywhere.

  • commit-check v2.11.0


    Core engine — Python CLI, library & pre-commit hooks.

    AI attribution governance, message patterns, JSON output

    Docs Repo

  • commit-check-action v2.10.0


    GitHub Action — seamless CI integration with PR comments.

    Windows runner, PR title validation

    Docs Repo

  • commit-check-mcp v0.1.7


    MCP Server — structured tools for AI coding agents.

    AI attribution governance, message patterns

    Repo

See all projects →

Ready in two minutes

$ pip install commit-check
$ commit-check --message --branch

No configuration file needed to start — sensible defaults apply immediately, and you tighten them when you are ready.

Install Why Commit Check?


Join our community

Be part of a growing ecosystem of developers who care about Commit Check.

GitHub Issue GitHub Pull Request