Skip to main content

Godlint logo: code brackets and a check mark inside a circular mark

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
Homebrew brew install tomerwave/tap/godlint

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

Uploaded Python 3Windows x86-64

godlint-0.9.1-py3-none-musllinux_1_2_x86_64.whl (8.1 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

godlint-0.9.1-py3-none-musllinux_1_2_aarch64.whl (7.9 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

godlint-0.9.1-py3-none-manylinux_2_17_x86_64.whl (8.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

godlint-0.9.1-py3-none-manylinux_2_17_aarch64.whl (7.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

godlint-0.9.1-py3-none-macosx_11_0_arm64.whl (7.6 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

godlint-0.9.1-py3-none-macosx_10_12_x86_64.whl (7.7 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: godlint-0.9.1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 7.2 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.9.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 92a5306e88b49f42407d7cd2c4bea400984507356899b66671d49bc82a57fec2
MD5 2adf541c0257bd6b52e3852f54a408e3
BLAKE2b-256 7ac78fdade906a25e080b816f3227517fde582882751e2289cf4dd6116ac1315

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.9.1-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1819ed795e4a1c46e4515ba206508847aa96b7efff51ad55337d716c65794f0d
MD5 d878042641eb519dd598912464081f99
BLAKE2b-256 0613db3381b99170565614078770afaad7500b5ef892ce2de2da1fa5594f8d04

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.9.1-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c050a4375fd0d5a2d22eb415416c4b551d5c78e867d41de2e2f11006e905131f
MD5 728fa31b752e9f915e4bc7eaf1bfe1d3
BLAKE2b-256 df521dc989b42aa02a4f5b7955457033638c263c5c0c22c6b1b79eb9bf510ba2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.9.1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 869ee2476107cd62ef4dbfbdfd6d728ec4f334ff849cc4d3b56ecf28e833222d
MD5 681904b6e283585a815e783f742d2d50
BLAKE2b-256 3f838de3e9b21756dc7652bfee66e103aad8228a743618bd100abf59b55522d1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.9.1-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 75afbe38603c46e22bd7ebc5d9f3e68ebc79bf074cd2413dde1fa37a6c15210c
MD5 ab627fe9f7a919efea55bbb4ba2d1d73
BLAKE2b-256 9804b30d24f4cd74dc2c4ef034602e87eead1ac7df15855a8f175e500cb89ac1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.9.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cdba1adc14a1c0a506f0eae11f213046aab6631ba0463a02e0a6e364cd9135a6
MD5 9375c0685ee4d814ef456e6f8be875f5
BLAKE2b-256 454106f294ee16b741299d93db4f2e182aa17f9c68abe46f1c0b5904afd90a0c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.9.1-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 46a67f705b7a4aa82d248d9402feb125931f5e927ecf5eb13f55519b10ade125
MD5 0ba5c7a7ccc9aac018f7feca02d061c4
BLAKE2b-256 05ededae1f5e8e72c56d219a9f67ed12cd8eeb3b6925c5d60f9fccd4e7f6a237

See more details on using hashes here.

Provenance

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

This release

0.9.1 This release

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

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page