Releases: Johnnyzlee/agent-bridge-for-tab-management-in-firefox
Release list
v0.5.10 — automated release
Automated release for v0.5.10: full check, AMO unlisted signing, and packaging ran in CI.
v0.5.9 — automated release
Automated release for v0.5.9: full check, AMO unlisted signing, and packaging ran in CI.
v0.5.8 — automated release
Automated release for v0.5.8: full check, AMO unlisted signing, and packaging ran in CI.
v0.5.7 — audible reporting, mute removed (AMO-signed)
v0.5.7 — audible reporting (AMO-signed)
list_firefox_tabsandget_active_firefox_tabnow report each tab'saudiblestate, so agents can tell the user which tabs are playing audio.- Removed
set_firefox_tab_muted: Firefox silently ignores programmatic mute without a user gesture, so the tool could never succeed (documented in v0.5.6).
25 tools total. Same Gecko ID, AMO unlisted signed. 127 tests pass.
v0.5.6 — Fix pin/unpin/duplicate dispatch + mute gesture error (AMO-signed)
v0.5.6 — Fix release (real-browser findings)
Two fixes found by live testing v0.5.5 against real Firefox:
pin_firefox_tab/unpin_firefox_tab/duplicate_firefox_tabreturnedINVALID_SELECTOR: the background dispatch passed the whole params object instead of the unwrapped selector. Fixed and covered by a dispatch-shape regression test.set_firefox_tab_mutedis silently ignored by Firefox without a user gesture — now returns a dedicatedMUTE_REQUIRES_USER_GESTUREerror with actionable guidance instead of a generic verification failure.
Live-verified in v0.5.5: event-driven wait_for_firefox_tab (instant on completion), get_active_firefox_tab, list_firefox_windows, open/close/restore.
128 tests pass. Same Gecko ID, AMO unlisted signed.
v0.5.5 — 26 tools incl. event-driven wait (AMO-signed)
v0.5.5 — 26 tools: pin, duplicate, mute, restore, batch ops, event-driven wait
New tools (26 total):
pin_firefox_tab/unpin_firefox_tab/duplicate_firefox_tab/set_firefox_tab_mutedrestore_firefox_tab(undo a close, viasessions) andget_active_firefox_tabmove_firefox_tab_to_window(bare cross-window move) andmove_firefox_tabs_to_group(batch, one verification)open_firefox_tabs_into_group— atomic batch open-and-group with rollbackwait_for_firefox_tab— event-driven: the extension pushestabs.onUpdatedload completions to the broker; waiting agents are answered instantly from cache or on arrivalset_firefox_tab_group_color
Full toolset: window management (list/new), tab lifecycle (open/close/duplicate/mute/pin/restore/move/get-active), groups (create/move/merge/rename/color/collapse/close/ungroup), batch operations, and event-driven waiting.
Extension signed via AMO unlisted channel (same Gecko ID; adds the sessions permission). 126 tests pass. Works alongside the official Firefox DevTools MCP — no feature overlap.
v0.5.4 — list_firefox_windows + new_firefox_window (AMO-signed)
v0.5.4 — Windows + new window tools
New tools (15 total):
list_firefox_windows— per-window tab/group counts with each group's title, collapsed state, and size; the target-picker for cross-window moves.new_firefox_window— create a background Firefox window (optionally with an explicit http(s) URL) and verify the window ID and first tab.
Full workflow now: open a new window → open links → create a group there → move tabs across windows with an explicit windowId.
Also ships scripts/upgrade.sh — agents can upgrade the whole stack on request (git pull → rebuild → restart Hermes → open the newest signed XPI).
Extension signed via AMO unlisted channel (same Gecko ID). 108 tests pass.
v0.5.2 — close/merge/rename/collapse + cross-window (AMO-signed)
v0.5.2 — Close, merge, rename, collapse + cross-window moves
New tools (13 total):
close_firefox_tabs— batch close by tabId, with existence checks and verification.close_firefox_tab_group— close a whole exact group and remove the empty group.merge_firefox_tab_groups— atomically move every tab of one exact group into another (cross-window supported), remove the empty source, verify every tab.move_firefox_tab_to_group— newwindowIdparameter for explicit cross-window moves viatabs.moveToWindow(still rejected without it).rename_firefox_tab_group— exact rename with duplicate-title rejection.set_firefox_tab_group_collapsed— verified collapse/expand.
Example:
Move every tab from the "Trading" group into "Investing".
Extension signed via AMO unlisted channel (same Gecko ID). 104 tests pass.
v0.5.1 — move_firefox_tab (AMO-signed)
v0.5.1 — Move tabs to a position
New move_firefox_tab tool: move one exactly identified tab to a target position in its own window — 0-based index, or -1 for the end. Index validation, out-of-range clamping, no-op detection, and post-move verification are all handled; ambiguous matches still fail safely.
Example:
Move the tab for "quarterly report" to the front of the window.
{ "selector": { "title": "quarterly report" }, "index": 0 }Extension unchanged otherwise (same Gecko ID, AMO unlisted signed). 8 MCP tools total.
v0.5.0 — Shared broker for multiple agents (AMO-signed)
v0.5.0 — Multiple agents, one Firefox connection
A shared broker multiplexes any number of MCP agents over the single Firefox connection. The first MCP server you start becomes the broker; every other instance connects to it automatically as an authenticated client. Claude Code, Hermes, OpenClaw, Codex, OpenCode, WorkBuddy — all can manage the same Firefox session at the same time. Your existing client configs don't change.
- Extension unchanged (same Gecko ID, signed via AMO unlisted channel).
- Agent port
127.0.0.1:8767(overrideFIREFOX_TABS_BRIDGE_BROKER_PORT). - Verified live: Hermes as broker + a second agent connected concurrently, both listing real Firefox tabs.