Borrowing it
Nothing to install: this file belongs to cfpperche/picode. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/cfpperche/picode/main/.pi/skills/agent-browser/SKILL.mdgit clone --depth 1 https://github.com/cfpperche/picodeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/cfpperche/picode/agent-browser)<a href="https://agentmods.dev/skills/cfpperche/picode/agent-browser"><img src="https://agentmods.dev/badge/skills/cfpperche/picode/agent-browser/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/cfpperche/picode/agent-browser"><img src="https://agentmods.dev/badge/skills/cfpperche/picode/agent-browser.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00070 | $0.01207 |
| Opus 5.5 | $0.00028 | $0.00483 |
| Sonnet 5.5 | $0.00014 | $0.00241 |
| Haiku 4.5 | $0.00007 | $0.00121 |
Grade A, and why
agent-browser scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 87 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PiCode browser QA
Use the native agent_browser tool (not bash agent-browser). Load CLI
patterns only if needed: agent_browser args: ["skills", "get", "core"].
Start from a scratch instance, not production (ADR-0086)
scripts/qa-scratch.sh start <name> # builds this worktree with the UI embedded,
# isolated HOME/PICODE_DATA, free port, prints the URL
scripts/qa-scratch.sh seed <name> # a workspace, an agent and a terminal via the API
scripts/qa-scratch.sh stop <name>
start reports up only when this scratch's daemon answers on its port —
it wrote server.json for that port and is the listener — and seed refuses
any other instance. A healthy answer is not proof: on 2026-09-22 another
session's scratch took the port during the build, this daemon never bound,
and the old seed created a workspace, an agent and a terminal inside the
other session's instance. If start says the port is answered by someone
else, pick another port (start <name> <port>).
Production (~/.picode/server.json, usually :8445) is other agents' working
instance: never restart it, never pkill around it, and read it only when
the owner asks about a live report. It is HTTPS with a self-signed
certificate: AGENT_BROWSER_IGNORE_HTTPS_ERRORS=1; its /api/version and
/api/health answer empty without a browser session.
Before you say a UI task is done
- Console sweep:
evalJSON.stringify(window.__picodeOverlayAudit()).ok: falseis FAIL. - Screenshot +
readthe PNG (keep it invar/screenshots/). Eval alone is not a visual verdict. - Clickability: a real click on every primary control you touched. After
close, assert
getComputedStyle(el).display === "none". - Open/close cycles stay closed. State survives reload.
Rebuild or you are testing the old binary
UI is go:embed of internal/web/public/. qa-scratch.sh start builds;
after an edit, stop + start (or make web && go build -tags embedui
into the same path, then eval location.reload()).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago Changed · +8 lines 1ab10b3bd9fb
- 1mo ago Changed · +4 lines 9c0fd287ec3a
- 1mo ago First seen · 75 lines · 70 tokens per session scan A f161603e5172
agent-browser is a skill published in the GitHub repository cfpperche/picode (13 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 70 tokens to every session and 1,207 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-12.
Other skills, from other repositories
webapp-testing
Start/reuse a local app, wait for readiness, inspect rendered state/console/network, act from observed selectors, and verify with evidence.
verify
Exercise the real app/API/CLI and collect observable evidence; tests alone do not count as end-to-end verification.
verify-bb
Verify BB user journeys in an isolated source dev app using dev-browser@next and the matching source CLI. Use after BB feature changes or when asked to verify or smoke-test BB. The feature map covers core UI and agent interfaces, every repository plugin, desktop, mobile, and hosted services; select the affected…
create-verification-skill
Create a repo-local verification skill and exhaustive feature map for driving a real app through its UI, CLI, or API. Use for "create a verification skill", "make a verify skill for this repo", or "document how agents can verify this app".
maintain-verification-skill
Audit an existing verification skill and feature map against source and the running app, then repair proven documentation or harness drift. Use for "maintain the verification skill", "audit the verify skill", or "refresh the verification feature map".
qa
Browser-based QA verification. Launches a real browser, navigates the app, clicks buttons, fills forms, and tests user flows. Works as a standalone skill or as a phase end condition in campaigns. Requires Playwright (optional dependency, graceful skip if not installed).