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

Uploaded Python 3Windows x86-64

godlint-0.8.0-py3-none-musllinux_1_2_x86_64.whl (8.0 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

godlint-0.8.0-py3-none-manylinux_2_17_x86_64.whl (8.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

godlint-0.8.0-py3-none-manylinux_2_17_aarch64.whl (7.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

godlint-0.8.0-py3-none-macosx_11_0_arm64.whl (7.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

godlint-0.8.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.8.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: godlint-0.8.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 7.1 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.8.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 7639df811d45c08a3dfc9136315c28c81a8664d7c5422644cb8be63ca50d164d
MD5 05b313f22b6f5b344039edb713bb66eb
BLAKE2b-256 002380670e735b0022b51a2e341bbebd1635e86b6a1bc926f09a8cf4743d557d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.8.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 919b2be72e1663fe0485c14b11cc2ecc344eaf189037391b0067478ffc685923
MD5 7e9114b7a03b73894f01818a0192b158
BLAKE2b-256 4d12a3e8af7bc61659cfdaa0a830ca45515e37d016d5ee6234ebdc2cac66a24f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.8.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c5f451600e21f43d939a685544bfe57d5d386169ab16e454967b669c92a37ffd
MD5 c5c39ba7d0af41b63e96ec10cdaadb9c
BLAKE2b-256 83d2c663ac7700e987cc3da3434d614bde472b015f3b62bf7249bce5de35bb44

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.8.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 10c4eb6a844410a341b2245b89b315bde6f3ada9d7a7fe4d49a5328ba6a6a63f
MD5 4269da14e88f001a795c2d7d92f49bcd
BLAKE2b-256 c4d2f1258533f28cb982da8d128362f433e761fca0dad0926ebf4ace32b9c5d4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.8.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 68e7c9a0f358a73483fa6196b1333bf93ff7c48037a006b06f7375ba398cabe3
MD5 eefa6c0e9d49e9e7d35723dd28d44cfd
BLAKE2b-256 c5a547acd79e466e0a4f0d9b36ba7ba51da0706f70897fa3c0ddf556759a3be7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.8.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 300399bf559e4657eb5d25cf70a94c6a12565b455ae313b8e6caf777d0e1e236
MD5 11faf32f4991ef45a0a4f655b41bd7b2
BLAKE2b-256 715061e58e0823ac627453df61efc57f174955ae99af214cb2691181a9fd577a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.8.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 171fcecf17b5cd39e339e955c446bbad1bc150eeb97d1052fcc071595ce4d019
MD5 ffe0b2b12b386a82058a5df19aed8242
BLAKE2b-256 265208a540de088699d14ff0e5b12f2e963f6c9be3121af25829a3fcccdc7c00

See more details on using hashes here.

Provenance

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

This release

0.8.0 This release

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

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