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

Uploaded Python 3Windows x86-64

godlint-0.5.0-py3-none-musllinux_1_2_x86_64.whl (7.5 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

godlint-0.5.0-py3-none-musllinux_1_2_aarch64.whl (7.4 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

godlint-0.5.0-py3-none-manylinux_2_17_x86_64.whl (7.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

godlint-0.5.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.5.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: godlint-0.5.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 6.7 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.5.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 e88ae66033b792e348aae1ff68891d67b7304a56a5994c39ed90341a1d29264b
MD5 566f8e43a2e2ac87ea2839290aea7dde
BLAKE2b-256 9094f40d819a56fecbe91777f50c17f13c96d915fb7d82ad10de16e3493c87fb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.5.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2aa57f5c7eaad6680ea3858ea99f6c92c90277d8865b36d922f94fab69864e4f
MD5 0f22f3d21b342ca03b95e5928f25b93f
BLAKE2b-256 6a37e782ba0ab04e6903dfd1cd749c211ec241d1e541641ed97eb6f10561bac6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.5.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 48ac383e1d19ad669057df5dbfa9c185ba70427505ff38c7b79419d6b91484df
MD5 6969b376356ba54ac29f73174ccea19a
BLAKE2b-256 b7f3b6d8833779a05b4da112ef7004ba50515ef161b3148dfff4908d2b30280e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.5.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e674861ab48c8bbad2ae61a31b5487ad546d9d7505a7b7078d6230ebc62ae027
MD5 4547115d8e82ce1f70670548152d76d8
BLAKE2b-256 9b63a4c7a9c5a63f38c5f4cc812fc2bb4e98dc6176c1a3861a362bcc8236303c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.5.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 d44d856c97f88b0aa5596bd91c27a4c7687c22cf4ad3ec085cc910265da23b76
MD5 32921ac2d468b11d176980d559dcc1c4
BLAKE2b-256 07e9bb8a7d870465d4ff8770520713a76263c4b68f87367b99678ad85841bf34

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.5.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 22ef8584beb2970025b79a0992cff4f9e057f5aeb1855b2b98824f6963aac72f
MD5 13d46664890cc8949b9312c873f3dc47
BLAKE2b-256 a37cb93109db6750912340625e84b87ccd6053cbb6cf7c68eddc443a2bec543c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.5.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e8aabd7bf3b4d5b87d93441cc749bffeee50042a6c5b2e6753a1c3bf255f6505
MD5 ae438a27661ee6a66b9c753b03653928
BLAKE2b-256 c3f672286720c95d963bde8986ba4df2c6a458071b018f167438aa51f28f29f4

See more details on using hashes here.

Provenance

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

This release

0.5.0 This release

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