Flag mixed output-format instructions
Surface references to multiple output formats that may lead to hybrid output.
A linter for agent instructions
LintLang checks tool descriptions, system prompts, AGENTS.md, YAML, JSON, and supported Python prompt sources for bounded language and contract defects. Local, deterministic, zero-LLM.
Illustrative rendering of an exercised LintLang 0.4.1 scan
Keep trying until it works.Respond in JSON and Markdown.THE INSTRUCTION GAP
Agent configurations are becoming application code, but they are still written and reviewed like prose. LintLang gives your instructions the same disciplined feedback loop as the rest of your stack.
Explore the approach →Surface references to multiple output formats that may lead to hybrid output.
Spot vague tool descriptions and qualifiers, missing operational limits, and context-boundary risks.
Bring repeatable checks to every change, from a local prompt edit to a CI pull request.
A TIGHTER FEEDBACK LOOP
Scan recognized JSON/YAML agent-config shapes, .txt, .md, and .prompt files, or Python files with extractable prompts.
Each finding reports a detected pattern, severity, logical location, and suggested review action. Findings may remain at file or logical-location level.
Turn configuration review from a heroic habit into a dependable part of your delivery flow.
START IN A MINUTE
Run LintLang against the instruction file in front of you, then bring the same check into CI.
Working with a coding agent? Tell it: “Run LintLang against our agent instructions before changing them.”
Run once, no install · LintLang 0.6.0 · Python 3.10+
$ uvx --from lintlang==0.6.0 lintlang scan AGENTS.mdWHERE TO USE IT
Each entry point ships in the LintLang repository and is pinned to the 0.6.0 release. Replace AGENTS.md with the instruction paths your repository owns.
Scan a chosen path on every push or pull request, or run lintlang init --github to write a pinned Code Scanning workflow.
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: hermes-labs-ai/lintlang@v0.6.0
with:
path: AGENTS.mdAction setup ↗Scan the configured paths before each commit. Findings stay advisory until you add --fail-on fail.
repos:
- repo: https://github.com/hermes-labs-ai/lintlang
rev: v0.6.0
hooks:
- id: lintlang
args: [AGENTS.md]pre-commit setup ↗A non-blocking PostToolUse hook returns repair guidance after Write or Edit changes a supported file.
$ pipx install lintlang==0.6.0
# then, inside Claude Code
/plugin marketplace add hermes-labs-ai/lintlang
/plugin install lintlang@lintlangPlugin guide ↗A non-blocking AfterTool hook returns repair guidance after write_file or replace changes a supported file. Requires uv; the guide carries the commit-pinned install command.
Extension guide ↗Opt-in external plugin AI_LINTLANG for repositories that already run MegaLinter.
SARIF 2.1.0 output places instruction findings beside code findings.
$ lintlang scan AGENTS.md --format sarif \
--fail-on fail > lintlang.sarifCode Scanning workflow ↗The editor hooks never block or rewrite a file. These integration points are maintained by Hermes Labs in the LintLang repository; they are not endorsements by GitHub, Anthropic, Google, or MegaLinter.
IN THE FIELD
LintLang brings static analysis to the language agents execute: before runtime review and evaluation.
Character.AI's public Larch repository added LintLang to its consolidated third-party CI lint job: 236 files passed with no HIGH or CRITICAL findings.
Read the merged PR ↗All-time PyPI downloads including mirrors; 4,269 downloads excluding known mirrors. Coverage through August 21, 2026.
Inspect the PyPI stats ↗Packaged in the community-maintained Haven overlay for Gentoo, with ebuilds through version 0.4.1.
Browse the ebuilds ↗An Apache-2.0 package with public source, designed to fit a local-first engineering workflow.
Explore the repository ↗A DIFFERENT KIND OF LINTER
LintLang is designed around a simple idea: instructions deserve clear, actionable feedback without pretending that language is perfectly deterministic.
Inspect evidence & provenance ↗Feedback for the people who write and maintain agent behavior.
Focus attention where an instruction failure can carry real consequences.
Check the configuration in front of you, then bring it into your pipeline.
THE BOUNDARY
A clean scan does not prove runtime correctness or safety. Use LintLang before evaluations, traces, guardrails, and human review—not instead of them.
See where it fits in the stack ↗START WITH THE WORDS