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 Johnnyzlee/agent-bridge-for-tab-management-in-firefox --skill firefox-tab-managergit clone --depth 1 https://github.com/Johnnyzlee/agent-bridge-for-tab-management-in-firefoxWrote 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/johnnyzlee/agent-bridge-for-tab-management-in-firefox/firefox-tab-manager)<a href="https://agentmods.dev/skills/johnnyzlee/agent-bridge-for-tab-management-in-firefox/firefox-tab-manager"><img src="https://agentmods.dev/badge/skills/johnnyzlee/agent-bridge-for-tab-management-in-firefox/firefox-tab-manager/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/johnnyzlee/agent-bridge-for-tab-management-in-firefox/firefox-tab-manager"><img src="https://agentmods.dev/badge/skills/johnnyzlee/agent-bridge-for-tab-management-in-firefox/firefox-tab-manager.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.00087 | $0.01777 |
| Opus 5 | $0.00044 | $0.00889 |
| Sonnet 5 | $0.00017 | $0.00355 |
| Haiku 4.5 | $0.00009 | $0.00178 |
Grade A, and why
firefox-tab-manager 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 11d 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 — 101 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Firefox Tab Manager
Operate the user's live Firefox tabs and native tab groups through the firefox-tabs MCP tools. The bridge is authenticated and local; treat only post-operation verified results as success.
When to use this skill
Use these tools whenever the request involves Firefox tabs or tab groups: opening pages, grouping links for later reading, reorganizing groups, finding a specific tab, or reporting what is open. Prefer them over coordinate-based or screenshot-driven browser automation.
Ground rules
- Exact identity first. Select tabs by
tabIdwhen you have it (fromlist_firefox_tabs,open_firefox_tab, orget_active_firefox_tab). Otherwise use the complete URL or complete title. Never guess between multiple matches — the tools reject ambiguity; so should you. - Verify before reporting. Every write tool reads Firefox state back. Report only the verified
tabId,windowId,groupId, and titles from the tool result. Never claim success without it. - Never fabricate. Do not invent tab IDs, group titles, or window IDs. Discover them first.
- Confirm destructive actions. Closing tabs/groups, unpinning, and muting are user-visible changes. Confirm before acting when the user's intent is not explicit.
Opening pages and waiting for load
- Check
get_firefox_bridge_statuswhen connection state is unknown. - Open a single page:
open_firefox_tabwith the explicithttp:///https://URL. Keepactive: falseunless the user asks to focus it. - Open a new window:
new_firefox_window(optionally with a URL); it returns the verifiedwindowIdand first tab. - Open a batch into one group:
open_firefox_tabs_into_groupwithurls+groupTitle. It creates the group only if missing and rolls back opened tabs on failure. - When the user needs to interact with the page right away, call
wait_for_firefox_tabwith the returnedtabId; it returns instantly once the extension's load-completion event arrives (or times out withTAB_LOAD_TIMEOUT).
What ships with it
1 file 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.
- 11d ago First seen · 101 lines · 87 tokens per session scan A ce27cc3e19eb
firefox-tab-manager is a skill published in the GitHub repository Johnnyzlee/agent-bridge-for-tab-management-in-firefox (0 stars, last pushed 25d ago), licensed MPL-2.0. It adds 87 tokens to every session and 1,777 once invoked, about $0.0004 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
Browser Extension Testing
Testing browser extensions including content script injection, background worker testing, popup UI testing, storage API testing, and cross-browser compatibility.
playwright-cli
Automate browser interactions, test web pages and work with Playwright tests.
playwright-component-testing
Set up component testing with Playwright using a story gallery — scaffold stories and a gallery dev page driven by the built-in mount fixture, no dedicated component-testing runtime. Use when asked to test React or Vue components in isolation with Playwright, or to migrate off @playwright/experimental-ct-react / -vue.
chrome-extension
Use when building or shipping a Manifest V3 browser extension and hitting its quirks — service worker dying and losing state, permission warnings, a Chrome Web Store rejection, content-script/worker/popup messaging, or an MV2-to-V3 migration. NOT a generic web app (that is nextjs), NOT a desktop shell (that is…
codexless-browser-repair
Diagnose and temporarily repair Codexless Browser compatibility after a Codex, Chrome Skill, or Browser runtime update when Codexless Browser stopped working. Use for current-version Codexless Browser compatibility drift, not ordinary website bugs, general Browser operation, Codexless install/update work, or long-term…
extension-dev
Detect Chrome extension framework/stack, find proper docs, implement features, and debug across service worker, content script, and popup contexts.