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

Uploaded Python 3Windows x86-64

godlint-0.3.0-py3-none-musllinux_1_2_x86_64.whl (6.9 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

godlint-0.3.0-py3-none-musllinux_1_2_aarch64.whl (6.8 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

godlint-0.3.0-py3-none-manylinux_2_17_x86_64.whl (6.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

godlint-0.3.0-py3-none-manylinux_2_17_aarch64.whl (6.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

godlint-0.3.0-py3-none-macosx_11_0_arm64.whl (6.6 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

godlint-0.3.0-py3-none-macosx_10_12_x86_64.whl (6.6 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: godlint-0.3.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 6.1 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.3.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 0d3ec1c4390ef76c61ec77fbe92f232c785051814f3d480de37a989f27ae4482
MD5 75b3cfeffb725c57a2767070e62a1592
BLAKE2b-256 d604dcf1fc000913b2dbb45d9a760ce93ad50d26750df19a06d88b3ee0752d2e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.3.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e6ec204ca91a5673ebccb89822227c7df588934bdfd0d1244c06506ca47fe598
MD5 0eab0778dc7f8c8f1f21cc8d4d6bd2ac
BLAKE2b-256 a7b00f6e7c8067bcf5b56d09d4fa310d9315759d68dc644f31da8dfbecdea7f8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.3.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 20a34b6b7ed0f6b217c8ae4b08e75fc8204da2399b75cb49a156c19b869e185e
MD5 2a87f08a7b969b0391c7b12c15097309
BLAKE2b-256 08b7b48f4e32c6b9cc4edf130a41f55e722f1355154f57b021546e3ee9a7a72c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.3.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b2bab347ca69ca4840bc98eedf1ca37354ed076f92996a97aadc2ca6b9d58793
MD5 c3b2d213bb3c3c9a552d140ed8ecea30
BLAKE2b-256 b542efec85581aeff19f1f01a708c38dc611d95148a75824d13e9437a1e2554d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.3.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 4a5d86abd1a6e955b4ea7cc33d75694f32d55a4c55f8387111d5ab000aad88b7
MD5 7768b879dac15b2427ac5a391f5eea92
BLAKE2b-256 e14d2c54fd88d604c72853b2e3649e712d0fe5cac6b8cff953f73df66b38951f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.3.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 075c8ed5cc86967cd23f218e2e94595991416d589681d7ac52dd3e292a757bc1
MD5 8c749cf7efcd3c402d02cbc3efc6e054
BLAKE2b-256 1a7329c5e4e0f5c0d2822f85187e390896cc40bd1e2f9c82ffe788823faf0d54

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.3.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1964792599d64f2fb89b2b96ac59566c2c4bab3b109e03c9533dc6b1527f67b9
MD5 9caeaf4056b5e23c60466525606e5839
BLAKE2b-256 21428a07519928315ff370b3eed97dc579e0d68889a8faa65d7d21cb7b25154e

See more details on using hashes here.

Provenance

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

0.4.0

7 files

This release

0.3.0 This release

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