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 rules/pochtmanr/argus-mcp/cursorrulesgit clone --depth 1 https://github.com/pochtmanr/argus-mcpWhat 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.02285 | $0.02285 |
| Opus 5 | $0.01143 | $0.01143 |
| Sonnet 5 | $0.00457 | $0.00457 |
| Haiku 4.5 | $0.00229 | $0.00229 |
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 2d 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 — 107 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.
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.
- 2d 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 4d ago), licensed MIT. It adds 2,285 tokens to every session, about $0.0114 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 cursor rules, from other repositories
webdriver-management
Selenium WebDriver lifecycle management — driver factory, explicit waits, browser options, and teardown.
vasu-playwright-utils
../../templates/cursor-rules/vasu-playwright-utils.mdc.
dev-browser
Fallback browser automation with persistent Chrome state. Use only when Browser Use is unavailable or blocked.
website-analysis
description: This rule provides a step by step guide to analyze a website and its code, in order to write a better Scrapy scraper. globs: /.py.
vision-memory-mcp
This project utilizes vision-memory-mcp to cache visual states, record layout transitions, provide element grounding, and avoid repetitive LLM vision calls.
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…