Open-source static analysis for agents

# Lint your agent harness  before a model runs.

Catch unclear instructions, missing constraints, and tool-schema gaps across your agent setup. LintLang runs locally, gives actionable findings, and fits into the workflow you already use.

[Scan your project  ↗](https://lintlang.ai/docs/quickstart) [Run locally  ↓](https://lintlang.ai/#install) [View on GitHub  ↗](https://github.com/hermes-labs-ai/lintlang)

✓  Free and open source  ·  Built by [Hermes Labs](https://hermes-labs.ai/)

examples/agent.yaml

lintlang

Real scan excerpt · LintLang 0.8.2 · [Input fixture](https://lintlang.ai/examples/agent.yaml) · [Full report](https://lintlang.ai/examples/scan.txt)

```text
$ lintlang scan examples/agent.yaml

LintLang 0.8.2 · FAIL
Inspected: system prompt, 1 tool, 1 schema

CRITICAL · H1.1
Tool 'process_ticket' has no description.
→ Add a specific, disambiguating description that explains WHEN to use this tool, not just WHAT it does.

3 findings · see the linked full report
```

[Reproduce and fix this finding →](https://lintlang.ai/docs/first-finding)

Offline scans  ✦  Source-aware findings  ✦  Explicit CI gates  ✦  Offline scans  ✦  Source-aware findings  ✦  Explicit CI gates  ✦

01 

⇄

### Flag mixed output-format instructions

Surface references to multiple output formats that may lead to hybrid output.   02 

⌁

### Make tool choices clearer

Find vague descriptions, overlapping tools, and missing parameter guidance before they confuse an agent.   03 

⌘

### Set a baseline

Bring repeatable checks to every change, from a local prompt edit to a CI pull request.

A TIGHTER FEEDBACK LOOP

## Write. Check.  Ship with intent.

- 1 

### Scan your project

Discover agent instructions across your repository. Include custom prompt files, tool definitions, and configuration paths in the same scan.

- 2 

### Read findings in context

Get a rule, severity, source location, and suggested action so you can move straight from finding to fix.

- 3 

### Keep the standard in CI

Turn configuration review from a heroic habit into a dependable part of your delivery flow.

START IN A MINUTE

## Put a check between the draft and the deploy.

From your project root, discover recognized agent instructions in one command. Add custom configuration files explicitly, then use the same check in CI.

Working with a coding agent? Tell it:  “Scan our agent setup with LintLang and help fix the findings.”

Run once, no install · LintLang 0.8.2 · Python 3.10+

`$   uvx --from lintlang==0.8.2 lintlang scan --discover .`

[View the package on PyPI  ↗](https://pypi.org/project/lintlang/0.8.2/)

WHERE TO USE IT

## Run the check where instructions change.

Catch instruction problems in your pull requests, commits, and agent workflows. Start with the tools your team already uses.

### GitHub Actions & SARIF

The generated workflow pins Action v0.7.0 and explicitly gates HIGH and CRITICAL findings. Update to Action v0.8.2 and remove `fail-on: fail` to use its advisory default.

```text
lintlang init --github --path AGENTS.md
```

[Set up GitHub CI →](https://lintlang.ai/integrations/github)   ### GitLab Code Quality

Review agent-instruction findings alongside your code changes. New in 0.8.0: native Code Quality reports with source locations and stable fingerprints.

[Add the GitLab job →](https://lintlang.ai/integrations/gitlab)   ### Local hooks & agent hosts

Use [Cursor](https://lintlang.ai/integrations/cursor), [Claude Code](https://lintlang.ai/integrations/claude-code), or [pre-commit](https://lintlang.ai/integrations/pre-commit). Explore setup guides for all supported agent hosts.

[Choose an integration →](https://lintlang.ai/integrations)

IN THE FIELD

## Check the language before runtime.

LintLang brings static analysis to the language agents execute: before runtime review and evaluation.

01 / IN CI 

### Public Larch CI

Character.AI’s public Larch repository uses LintLang in its agent-instruction CI workflow.

[Read the merged PR ↗](https://github.com/character-ai/larch/pull/7960)   02 / RELEASE 

### v0.8.2 advisory default

Move the Action ref to v0.8.2 and remove `fail-on: fail` for advisory findings. The generated v0.7.0 workflow remains gated.

[Read the 0.8.2 release →](https://lintlang.ai/releases/0.8.2)   03 / OPEN SOURCE 

### Built in public

An Apache-2.0 package with public source, designed to fit a local-first engineering workflow.

[Explore the repository ↗](https://github.com/hermes-labs-ai/lintlang)

[Explore public usage and ecosystem references →](https://lintlang.ai/integrations#public-ecosystem-references)

Find LintLang in the ecosystem: [MegaLinter External Plugins Catalog ↗](https://github.com/oxsecurity/megalinter/pull/8899) · [awesome-gemini-cli ↗](https://github.com/Piebald-AI/awesome-gemini-cli/pull/124) · [Product Hunt ↗](https://www.producthunt.com/products/lintlang)

START WITH THE WORDS

## Give your agents a clearer set of instructions.

[Run LintLang  ↑](https://lintlang.ai/#install)
