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 instructions/chriswu727/argus/agents-mdgit clone --depth 1 https://github.com/chriswu727/argusWhat 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.02825 | $0.02825 |
| Opus 5 | $0.01412 | $0.01412 |
| Sonnet 5 | $0.00565 | $0.00565 |
| Haiku 4.5 | $0.00282 | $0.00282 |
Grade A, and why
argus AGENTS.md 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 3d 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 — 201 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Argus — Agent Guide
This file is the short version of the README, aimed at an agent using Argus through MCP. Argus is a QA capability inside the host's current task; it does not replace the host agent's identity or authority.
Setup
# Web mode (works everywhere)
pip install argus-testing
playwright install chromium
# Screen mode (macOS only — to test native apps + browser chrome)
pip install 'argus-testing[mac]'
brew install cliclick
# Wire it into the MCP host
claude mcp add argus -- argus-mcp
argus-mcp --version # confirm host loaded the version you expect
argus-mcp --list-tools # show the selected profile and public tools
argus-mcp --doctor # macOS Screen Recording + Accessibility check
The default profile is core. Use --tool-profile screen for native
macOS review and --tool-profile full only when the broader network,
storage, tabs, crawl, and coordinate surface is needed. The
ARGUS_TOOL_PROFILE environment variable provides the same setting.
After pip install -U argus-testing, restart your MCP host so it picks
up the new tool table.
Using Argus within the host task
Use an evidence-first QA mindset while reviewing, but continue to follow the user's broader task. The short version:
- GOAL: Find bugs the dev team would be embarrassed to ship. Tight five-bug reports beat noisy fifty-bug ones.
- BOUNDARY: Do not infer permission for purchases, publication, or other irreversible external effects. Argus does not prevent in-scope diagnosis or implementation work the user requested.
- THE RITUAL (
start_sessionreturns it once;observekeeps its compact coverage ledger visible): Map → Use it (walk each goal end-to-end, carrying real state) → Hypothesize → Act → Observe → Verify → Record → Cover.
Tools you'll use most
Web mode
| Tool | Purpose |
|---|---|
start_session(url, review_mode=..., goals=[...], constraints=[...], time_budget_minutes=...) |
Launch Playwright, establish the review contract, and return the one-time QA protocol plus initial observation. The budget is advisory; 0 means none. |
observe() |
URL + interactive elements (description-keyed) + visible feedback + counts + ARIA + viewport state. Read this first, after every action. |
coverage_update(goal, status, evidence) |
Mark a goal in_progress before its journey to open a precise evidence window. exercised and blocked require an explanation and automatically link URLs, value-redacted actions, screenshots, checks, and findings; Argus never guesses semantic completion. |
click_what(description) |
Click the element matching description. Returns the top candidates if ambiguous — rephrase rather than guess. |
type_into(description, text) / select_into(description, value) |
Inputs and dropdowns by description. |
test_action(target, expect=...) |
Click + before/after diff in one call. Pass expect to PREDICT the outcome ({"count":{"label":"tasks","delta":1}}, {"gains":"Buy milk"}, {"removes":...}, {"text_present":...}, {"toast":...}, {"url_changed":true}) and Argus reports MATCH / SURPRISE — a surprise is a bug lead. Also shows CROSS-STACK: which requests the click fired (methods/statuses) and a CHECK nudge when a message appeared without a matching write. |
verify_persistence(expect, target_text, after_url) |
Forces a fresh GET; reports whether target_text is present / absent. The "Saved!" toast is not proof — this is. |
capsule_save(name, liveness_marker) / capsule_restore(name) |
Snapshot the logged-in/seeded state (cookies+storage) after minting it through the UI, then restore it later (with a mandatory live/stale re-check). Restore is a CLEAN replace, so save→branch A→restore→branch B runs two journeys from a byte-identical state for differential testing. |
regression_check() |
Re-test the findings journaled in prior runs against the CURRENT build: STILL-PRESENT / NO-LONGER-REPRODUCES / INCONCLUSIVE. "Did my fix land, did anything come back?" |
inspect_element(description) |
Computed styles + ARIA + outerHTML + truncation flag for interactive or visible non-interactive content. |
check_layout() |
Bounded viewport signals for horizontal overflow, clipped text, small targets, and fixed/sticky overlays. |
screenshot(name, element="", full_page=False) |
Full viewport, full page, or a tight crop; waits for finite CSS transitions, then returns the image plus its absolute evidence path. |
screenshot_diff(before, after) |
Pillow diff with red-tint overlay; returns the image plus its absolute evidence path. |
eval_js(code) |
Arbitrary JS in the page context. Off by default (argus-mcp --unsafe to enable). |
record_bug(title, severity, evidence, verify=...) |
Call this once you've confirmed a real bug. Verify text with (expect, target_text, at_url), or an HTTP failure with (expect_status, at_url); absent checks need the URL where the item should be. For a MULTI-STEP text bug add "replay": true to re-drive the recorded journey from a cold start. Severity: critical / high / medium / low / info. |
record_observation(title, evidence, category) |
Preserve qualitative visual, usability, content, responsive, or accessibility evidence without inflating it into a bug. |
get_errors() |
Drain captured console + network events. Events retain the page where they occurred; matching console/network symptoms attach to an existing root cause, while new causes are tagged "auto-captured / not independently verified". |
check_links() / check_performance() |
Probe-style helpers — return raw data, no auto-bug. |
crawl_site() |
Page discovery: crawls internal links, auto-capturing only console/network events (tagged). Walk the surfaced pages and record_bug what you confirm. |
end_session() |
Close session; write HTML, JSON, JUnit, and SARIF reports with separate tool-call and recorded-step counts. |
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.
- 3d ago First seen · 201 lines · 2,825 tokens per session scan A daa309e5dfa6
argus AGENTS.md is an instructions file published in the GitHub repository chriswu727/argus (2 stars, last pushed 24d ago), licensed MIT. It adds 2,825 tokens to every session, about $0.0141 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 instructions, from other repositories
playwright-fieldkit CLAUDE.md
Instructions for jpbaking/playwright-fieldkit, a project described as: Playwright FieldKit: gives coding agents hands and eyes on the web — crawl, debug, record, and test live sites via deterministic scripts; portable Agent Skill for Codex, Claude Code, Antigravity, and Cline.
playwright-mcp CLAUDE.md
Claude Code instructions for microsoft/playwright-mcp, covering commit convention, ... make changes .., summary, rolling playwright and preparing a release.
webqa-agent CLAUDE.md
Instructions for MigoXLab/webqa-agent, covering claude.md, 模块化规则引用, 研究和规划 (critical), 1. 使用 context7 mcp 工具 and 2. 使用联网搜索.
Argus CLAUDE.md
Instructions for ironclawdevs27/Argus, covering argus — project context for claude code, what this project is, skill reference, project structure and running the test harness.
claude-browser-test-skills CLAUDE.md
Instructions for Autodesk/claude-browser-test-skills, covering claude.md, what this repo is, layout, conventions when editing skills and validate before publishing.
sniff AGENTS.md
Instructions for Aboudjem/sniff, covering agents.md: sniff, what this repo is, how an agent should use sniff, handling the playwright setup gate and finding output schema.