Skip to content

Repository files navigation

Rýni

A linter for your agent harness.

Documentation

Harness engineering is hard. Keeping a team aligned on it is harder. Rýni checks your AGENTS.md, instructions, skills, and Markdown docs against shared conventions, so your agents get a consistent and coherent working environment.

  • 🔍 Lint your harness. Catch structural issues with deterministic checks.
  • 📝 Review your markdown docs. Structure non-deterministic checks that require judgment.
  • 📦 Share your conventions. Turn your team’s standards into rule packs you can use across repositories.

Get started

Requires Python 3.14 or later. Add Rýni and tidy-harness, an opinionated example rule pack, as development dependencies:

uv add --dev ryni tidy-harness
uv run ryni check .

Installed rules are active automatically. The CLI runs deterministic checks and reports agent reviews as pending. Commit pyproject.toml and uv.lock to share the same versions with your team.

The terminal report groups findings by file and shows checked file counts and elapsed time:

Rýni  check

.agents/skills/example/SKILL.md
  1  SKILL004  Shorten the skill description to at most 1024 characters
               (currently 1461).

Changes needed
1 finding
142 files checked · 0.28s

Counts cover unique targets that completed deterministic checks; directory targets are listed separately. Time includes rule loading, discovery, checks, and any fix/recheck, excluding process startup and report rendering. Color adapts to the terminal and respects NO_COLOR; redirected output is plain text. Use --output-format compact for the original one-line diagnostics, or --output-format json for structured output.

Run with your agent

Install the bundled skill for your agent, then invoke it in the same repository:

Agent Install in your terminal Send in your agent
Claude Code uv run ryni skill install .claude/skills /ryni-check
Codex uv run ryni skill install .agents/skills $ryni-check

The skill runs deterministic checks, delegates reviews to sub-agents, and combines the findings. Your agent must support sub-agents to complete reviews. Rýni itself runs no model and needs no API key.

Make it your own

A rule pack can combine deterministic checks with instructions for agent reviews. Write your team's conventions once and share them across repositories.

Build your first rule pack →

To build rules with an agent, install the bundled authoring skill:

uv run ryni skill install .agents/skills --name ryni-rule-author

Use .claude/skills for Claude Code. Invoke ryni-rule-author to build or extend a pack with shared analysis, tests, and measured performance. To inspect the cost of installed deterministic checks:

uv run ryni check . --deterministic --profile

Contributing

uv run pytest tests
uv run --with-editable . --with-editable ./examples/tidy-harness pytest examples/tidy-harness/tests
uv run ruff check .
uv run --group docs mkdocs build --strict
uv run --group docs mkdocs serve

See our jobs to be done for the project's direction.

Maintainers: see the release guide for Rýni's PyPI releases, dry runs, and the ryni-release skill.


Rýni — from Old Norse, “scrutiny” or “contemplation.”

About

A linter for your agent harness.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages