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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

godlint-0.6.0-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.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: godlint-0.6.0-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.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 f9a1a5786940bf939bcfb6116c20234f7939a3e479fd31db7c07444839648366
MD5 ffaa332b1cecff05ee7cdb16c62650ed
BLAKE2b-256 9085e603d62c354e819023fa450b7994be5cbebdc4b20fc10f5e275508d1f86e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.6.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5439147e76abae68c47044a5c77f8d8b5d5f8c81bb551fdd350bb54d2dbcc78b
MD5 adbadc5352ea435ff5e4aaebc56190c2
BLAKE2b-256 4d48b3ac7989e827252a9f8eec69a873f2db505b16b14410554d14f6808971cb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.6.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 133627deb4ded65749228f503af5619fd4842a17a211b738befc98da05ba6d26
MD5 75af0515bc4b0feba76e25b44acf88cc
BLAKE2b-256 4434c667388ceec1f623e96c531fd22465b555254c44cb3b9524494c199e3b07

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.6.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 08a87fad11d96449997a645d7b71771647e4967cba901a5a6d012e0f0659c526
MD5 2a2eb260f9b3be9631e938d4947fc47a
BLAKE2b-256 d00488d0dcf746c0f419edaf628cfb40a74d2ba48d033bbd97fc9441aee04b45

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.6.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 6881e961eaa7149cf4209833329e434ed67a1dddf7e7fb26edb4b07a61e85ec8
MD5 ae17845ba050f6a9b9901481cc614f8e
BLAKE2b-256 022e77f6837f66b0c188ee5c8d1f6390c7561ebcc7fd568d2eeac74428921ea5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.6.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 064102e95f1af16ec1ce9da94addcbf2fe53ee43c59838417a7ebb93c09924ff
MD5 e72d25cec4c5cd3594b1c1b7c36c9ab6
BLAKE2b-256 268249b9046f153b2812af6a7ff9cdc8b6e054821ff0fcce2d743e07b6b43ab2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.6.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f83269884c76aa215adf32da41cfcc2af5f44cefc322a4edcd708222506563ed
MD5 8c0341071fe21448b1bb64b3094f41aa
BLAKE2b-256 64593c083deac6760c9e260c47962987c19f52360a23b823ccdc27040010b447

See more details on using hashes here.

Provenance

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

This release

0.6.0 This release

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