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 skills add OctoPerf/octoperf-claude-plugins --skill octoperf-real-browser-probegit clone --depth 1 https://github.com/OctoPerf/octoperf-claude-pluginsWrote 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/octoperf/octoperf-claude-plugins/octoperf-real-browser-probe)<a href="https://agentmods.dev/skills/octoperf/octoperf-claude-plugins/octoperf-real-browser-probe"><img src="https://agentmods.dev/badge/skills/octoperf/octoperf-claude-plugins/octoperf-real-browser-probe/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/octoperf/octoperf-claude-plugins/octoperf-real-browser-probe"><img src="https://agentmods.dev/badge/skills/octoperf/octoperf-claude-plugins/octoperf-real-browser-probe.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.00170 | $0.04048 |
| Opus 5 | $0.00085 | $0.02024 |
| Sonnet 5 | $0.00034 | $0.00810 |
| Haiku 4.5 | $0.00017 | $0.00405 |
Grade A, and why
octoperf-real-browser-probe 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 12d 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 — 340 lines — stays where its author put it; the contents beside it link to each section on GitHub.
OctoPerf — Real-browser probe alongside JMeter load
The pattern
JMeter HTTP virtual users are great for server-side metrics (response time, throughput, error rate) but they don't reflect what a real user perceives: page load, JS execution, rendering, layout shifts, Core Web Vitals. A real-browser probe is a single Playwright VU that runs the same user journey through an actual Chromium during the load test — measuring UX while the JMeter pool keeps the server busy.
Commercial equivalents (the LLM will recognise these terms): NeoLoad RealBrowser User, LoadRunner TruClient, Gatling Browser User, k6 browser module, BlazeMeter Real Browser Users. The pattern is also known as synthetic browser probe or end-user experience monitoring during load test.
When this applies
The user has:
- A working OctoPerf JMeter Virtual User (validated clean) that they want to load-test.
- The need for user-perceived metrics during the test, not just server-side HTTP metrics — typically because the front-end is JS-heavy (SPA, React/Vue/Angular) and HTTP timings miss the client-side render cost.
- Optionally, an SLA framed around browser metrics (e.g. "TTFB < 200 ms AND LCP < 2.5 s under 50 concurrent users").
If the user just wants HTTP load (no UX measurement) → stick to
run_scenario on the JMeter VU. If the user wants only browser
testing without a load backdrop → just create the Playwright VU
without the JMeter one.
Steps
1. Decide: direct translation vs codegen capture
Read the source JMeter VU's action tree:
mcp__octoperf__get_virtual_user(virtualUserId)
Classify the flow:
| Flow shape | Path |
|---|---|
| Linear navigation + simple forms (≤ 20 HTTP actions) | Step 2 (direct translation) |
| Auth report items, OAuth popups, file uploads, iframe-heavy SPA, JS-driven canvas | Step 2-bis (playwright codegen) |
| Mixed: most simple, a few complex steps | Direct translation, leave // TODO codegen markers for the complex blocks |
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.
- 12d ago First seen · 340 lines · 170 tokens per session scan A 0bad91a92f10
octoperf-real-browser-probe is a skill published in the GitHub repository OctoPerf/octoperf-claude-plugins (0 stars, last pushed 5d ago), licensed Apache-2.0. It adds 170 tokens to every session and 4,048 once invoked, about $0.0009 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 skills, from other repositories
anti-detect-browser
Drive Chromium from standard Playwright APIs with a real-device fingerprint applied in the kernel, one persistent isolated profile per identity, and a per-profile proxy whose exit IP sets timezone and WebRTC - JavaScript (npm 'anti-detect-browser') or Python (PyPI 'antibrow'). Use when sessions must stay logged in…
tauri-mcp-cli
Use the Tauri MCP CLI to start and recover driver sessions, automate Tauri webviews, capture UI state, debug IPC, and work with mobile or remote devices. Use whenever an agent needs to operate a Tauri v2 app from terminal commands.
browser-mcp-agent
Give an AI agent its own real browser over MCP tool calls - launch, navigate, click, fill, screenshot, extract text, run JS - with a kernel-level real-device fingerprint and a persistent profile, so the session stays logged in between runs and pages see one coherent device instead of a headless build. No Playwright or…
multi-account-isolation
Verify that browser profiles are actually isolated from one another instead of assuming it - confirm each profile's timezone agrees with its own exit IP, that WebRTC exposes only the proxy, that canvas and WebGL hashes stay identical across relaunches of one profile, and that no two profiles share a persona, a cookie…
multi-account-scraping
Run the same scrape or task across many accounts at once - each in its own browser profile with its own fingerprint, cookies and exit IP - and read data from sites that need a session or that answer a plain HTTP scraper with a captcha while answering a real browser. One command per site returns JSON, so there are no…
vibesurfer
Agent-native headless browser. 26 primitives over a Unix-socket wire protocol. Real WKWebView (macOS), WebKitGTK 6 (Linux), or WebView2 (Windows) — all three engines verified per-commit by a real-browser integration suite. Optimistic concurrency via state tokens; tree-delta wire format; durable session/page/auth state…