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.6.2-py3-none-win_amd64.whl (7.0 MB view details)

Uploaded Python 3Windows x86-64

godlint-0.6.2-py3-none-musllinux_1_2_x86_64.whl (7.9 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

godlint-0.6.2-py3-none-musllinux_1_2_aarch64.whl (7.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

godlint-0.6.2-py3-none-manylinux_2_17_x86_64.whl (7.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

godlint-0.6.2-py3-none-manylinux_2_17_aarch64.whl (7.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

godlint-0.6.2-py3-none-macosx_11_0_arm64.whl (7.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

godlint-0.6.2-py3-none-macosx_10_12_x86_64.whl (7.6 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: godlint-0.6.2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 7.0 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.6.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 a37a2f44d030169105b10fda522a0306f8ab35886ac29a6f055d208cddb1decd
MD5 5240ac194167020dc47be39fd8404917
BLAKE2b-256 4d48f2007c56fee91cefb4ef1332babb1d8a9c3091229a3d5d5d0137b54887ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for godlint-0.6.2-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.6.2-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for godlint-0.6.2-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 73a091cab8e20467426e2b4555154906d4408bba6a0cc19b69ffa322df1dde82
MD5 77858cf376a0e59eb6505d72e157a01d
BLAKE2b-256 6ea55c54529659ff3eca0e09be4f4db1a854cb393b35bc631d01234217e4cc7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for godlint-0.6.2-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.6.2-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for godlint-0.6.2-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 53b9b0503cca2c8f13a46db1ffa02858f61cd26afb1c62f65939d62ff7d0aab0
MD5 d093e2c9c865e34a5c59a5224dccdfd6
BLAKE2b-256 b25aa7762599865c5ff91538c8dd24ce89dcde8a90eea66788fbe943840b8a8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for godlint-0.6.2-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.6.2-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for godlint-0.6.2-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b7222fed16c33b49278f9f78f52919d0fe4c128990c2edf88d0564bfe5942a94
MD5 5b3adbd4707c22b468baf17124fc022d
BLAKE2b-256 f78c7ca8f6905da756b95c2abeb39e17f1c3e29f6401f73b25a4e7f68875950d

See more details on using hashes here.

Provenance

The following attestation bundles were made for godlint-0.6.2-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.6.2-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for godlint-0.6.2-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 36b9140025ea8606d1e2fa594c668a46528427412ba32c19771df053fe3a5a60
MD5 25c2b2a55d8db5873b6f1319e64cf89d
BLAKE2b-256 bb824d09e8dfe9fcc2e6f33d8286c6a44cb607ab78487c7c7a0746616e898d41

See more details on using hashes here.

Provenance

The following attestation bundles were made for godlint-0.6.2-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.6.2-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for godlint-0.6.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a9703769e08667ca00264c1409eaf96cbf7b7826c770a36e0bfc5a04225928e7
MD5 7a632cf456ae8b1a6096d354a1b99e8d
BLAKE2b-256 0e25ae5ff76a9e7bf3f88fa1128ae2cfb7abcc0430651b65270bafae3e4c3077

See more details on using hashes here.

Provenance

The following attestation bundles were made for godlint-0.6.2-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.6.2-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for godlint-0.6.2-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6b6bb8062679e487b9b881b6fcb6b161bb4fa0d38313b1f102b5b028a4358ac6
MD5 eb198f4ea61b16c70922bb0dc56f7b7a
BLAKE2b-256 1fc69c5dbd54135542f5d13480092a68f5c478e023f6ca171f63f12c986a7ac6

See more details on using hashes here.

Provenance

The following attestation bundles were made for godlint-0.6.2-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

This release

0.6.2 This release

7 files

0.6.1

7 files

0.6.0

7 files

0.5.0

7 files

0.4.0

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