Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/devzonayed/mochi/qagit clone --depth 1 https://github.com/DevZonayed/MochiWhat 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 | $0.00049 | $0.01911 |
| Opus 5 | $0.00024 | $0.00955 |
| Sonnet 5 | $0.00010 | $0.00382 |
| Haiku 4.5 | $0.00005 | $0.00191 |
Grade A, and why
qa 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 yesterday.
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 — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Mode select
Inspect $ARGUMENTS and pick ONE mode:
- EXHAUSTIVE mode — choose this when
$ARGUMENTSbegins withexhaustive, contains--exhaustive, or contains intent phrases like "test everything", "click every button", "make everything dynamic / nothing static", or "exhaustive QA". Follow the Exhaustive QA mode section below. - Single-dispatch mode (default) — everything else. Follow the Single dispatch section below.
Single dispatch
Dispatch the qa-tester subagent with the user's task: $ARGUMENTS
Use the Task (Agent) tool with subagent_type: "qa-tester" and pass the user's task verbatim as the prompt. If the task is clearly ambiguous (no clean pass/fail outcome) explain why and ask the user to clarify before dispatching.
After the subagent returns its verdict, surface a short summary to the user:
- On
pass: "✓ Task passed via playbook<id>(run<id>). Evidence: <screenshots/network summary>." - On
fail: "✗ Task failed:<reason>. Evidence: <…>. Suggest re-running with adjusted inputs." - On
blocked: "Cannot run as-is:<reason>. Need: ."
Exhaustive QA mode
GOAL: verify EVERY actionable control on the target app — not "the page renders", but "each control was exercised and we observed what it did". The five verdicts you assign each control are WORKS, NO-OP (defect), ERROR (defect), NAVIGATES, DISABLED. Render != Works. A clickable control that does nothing is a NO-OP — a defect, not a pass.
Pick a short <app> slug (e.g. the host/feature, used for the ledger) and the base URL from $ARGUMENTS. Then run this coverage-driven loop. You MAY parallelize by spawning the qa-tester subagent per (role × route) and merging the partial coverage matrices each returns; but the honesty gate below is run ONCE at the end over the merged ledger.
1. PRE-FLIGHT — confirm you are testing the right build
browser_navigate { url, hardReload: true }— cache-bypass load so you are not testing a stale bundle.browser_page_assets { hash: true }— capture the LIVE bundle hash(es). If you know the built hash, confirm live == built (stale-bundle guard). Note:browser_emulate_viewportchanges JS layout (window.innerWidth/matchMediavia CDP device metrics);browser_window_resizeonly moves the OS window and does NOT affect JS layout — usebrowser_emulate_viewportfor breakpoint coverage.browser_assert_no_errors { sinceNavigation: true }immediately after load. Treat any pre-existing console buffer as UNTRUSTED —sinceNavigation:truescopes to the current page so you do not get a false "no errors" from stale buffers.
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.
- yesterday First seen · 92 lines · 49 tokens per session scan A dc3a9be40031
qa is a command published in the GitHub repository DevZonayed/Mochi (3 stars, last pushed 15d ago), licensed MIT. It adds 49 tokens to every session and 1,911 once invoked, about $0.0002 per session on Opus 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-08-31.
Other commands, from other repositories
toon
A lightweight data format designed to minimize token usage when passing structured data to LLMs.
browse
You have access to a browser via the MCP Browser Bridge tools. Use them to interact with web pages.
computer
Control the macOS desktop — move mouse, click, type, press keys, scroll, drag, take screenshots, list windows/displays, clipboard. Uses usecomputer CLI for native Quartz event automation.
autoresearch
Autonomous research loop — iteratively edit, test, measure, keep/discard. Usage: /autoresearch [--budget 5m] [--provider ark].
gitlab-scrum
GitLab Scrum management - create/manage issues, labels, milestones, and boards. Use when user says: create issue, list issues, move issue, add label, scrum, kanban, backlog, or task tracking.
web-setup
Guide users through Chrome extension setup for browser control. Use when user asks about setup, installing the extension, connecting Chrome, or when browsercontrol tools return 'No browser connected'.