Skip to main content

Stillwright

CI Release License

sw status, a run two steps in, one review card answered, two goals

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

One line for most agents:

npx plugins add HamzaIlyas/stillwright   # as a plugin: Claude Code, Cursor, Codex, Copilot CLI, VS Code, Grok Build, Kimi Code
npx skills add HamzaIlyas/stillwright    # as skills: 75+ agents, including all of the above

Or the agent's own way:

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)

For a whole team: run sw init in the repository and commit the two files it writes (.claude/settings.json, .github/copilot/settings.json). Everyone who opens the repo gets Stillwright in Claude Code (after trusting the folder) and in Copilot CLI and the Copilot cloud agent.

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, coming from OpenClaw or Hermes, a real example run, and a press kit for anyone writing or recording about it.

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.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stillwright 0.1.3
File Size Uploaded Provenance
stillwright-0.1.3.tar.gz 21.5 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for stillwright 0.1.3
File
stillwright-0.1.3-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
stillwright-0.1.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
stillwright-0.1.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
stillwright-0.1.3-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
stillwright-0.1.3-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.3.tar.gz

Download URL stillwright-0.1.3.tar.gz
Size 21.5 kB
Tags Source
SHA-256 checksum
How to use checksums
dcccf755587d44326cdf6ee9780cf8990027b5759454b1d294f176ebbb7fadea
BLAKE2b-256 checksum
How to use checksums
b2b4b0c3b756e86c20dce3f7df6dd768f7dca9d412c741af47d8f0f49fbe81f9
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 log

Release files / stillwright-0.1.3-py3-none-win_amd64.whl

Download URL stillwright-0.1.3-py3-none-win_amd64.whl
Size 516.4 kB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
060a002fadb225bc9256b505d8c69899c55ad41d646324ff869593c26e902c59
BLAKE2b-256 checksum
How to use checksums
f0e5e89655b5a6f177943ba1f214c4d8527d5ff9ce83dd76adc16019cb635a80
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 log

Release files / stillwright-0.1.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL stillwright-0.1.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 576.3 kB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
908692a7efd90aa48f56585481480086ec5f2c64608e23e12546ea5c6d2e9423
BLAKE2b-256 checksum
How to use checksums
5c84eee37e4cb34577bd3201734b8136b685d45025cdf6b4b26fe6463d8aaa48
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 log

Release files / stillwright-0.1.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL stillwright-0.1.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 541.4 kB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
d8e88eb6f81992fa6b7984c7dc85eb39628387ee189d539273f4d98d58a989e7
BLAKE2b-256 checksum
How to use checksums
3f116b9a1a36a79dad6866771d602d1cad9900b67a19399780cca98488d9c9ab
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 log

Release files / stillwright-0.1.3-py3-none-macosx_11_0_arm64.whl

Download URL stillwright-0.1.3-py3-none-macosx_11_0_arm64.whl
Size 523.8 kB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6f57ad4786e1fdd5be9700fb3c53a858f81413f1b3c4971511eeb5a08814edb8
BLAKE2b-256 checksum
How to use checksums
fb1de961e41cea1c11544b337356519e9a1c9d23359be4cbe4382933ca991d80
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 log

Release files / stillwright-0.1.3-py3-none-macosx_10_12_x86_64.whl

Download URL stillwright-0.1.3-py3-none-macosx_10_12_x86_64.whl
Size 559.0 kB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
94ec7a1f0ab1ef236df99bc157a1f5f6ab5d27e78433404613f31c77eab05674
BLAKE2b-256 checksum
How to use checksums
7d3abb7f56f1ea9c8242a5454a6ec9b98083c37f64c21cc3bc246a02c1f90fdc
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 log

Security for stillwright 0.1.3

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.

Select from 6 files

Attestation for stillwright-0.1.3.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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page