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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

godlint-0.6.1-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.1-py3-none-win_amd64.whl.

File metadata

  • Download URL: godlint-0.6.1-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.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 b6ec1ebebb04183e40a3c36bffe0dc23a830808284cce7f8ec12ff669fe9a8bd
MD5 8950315bc49213db23d0668f41fc9a1f
BLAKE2b-256 9e4cca1ca2aef0e699f140218776baed5f3ed47b9f76761065592598b512c62a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.6.1-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 70a3be2b6e97e14736bc7a7fd9a71f129ee79c8b9c3f4ea0423cdea780f71c18
MD5 f95561cb6cfac0ce8588340365479fa7
BLAKE2b-256 3a91cddb021e9778f508131d9e03ffa906bd509a6ebe2f58e00d5365602d21e1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.6.1-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8d9c929099cb8dc153169618fb29f0d838290f7391878f3d1716486dc5263a94
MD5 33ddaa7f3c9cfd4eec76733104c7a6e7
BLAKE2b-256 ffa2ead99554099f0b2ef0d217446bb69b4030d78ddabd540030be8f545cdc07

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.6.1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0b85b53aa59bbf818e1baf554cfc463cf7651b2acc4eddcfd034be629fdc1553
MD5 dfdb8e44bed23d65cbb3500ec40af85c
BLAKE2b-256 a57dc5b456a747a63873db29571764b4fa565248ae2267ad1c13c99a8e28f111

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.6.1-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 90891f4b52e96935433ef414af9267ad628ae6399e73a55d6d63b4c25559f5c4
MD5 4f665ff5d56ffb5865c3ea85068bf191
BLAKE2b-256 93600fe2759084c860d63ca62730f4c71c86c7e5f295eff7449a3de6c561de7f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.6.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3216cd2fef25da78fb953074f791a206815819f75b3423977a17476701844a63
MD5 4f001e326f1adde2f67d2101faae9574
BLAKE2b-256 ca5ae9867d2cd2b17b2cbe43559c8c948cec460b7b74ad3529cfee5704729729

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.6.1-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cbe5f9027f8ee8b527ad14efb2b2586a1edcb9d6f4aa3baedcff73aecca9647a
MD5 5aaa5c5f7633548510bdc0a23671f83f
BLAKE2b-256 76980609b7eb083df3622dadf2bb927c8e0c58dc8ef1635ce96c813ab4b0717a

See more details on using hashes here.

Provenance

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

This release

0.6.1 This release

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