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

Uploaded Python 3Windows x86-64

godlint-0.2.0-py3-none-musllinux_1_2_x86_64.whl (6.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

godlint-0.2.0-py3-none-musllinux_1_2_aarch64.whl (6.6 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

godlint-0.2.0-py3-none-manylinux_2_17_x86_64.whl (6.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

godlint-0.2.0-py3-none-manylinux_2_17_aarch64.whl (6.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

godlint-0.2.0-py3-none-macosx_11_0_arm64.whl (6.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

godlint-0.2.0-py3-none-macosx_10_12_x86_64.whl (6.5 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: godlint-0.2.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 5.9 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.2.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 1ae6d515fb80c285a2ff71fdbf3e54b0a5ec6033f085309b00978b82e0455568
MD5 5e2459354f2b7a279b66d9d5a1b84800
BLAKE2b-256 4301e663fc800d550f022c7fdbbfa7eb53936c8f7db98ac186757baa106b9af6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.2.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 65c32e2d858469dce97a658ba81e6c19d9c0b63607131a1b1b071d823130abaf
MD5 0d1269725b8782dce4db4d045d4cadb8
BLAKE2b-256 602c4e49e1c5024f38fb65ff1d4f9dc04a7eae141f64ce9f5a4504801a5f1767

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.2.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 004f7e30f03505e7e49cf3ddc14166fdad7fb824fbbc3b4e86f273282f933eb4
MD5 ba8c4247ea7e5f4c2b8cf8240dee6677
BLAKE2b-256 e52d3930f0e1411b7057355063303939ee98bb1b0ee5e65dec673b7abc613947

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.2.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 ec9ded8e92e87a5c0443ada181220c4ea5e3c6e47e51008442d5f99e2daa1196
MD5 124796db416987f23d77c1bdf06032a3
BLAKE2b-256 8e821c509b371a0bcf7e11254d07e8e3c03a5c47c8d59b63bd3b45619749d33e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.2.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 cfe211e8eef21f0699a0d931fbf5444336c44a18168bf20154324b6832a4e9ee
MD5 d0ad34163fe642a093907f0839852f28
BLAKE2b-256 03ceb0732a17a0a44b6f9f736b5b9e0773f461a7229104d0b9c84b3504799d30

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.2.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1da06362008ac652fb9a2ad95ece25d5f52c3a1bc09370413091f184808b8ebe
MD5 311ae2e5cf0989e3154bb2902ed6819d
BLAKE2b-256 517591e13c7cdf23ef923b97a7073ddbe110a9ebc1d30f4c03b54252fbeeff21

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for godlint-0.2.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fafe9376c88e9326d15fc4713ddbc0bc9a87d9e0107be4aa28a7101f6694981b
MD5 0fb0cb9e33fe67858a2a060c1425f442
BLAKE2b-256 f3225f519a27037c574a8b15ed499986fdbd8ddc439c950cd46bb61d4661a781

See more details on using hashes here.

Provenance

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

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

This release

0.2.0 This release

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