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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

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

File metadata

  • Download URL: godlint-0.9.0-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.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 6c8f12302206220848e01abbb2ffb0c1c23a634ae285453606a2b799ea9d6d7f
MD5 0e7c4a4164057dbca6eaa9fe0489a31f
BLAKE2b-256 66e20fb6ef14f6dc09b72b4dbdf075700ddb755d6db7cdf868c15e613f2aa961

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.9.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 18535a3c52f9c74bde650fb02ac3d59c788d00dc96d2a7e5e2f8849148d1652c
MD5 f4059e64d0cd016812fb282311c91e04
BLAKE2b-256 c790d7e270aae1699480398c369032cab92f9a85609b6cbba2011491a47a8569

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.9.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 961567c937facb2f3c5d21204e9ebe09a927d3cdf94e9cbf43d4ce43cfe52270
MD5 e5ac3e0dbe858c6e2de9d7b4f73fead9
BLAKE2b-256 05d6675f8db752271c66a669e15683358e5c6ef882873d40970b866adff2c95d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.9.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 3636bc33ec53dbbf56ba7df97cbe9931e64c0f403c4b17fcb9f41ce0e78c9bfd
MD5 313dead9ea54b0f596cfd32123d32d43
BLAKE2b-256 64b6a07fddd87dec35efeb4479c7cca091a13d1cb8c57f8740883c887e220758

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.9.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 bfd68c8c775815b5f1c73b6516dcdd4893b39e81b9bc0e66dd5b57b390389943
MD5 8ecc8315db9289d803834abe3d989666
BLAKE2b-256 8c5c2b911f454896cf4c9dbb2d90b433a3b9aff1d4f38258a62293eced09305a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.9.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 53b9eb6b0ff4e1fa96dae901973538b573837f6da3fa32c56fe5f338c72c5e35
MD5 5fc5100428eb422c3f74e087029076e0
BLAKE2b-256 5c9ce9d4016477f3ad2bcbc3de9a851312ffe7df6bdfa13192e490a5165f8c54

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.9.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 edfab65bb80993198d0270ea7981a5ba838aa48a8335975489691dfe0ca6c5ce
MD5 e91c0dba4b5c2ab4c2b18cd8ab125bd6
BLAKE2b-256 207322b860813d980add370635a43b8aa1fb26337165ab5a9d6b50e8e8335baa

See more details on using hashes here.

Provenance

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

This release

0.9.0 This release

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