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.
git clone --depth 1 https://github.com/pochtmanr/argus-mcpWrote 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/rules/pochtmanr/argus-mcp/cursorrules)<a href="https://agentmods.dev/rules/pochtmanr/argus-mcp/cursorrules"><img src="https://agentmods.dev/badge/rules/pochtmanr/argus-mcp/cursorrules/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/rules/pochtmanr/argus-mcp/cursorrules"><img src="https://agentmods.dev/badge/rules/pochtmanr/argus-mcp/cursorrules.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.02511 | $0.02511 |
| Opus 5.5 | $0.01004 | $0.01004 |
| Sonnet 5.5 | $0.00502 | $0.00502 |
| Haiku 4.5 | $0.00251 | $0.00251 |
Grade A, and why
cursorrules 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 2mo 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 — 119 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Driving Argus from this project
Argus is an anti-detect browser. A profile is an isolated browser identity with its own fingerprint, proxy and cookie jar. This project can drive those profiles either as MCP tools or over plain HTTP.
Before anything works
- The Argus launcher must be open. The API starts with it and stops with it. A refused connection almost always means the launcher is closed, not that the address is wrong.
- Base URL is
http://127.0.0.1:39219. It listens on loopback, on this machine. Nothing off it can reach the API, and there is no hosted web API to point at instead. - Auth is
Authorization: Bearer <YOUR_API_KEY>. Keys are minted in the launcher's API tab and shown once — only a hash is stored, so a lost key is replaced rather than recovered. - The first call from a new client blocks. The launcher raises an approve-or-deny card and holds the request until a human answers. Do not treat the pause as a hang, and do not retry — a retry queues a second card.
Rules that save a wasted turn
- A 403 is not a missing profile and is not worth retrying. It means the key is scoped to folders that do not contain that profile, or it is trying to author an automation while folder-scoped. Automations are shared across every folder and have none of their own, so authoring one needs an unscoped key.
- Creating a profile is available; purging one is not.
argus_create_profilemints one — onlynameis required, and everything else takes the same defaults the app's own New Profile dialog uses. The asymmetry is at the other end:argus_delete_profileonly moves a profile to Trash, where the app can restore it and the on-disk browser data stays, and it never sendspermanent. An irreversible purge stays a human action in the app. - Datasets are on the API in full. Creating one, replacing its declared
columns, appending, updating and deleting rows, Trash and restore — all of it
has a tool. Read with
argus_query_rows(a list of{column, op, value}conditions, optionally aggregated) orargus_sample_rowsfor a page in insertion order; both are capped and paged, so plan on filtering rather than on pulling a dataset whole. Rows are indexed by column key, which never changes when a column is renamed — write against keys, not names. - A launched session carries the profile's own identity. Whatever the profile already holds comes with it, including its cookies, so a profile with a cookie set assigned opens already signed in. Do not send it anything the profile is not meant to have.
- Sharing is enforced and it refuses.
argus_assign_proxyis refused when the proxy would then be shared by more profiles than the user's limit allows, or when it would put two profiles for the same platform behind one exit; the refusal names the profiles already on it and the limit it was judged against. Repeating the call withacknowledgeSharing: trueproceeds anyway — shared egress is a threshold rather than a prohibition — but that flag is for after the user has been told and has agreed, not for getting past a refusal on your own. A cookie set is stricter and is not a setting at all: exactly one profile may hold it, because two profiles on one set is one account signed in twice.argus_launch_profileblocks on neither, but its reply carries awarningsarray when the profile is over a limit — say so rather than opening a batch silently, and callargus_sharing_reportfirst, which returns the whole picture in one call instead of one refusal at a time. - Proxy listings never return credentials. Do not plan around reading one back.
- The five page-driving tools need a profile that is already open. They
attach over CDP to a running profile; launch it first. Every one of them takes
profileId. - Finish what was delegated instead of asking for it back. "Create an account", "set one up", "make a few profiles" name no username, no display name and no profile name — those are yours to invent. Choose them, do the whole job, report what you chose, and offer to change it afterwards. Save a question for what genuinely blocks you and only the user can answer.
- Ask the page, not the person. Whether a signup needs an email
confirmation, a phone number or a captcha is answered by submitting the form
and reading what comes back — not by asking in advance. And reach a form by
navigating the site rather than guessing its URL:
/signup,/registerand/createuserare guesses, and on plenty of sites (Hacker News among them) the create-account form is a second form on the login page, told apart from the sign-in form by its fields rather than by its position.
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.
- 2mo ago Changed · +12 lines · +226 tokens per session 97dd19af78db
- 2mo ago First seen · 107 lines · 2,285 tokens per session scan A d7d4d24d2437
cursorrules is a cursor rule published in the GitHub repository pochtmanr/argus-mcp (0 stars, last pushed 1mo ago), licensed MIT. It adds 2,511 tokens to every session, about $0.0100 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-08-31.
Other cursor rules, from other repositories
webrtc
Choose ordered/reliable vs unreliable per use case deliberately. Set maxRetransmits or maxPacketLifeTime (never both) for partial reliability; leave both unset only when full reliability is actually required. State sync wants reliable; real-time telemetry wants unreliable. (W3C WebRTC — RTCDataChannel /…
chrome-extension-manifest-rules
Specific rules related to the Chrome extension manifest file, ensuring proper structure and content.
vasu-playwright-utils
../../templates/cursor-rules/vasu-playwright-utils.mdc.
vla-registry
Multi-model GUI/VL registry — browser wllama grounding (ShowUI-2B is default + E2E gate).
safari
This file, safari.mdc, serves as a repository for detailed working notes, observations, and learnings acquired during the process of automating Safari interactions, particularly for the MCP Inspector UI. It's intended to capture the nuances of trial-and-error, debugging steps, and insights into what worked, what…
scrapy
Cursor rule "scrapy" from Solihatun1/AI-Cursor-Scraping-Assistant, covering scrapy best practices, 1. code organization and structure, 1.1. directory structure, 1.2. file naming conventions and 1.3. module organization.