Stillwright

A quiet maker for your AI agent.

It runs inside the agent you already use, gets to know you once, then keeps working on your goals: plans them, finds and vets the right tools, proves every step, and only speaks when it needs you, in five lines or fewer.

Source on GitHub The evals, raw PyPI

18 seconds: sw status, a run two steps in, one review card answered, two goals. Nothing else talks.

Why it exists

Agents say "done" when it isn't

A step passes only when an independent check proves it: tests run, page loads, source says so. The check is written before the work, and a fresh reviewer decides, not the worker.

There are too many tools

Thousands of skills, MCP servers and repos, some malicious. Stillwright picks by evidence, reads the code before trusting it, asks you once, and pins it by hash so it can't change silently.

Agents talk too much

One inbox with four card types: ask, review, notify, idea. Silence is the default.

What you see

Every run leaves a plan with the check per step and a log with each check's output, as plain files you can read without the tool. When it needs you, you get a card like this:

$ sw inbox list 1. review: pricing.discount could go negative; fixed with a floor at 0. 5/5 tests pass, tests untouched. (open) $ sw inbox answer 1 "ok"

Measured, not assumed

Three small tasks (code, writing, research), each done by a fresh Claude Sonnet agent with and without the Stillwright skills, graded by scripts and a read-only judge. Then the same tasks priced in dollars from Claude Code's own receipts.

6 / 6tasks finished on both sides
0 vs 1false claims in reports, with vs without
$0.92 vs $0.80priced round, with vs without: no saving
3 of 3runs left a plan and a log; plain runs left none

On tasks this small it does not make the agent more capable or cheaper. It makes the work checkable and keeps the agent from claiming things it didn't do. The raw runs, the grading script and the judge's report are in the dataset, so anyone can re-grade or dispute them.

Evals table: six runs, task done, evidence in report, five-line rule, plan and log, false claims, wall time, tokens

Install

pip install stillwright
npx skills add HamzaIlyas/stillwright
sw status

Then, in your agent: "Use the stillwright skill." It asks a few short questions once, then works from your goals. Also brew install HamzaIlyas/tap/stillwright, a one-line installer for Linux, macOS and Windows, or npx plugins add HamzaIlyas/stillwright for Claude Code, Codex, Cursor, Copilot CLI and others.

Facts you can check

License
MIT
Binary
one Rust executable, sw, no runtime; state is plain files under ~/.stillwright
Agents
Claude Code, Codex, Gemini CLI, Cursor, Copilot, OpenCode, Hermes, and any agent that reads Agent Skills
CI
Linux, macOS and Windows; every sw command in the docs is executed on each push
Releases
GitHub Releases, PyPI, Homebrew tap