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 olehsvyrydov/AI-development-team --skill browser-extension-developergit clone --depth 1 https://github.com/olehsvyrydov/AI-development-teamWrote 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/olehsvyrydov/ai-development-team/browser-extension-developer)<a href="https://agentmods.dev/skills/olehsvyrydov/ai-development-team/browser-extension-developer"><img src="https://agentmods.dev/badge/skills/olehsvyrydov/ai-development-team/browser-extension-developer/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/olehsvyrydov/ai-development-team/browser-extension-developer"><img src="https://agentmods.dev/badge/skills/olehsvyrydov/ai-development-team/browser-extension-developer.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.00172 | $0.02809 |
| Opus 5.5 | $0.00069 | $0.01124 |
| Sonnet 5.5 | $0.00034 | $0.00562 |
| Haiku 4.5 | $0.00017 | $0.00281 |
Grade A, and why
browser-extension-developer 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 today.
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 — 162 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Browser Extension Developer (/ext)
Command: /ext · Category: Development · Aliases: /chrome
Gate Check (workflow)
Consult the workflow-engine skill first.
- A manifest permission change is an
ARCH_APPROVED+SECURITY_OKtrigger. Every entry inpermissionsandhost_permissionswidens the install prompt and the store review, and a permission is far easier to add than to take back once users have granted it. - Anything that reads page content or sends it off-device is a
SECURITY_OKtrigger — a content script sees the user's authenticated session, including pages the extension's author never anticipated. - On review: confirm the extension still works after the service worker is evicted, that no message path depends on the popup staying open, and that no injected string is built from page data.
When to use (and when not)
- Use for: manifest authoring, service-worker architecture, content scripts and injection, the permissions model, tabs/windows/tab groups/side panel, storage tiers, native messaging, declarativeNetRequest, long-running in-browser work, extension build pipelines and store review.
- Hand off instead when: the work is ordinary web UI inside the extension's own pages and the extension platform is not the difficulty → /fe; driving a browser from outside to test a site → /e2e; the extension talks to a service you also own → /be for that side; threat modelling a capability the extension is about to acquire → /secops.
The MV3 mental model (read this before writing anything)
Four facts explain most MV3 bugs. Internalise them and the rest of the platform is ordinary JavaScript.
- The service worker is not a background page. It is evicted after ~30 seconds idle and has a
hard lifetime even while busy. It has no DOM, no
window, and no memory between wakes. Any variable you set in it is gone the next time it runs. Never put a long-running job there. - Only a top-level listener registration survives eviction.
chrome.tabs.onRemoved.addListenerat module scope wakes the worker when a tab closes. The same call made inside a message handler dies with the worker and silently never fires again. Everything the worker must remember between wakes belongs inchrome.storage.session. - The popup is a page, and it closes. Clicking anywhere outside it tears down its JavaScript and
every port it opened. Work started in a popup dies with it; a message it sends while calling
window.close()in the same breath is dropped if the worker was cold. Anything that takes longer than an instant belongs on a surface that outlives the click. - A content script runs in an isolated world. It shares the DOM with the page and shares nothing
else — not
windowproperties, not the page's own libraries. It also runs with the user's authenticated session, which is exactly why it is the security-sensitive part.
What ships with it
7 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- today First seen · 162 lines · 172 tokens per session scan A 63695efff28b
browser-extension-developer is a skill published in the GitHub repository olehsvyrydov/AI-development-team (17 stars, last pushed today), licensed MIT. It adds 172 tokens to every session and 2,809 once invoked, about $0.0007 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-10-19.
Other skills, from other repositories
browser
Interactive browser automation via playwright-cli. Use when you need to navigate a site, click elements, fill forms, take snapshots, or triage a live app.
blocked-page-recovery
Use when a fetch fails: 403/429, paywall, WAF, bot wall.
chrome-browser
Read this skill before the first step that uses Claude in Chrome, the browser extension whose tools are named mcpclaude-in-chrome (also called Chrome, the browser extension, or the external browser) and which acts in the person's real Chrome with their own sign-ins; before those tools are turned on there may be a…
claude-in-chrome
Automates your Chrome browser to interact with web pages - clicking elements, filling forms, capturing screenshots, reading console logs, and navigating sites. Opens pages in new tabs within your existing Chrome session. Requires site-level permissions before executing (configured in the extension).
hive.slack-notifications-setup
Set up a Slack notification channel (Sentinel) for a colony by driving the browser — reuse or create the "Hive Sentinel" Slack app from a JSON manifest, install it, capture the bot + app tokens, create/select the channel via the Slack API, and turn Sentinel on so the colony can ping the user on Slack and accept…
stealth-browser-mcp
Use this skill when operating stealth-browser-mcp from an AI agent or MCP client for browser automation, page inspection, element interaction, screenshots, file uploads, CDP commands, network debugging, cookies/storage, stealth setup, or reliable multi-step browser workflows. It provides the correct tool order, state…