The extension covers agent / chatbot red-teaming. For MCP servers, use the CLI or MCP server.
What it does
- Auto-detects the chat widget on any page (custom UIs, Intercom, Zendesk, Drift, Salesforce, etc.)
- Types attack prompts into the chat as if you were typing them, and watches the responses
- Judges each response with an LLM and scores it pass / fail
- Generates a self-contained HTML report you can download and share
Install
Add to your browser
Open the OPFOR listing on the Chrome Web Store and click Add to Chrome. Works in any Chromium browser (Chrome, Edge, Brave, Arc).
Development install (from source)
Development install (from source)
For contributors or testing unreleased changes:Then open
chrome://extensions, enable Developer mode, click Load unpacked, and select the runners/extension/ folder.Configure your LLM
The extension uses a single LLM configuration for attack generation, judging, and HTML parsing. It’s stored inchrome.storage.local on your machine.
| Setting | Description |
|---|---|
| Provider | OpenAI, Anthropic, Google, Groq, DeepSeek, Azure, or Custom (OpenAI-compatible) |
| Model | Model name — pick a common one or type your own |
| API Key | Your key for the selected provider |
Run a scan
Launch opfor
Click the OPFOR icon, then pick a Security Suite (e.g. OWASP LLM Top 10) or choose Custom Evaluators to select individual tests.
What it tests
Same agent catalog as the CLI — full evaluator and suite reference.
Limitations
- Chat-widget targets only. It needs a detectable chat input + response area in the DOM. For standalone API endpoints or non-chat agents, use the CLI.
- No MCP or live tool-call evaluators. The judge sees the transcript, not real tool side-effects. For MCP servers use the CLI’s
mcpmode or the MCP server. - One agent per run — no inter-agent tests.
- Vendor closed shadow-DOM widgets (Salesforce, some Intercom builds) may need a vendor-specific fallback. Open an issue with a sample URL if auto-detect fails.
- No pause / resume across sessions — run state lives in
chrome.storage.local; uninstalling wipes it.
Privacy
- API keys live in
chrome.storage.localand never leave your browser. There is no opfor-hosted backend. - Attack prompts and target responses go only to the LLM providers you configure — the same data path as running the CLI on your own machine.
- The extension does not phone home.
