Stillwright
A quiet maker for your AI agent. It gets to know you, 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.
Any goal with a way to check it: code, research, writing, launches, operations. It runs inside the agent you already use: Claude Code, Codex, Gemini CLI, OpenCode and any agent that reads Agent Skills.
Why
- Agents say "done" when it isn't. Stillwright passes a step only when an independent check proves it: tests run, page loads, source says so.
- 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. If nothing fits, it builds the tool itself.
- Agents talk too much. One inbox (ask, review, notify, idea). Silence is the default.
Install
| Agent | Command |
|---|---|
| Claude Code | claude plugin marketplace add HamzaIlyas/stillwright then claude plugin install stillwright@stillwright |
| Codex | codex plugin marketplace add HamzaIlyas/stillwright, then install Stillwright from /plugins |
| Gemini CLI | gemini extensions install https://github.com/HamzaIlyas/stillwright |
| Cursor | loads the root plugin.json (Agent Plugins standard); marketplace listing pending |
| OpenCode, or any Agent Skills agent | npx skills add HamzaIlyas/stillwright |
| Hermes Agent | git clone --depth 1 https://github.com/HamzaIlyas/stillwright /tmp/stillwright && mkdir -p ~/.hermes/skills/stillwright && cp -R /tmp/stillwright/skills/. ~/.hermes/skills/stillwright/ (picked up on the next message; /skills list shows them) |
The skills need the sw binary (a single file, no runtime). Any of these installs it:
# Any OS with Python
pip install stillwright
# Linux / macOS
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/HamzaIlyas/stillwright/releases/latest/download/stillwright-installer.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy Bypass -c "irm https://github.com/HamzaIlyas/stillwright/releases/latest/download/stillwright-installer.ps1 | iex"
# From source (needs Rust)
cargo install --git https://github.com/HamzaIlyas/stillwright --locked
On Linux and macOS the skills can also install it on first use (skills/stillwright/scripts/get-sw.sh, pinned
to a release version), when you are present to approve it.
Use
New here? The quickstart takes ten minutes, and CI runs every command in it. Also: troubleshooting, Windows notes, and a real example run.
Tell your agent a goal, or just say "stillwright". The first time, it asks a few short questions to get to know you. After that:
sw status what's going on, in three lines
sw inbox list the only things that need you
sw goal add "..." give it more work
To keep it working while you're away, schedule one loop per hour, for example
claude -p "Use the stillwright skill: run one loop, then stop." from cron. Unattended runs
never push, deploy, publish or install anything new; those wait in your inbox.
What's inside
| Skill | Does |
|---|---|
stillwright |
the loop: pick goal → plan → get tools → execute → verify → report |
sw-onboard |
learns who you are and what you want, in three short rounds at most |
sw-scout |
finds, vets, trials and pins the best existing tool for a job |
sw-forge |
builds and tests a new skill when nothing good exists |
sw-verify |
independent, default-fail proof for every step |
sw-radar |
spots what matters to you (updates, risks, new tools) as rare idea cards |
sw-deep-search |
research that ends in verified, sourced answers |
sw-context-diet |
keeps long sessions lean and cheap |
sw-launch |
pitch, README, posts and launch plan for what you build |
All state is plain files in ~/.stillwright (profile, goals, inbox, notes, pinned tools,
run logs). Nothing leaves your machine except what your agent already sends.
sw is a single Rust binary, so there is nothing to install besides it, and it is ready to
become a background service later.
Status
v0.1. Each rule answers a failure that has been measured or reported, not a hunch:
- Agents mark work done without testing it: Anthropic's notes on long-running agent harnesses. Hence independent, default-fail checks.
- Agents rarely ask for help at the right moment and fill gaps with wrong assumptions: HiL-Bench. Hence the typed inbox with silence as default.
- Agent success falls as tasks get longer; METR measures how long a task an agent completes at 50% and at 80% reliability, and the 80% horizon is much shorter: METR time horizons. Hence small, checkable steps.
- Hundreds of malicious skills were found on a public skill registry in early 2026 (341 of 2,857 scanned): Snyk, "From SKILL.md to Shell Access", Unit 42 on the OpenClaw skill marketplace. Hence vetting, approval and hash-pinning before any third-party tool runs.
- In a controlled test with a limited verification budget, agents followed a constraint that had since been withdrawn in about three of four decisions: arXiv 2608.25553. Hence dated notes that are retired, not overwritten.
Measured on three small tasks against a plain agent of the same model: same task completion, an auditable plan and log every time, zero false claims (the plain side had one mild one), about twice the wall time, and reports that broke the five-line rule every time (as did the plain side's). After one skill fix, a re-run met the rule in all three tasks. Numbers, caveats and raw runs: docs/evals.md.
Issues and PRs welcome. Found a gap? Open an idea.
MIT © Hamza Ilyas · Built at Folvix.
Metadata
Release files for stillwright 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| stillwright-0.1.2.tar.gz | 18.6 kB | With provenance | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| stillwright-0.1.2-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| stillwright-0.1.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| stillwright-0.1.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| stillwright-0.1.2-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| stillwright-0.1.2-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 2.7 MB
Release files / stillwright-0.1.2.tar.gz
| Download URL | stillwright-0.1.2.tar.gz |
|---|---|
| Size | 18.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9d2e5141f22e960998ee479b902245c8ad5732b12a49ac46662f98ade20482f5
|
|
BLAKE2b-256 checksum How to use checksums |
9fbf1fc13d1c3f6759d55c99820909ca5dc00c32b5a5e498e850afbab17611e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logRelease files / stillwright-0.1.2-py3-none-win_amd64.whl
| Download URL | stillwright-0.1.2-py3-none-win_amd64.whl |
|---|---|
| Size | 500.3 kB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4db3688f084e0ce9069eb6bbf153310431a9355f1c524490bee219640751f843
|
|
BLAKE2b-256 checksum How to use checksums |
f04df6da8ff839e5c251c42211dc00d38702c658ef7f0117c4218e885e7e752c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logRelease files / stillwright-0.1.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | stillwright-0.1.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 559.2 kB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
13784f492164e0a61aa7b9042e97ed06240adb988d972c31e0a90b440a2fe31a
|
|
BLAKE2b-256 checksum How to use checksums |
304f52290a996afb504c5fb7f5061474b219102606fe346c49c1e110cff1c368
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logRelease files / stillwright-0.1.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | stillwright-0.1.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 524.7 kB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
9c12c2c2fb5f99cf1a33cfed2ffd96af67be7c7cc93422f1a9001324ee0ecb70
|
|
BLAKE2b-256 checksum How to use checksums |
19d6927ee61afd99587b1b60e6be7f3ba3104d2a941247f067d5ab07d920feea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logRelease files / stillwright-0.1.2-py3-none-macosx_11_0_arm64.whl
| Download URL | stillwright-0.1.2-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 507.5 kB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d1fca845cf4440798983c2b416b2b65ecc340910116f2fb06ba28da562675607
|
|
BLAKE2b-256 checksum How to use checksums |
679d217f768332759806a672f5c1206ee32dde6d713ddc49d96cb12c8402f00e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logRelease files / stillwright-0.1.2-py3-none-macosx_10_12_x86_64.whl
| Download URL | stillwright-0.1.2-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 544.5 kB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
93013b4e430e31de61acfb25d0e8355315b68a65b8198eb81d526c177bab71d2
|
|
BLAKE2b-256 checksum How to use checksums |
486fb1d7f47e6593b929835c83efe833dc6ca00252ec6a0a17c238cc07089dc4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logSecurity for stillwright 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 6 files in this release have been uploaded with provenance metadata.
Attestation for stillwright-0.1.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.