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

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

godlint-0.7.0-py3-none-musllinux_1_2_aarch64.whl (7.8 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

godlint-0.7.0-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.7.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: godlint-0.7.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.7.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 63f8d017804472de9ba2cadfd4e1df664355c8d6cafee4008e7643788d5eb79e
MD5 e6a5d96f61b5682286e959a666a0a138
BLAKE2b-256 32581474dd1c2576c3ace53ef5d71fc4393b4133e97aed7e7926b020eaa7b837

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.7.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d10f3e3499b9e13e2752678705f4eccbea21bb04ab2f4ab3e842154927b7ea73
MD5 91f6bdac8e9d2f3498c798782f98b159
BLAKE2b-256 ea8271a17e0bad20840f72b6f64023b33296ded9cda9feb330d1c30de133b4f2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.7.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 15393629450bda1b5ce18a44785b9ee3ad6a2705befaf868a096c048b31d194d
MD5 a9dea92ab5eb536138fd7d1bccf67774
BLAKE2b-256 4fdd8402b4f4f8bac3c06e68859e0072ca5d3914ab093ee86baa4683c9791b07

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.7.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 6b52ef8cf7004f630aff9a1edc3a0b62648db941877daa5de5779ab6bce02eac
MD5 656bdba27412682a0c9c48f135d928aa
BLAKE2b-256 85bb459385256ba574e19275a30ebe4b0c08f2e8b2c7871ee648dde045232a04

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.7.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 78ca7c6624d5698a256c7dbef957566c25371979ddaf4e41da6a04b6cb46e225
MD5 4a06eadfe5c0f4bf0eaf121727d59d91
BLAKE2b-256 fec49f80699dd63778ea0ce5f04290ba68a1b5285727aca1986e5719db2b1a4b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.7.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d2401e4261937bf7b67623e3be0157621d7309ede902d239514c20d6af84efb
MD5 76a9517463f0dae86528b9061d5bc942
BLAKE2b-256 04ee36660ec02121b646d647b37817c1892bf934a4734bf0c38eac92d44726bf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.7.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3f316b54437bdba3fa33c5464bcc8bd99a8b52ba548eeb93b9f0b3e9db13684c
MD5 ed8dbb721d4c0c6e3e6a55231993dcb5
BLAKE2b-256 b996800d53469bc893d097553f21a018849f8e9ed6c1eab1300d688dcaa6d8f1

See more details on using hashes here.

Provenance

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

This release

0.7.0 This release

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