Skip to main content

Godlint logo: code brackets and a V mark inside a broken circle

Godlint

The executable engineering constitution for repositories maintained by humans and coding agents.

crates.io npm PyPI Tests MIT License

Quickstart · Rules · Documentation · Contribute

AI coding agents increase output. They do not automatically preserve your architecture, security boundaries or engineering standards.

Godlint turns those decisions into deterministic policy that every contributor runs locally and in CI. Define a rule once; enforce it across Rust, TypeScript, JavaScript and Python with the same result for humans and agents.

Human or agent writes code
        ↓
Godlint checks repository policy
        ↓
Clear finding → fix → deterministic CI

Why Godlint

  • Guardrails for agents. Catch architectural drift before generated code reaches review.
  • One policy across languages. Share boundaries and thresholds across a polyglot repository.
  • Deterministic enforcement. No LLM decides whether CI passes.
  • Accountable exceptions. Suppressions carry a reason, owner and expiry.
  • Local by default. Source code does not leave your machine.

Godlint complements Clippy, ESLint, Ruff and Pyright. They understand one language deeply; Godlint enforces the repository-level decisions that must hold across all of them.

Quickstart

Create godlint.yaml:

version: 1
suites: [recommended@1]

Run:

npx @godlint/cli check
# or: uvx godlint check
# or: cargo install godlint-cli && godlint check

That is enough to enforce the recommended policy locally and in CI.

What it enforces

Godlint ships 25 rules for:

  • architecture and module boundaries;
  • restricted imports, calls and dependencies;
  • centralized configuration and safer execution;
  • complexity, nesting, function and file size;
  • production logging and error handling;
  • accountable, expiring suppressions.

See the rule reference for every rule and its limits.

GitHub

Annotate findings directly on pull requests:

- uses: tomerwave/godlint@v1
  with:
    version: 0.1.9

The action needs no token or write permissions. Godlint also emits terminal, GitHub, JSON and SARIF output. See Using Godlint in CI.

Install

Use the package manager already in your project:

Ecosystem Command
npm npm install --save-dev @godlint/cli
pnpm pnpm add -D @godlint/cli
Yarn yarn add -D @godlint/cli
Bun bun add -d @godlint/cli
uv uv add --dev godlint
pip pip install godlint
Cargo cargo install godlint-cli

Prebuilt binaries for Linux, macOS and Windows are available from the latest release.

Contribute

Godlint is pre-alpha. This is the best time to shape it.

  • Use it: try recommended@1 on a real repository and report false positives.
  • Propose a rule: bring valid and invalid examples across the relevant languages.
  • Improve it: code, fixtures, documentation and design feedback are welcome.

Start with CONTRIBUTING.md or open a rule proposal. Report security issues through SECURITY.md, not a public issue.

Status

Godlint is pre-alpha. Rule identifiers, configuration and suite contents may change before 1.0. The project is deterministic and useful today; the roadmap records what comes next.

License

MIT

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

godlint-0.4.0-py3-none-win_amd64.whl (6.6 MB view details)

Uploaded Python 3Windows x86-64

godlint-0.4.0-py3-none-musllinux_1_2_x86_64.whl (7.4 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

godlint-0.4.0-py3-none-musllinux_1_2_aarch64.whl (7.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

godlint-0.4.0-py3-none-manylinux_2_17_x86_64.whl (7.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

godlint-0.4.0-py3-none-manylinux_2_17_aarch64.whl (7.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

godlint-0.4.0-py3-none-macosx_11_0_arm64.whl (7.1 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

godlint-0.4.0-py3-none-macosx_10_12_x86_64.whl (7.2 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file godlint-0.4.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: godlint-0.4.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 6.6 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for godlint-0.4.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 04fd396670f91b96318be4d45c29d93ee744114ca6640204daa69d629188914d
MD5 724df02c19eeaf0cee720d4883faa7ae
BLAKE2b-256 b0d633ba5b39b46a939ec1955d17f87318d1c23492e97d9e44508a1e7a280be1

See more details on using hashes here.

Provenance

The following attestation bundles were made for godlint-0.4.0-py3-none-win_amd64.whl:

Publisher: release.yml on tomerwave/godlint

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

File details

Details for the file godlint-0.4.0-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for godlint-0.4.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cd5a17cd2df3e9ab40f9552c53973273acc63c9211a773b49c85c21a666b6d3e
MD5 6fd736d5e1c91dbfc1e57166ffa8bb27
BLAKE2b-256 27e7b2cd6cf5af51593cd09aaafea7f3175ad23ec3627aaa6faa06c4bfcf8197

See more details on using hashes here.

Provenance

The following attestation bundles were made for godlint-0.4.0-py3-none-musllinux_1_2_x86_64.whl:

Publisher: release.yml on tomerwave/godlint

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

File details

Details for the file godlint-0.4.0-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for godlint-0.4.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 cee53577502f148a82da6d3a3fee867ea68af41022a69130eb40c8e9eb113c2c
MD5 8fe7dc691b24db594094a3c0104e110d
BLAKE2b-256 24718f51ee5c90e85f5ce00cddf30658790c1f92b2434b609c8147bd71d1e9db

See more details on using hashes here.

Provenance

The following attestation bundles were made for godlint-0.4.0-py3-none-musllinux_1_2_aarch64.whl:

Publisher: release.yml on tomerwave/godlint

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

File details

Details for the file godlint-0.4.0-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for godlint-0.4.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e5bee3c8dfbef058be86acfefbc6178063af87bed9d0b7642efb6028bf0330a1
MD5 07f96a394d71b902616652579b7af059
BLAKE2b-256 f4be6a3c024e8cbb7ac1e6f97ee048eb1559c7c57e12f91e851977be80a0a1d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for godlint-0.4.0-py3-none-manylinux_2_17_x86_64.whl:

Publisher: release.yml on tomerwave/godlint

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

File details

Details for the file godlint-0.4.0-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for godlint-0.4.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 84ea4eafe9ea54c6c0c37afa9b477be38ae2ad9dbd3c4268c2875cd49e4f758c
MD5 38e6f120c93bb53047db2f8bc54fce43
BLAKE2b-256 ed3e5373fc8a22f7e0aee95a5a6b451214aa91317d0dc7f93054529a11c123ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for godlint-0.4.0-py3-none-manylinux_2_17_aarch64.whl:

Publisher: release.yml on tomerwave/godlint

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

File details

Details for the file godlint-0.4.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for godlint-0.4.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 39e958730b94c627fcaff27ff43cd469bbcb6182439e8775959a5ebb117f9f3d
MD5 9aa4daed6e7db0fcae8559b0c6c1512a
BLAKE2b-256 5e09300f731991f0dbc679f6b9645eb0a4af0619c1f6f1bbd212e2907a67f96e

See more details on using hashes here.

Provenance

The following attestation bundles were made for godlint-0.4.0-py3-none-macosx_11_0_arm64.whl:

Publisher: release.yml on tomerwave/godlint

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

File details

Details for the file godlint-0.4.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for godlint-0.4.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5035fbfe31263b6b4cc6c9948cfa4c5b3014c2345c114b6367b576c70bacd6ca
MD5 cd659d4413cd3f40166f8d656b02aa27
BLAKE2b-256 4854d29eb1636818c86d0a9738d7d2bd6962b0e75ae7401777ab44def30b5605

See more details on using hashes here.

Provenance

The following attestation bundles were made for godlint-0.4.0-py3-none-macosx_10_12_x86_64.whl:

Publisher: release.yml on tomerwave/godlint

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

Release history Release notifications | RSS feed

0.9.1

7 files

0.9.0

7 files

0.8.0

7 files

0.7.0

7 files

0.6.2

7 files

0.6.1

7 files

0.6.0

7 files

0.5.0

7 files

This release

0.4.0 This release

7 files

0.3.0

7 files

0.2.0

7 files

0.1.9

7 files

0.1.8

7 files

0.1.7

7 files

0.1.6

7 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page