Browser Tabs

Switch to any open tab of Chrome, Safari or Firefox

palupdated 2026-10-27ProductivityComes with pal

Open in pal

Comes with pal, so a new install already has it; the button finds it in pal again if you removed it. This page can't see what your pal has installed.

Browser Tabs: The tabs of two browsers in their own order, the host as the subtitle, where each is and playing or muted on the right
The tabs of two browsers in their own order, the host as the subtitle, where each is and playing or muted on the right
Browser Tabs: The Audible filter: only the tabs a page reports as playing sound, across windows
The Audible filter: only the tabs a page reports as playing sound, across windows
Browser Tabs: Focus, Copy URL, Mute, Copy as markdown link, and Close last
Focus, Copy URL, Mute, Copy as markdown link, and Close last
Browser Tabs: Live: tab titles are root results, so part of one typed at the root finds the tab
Live: tab titles are root results, so part of one typed at the root finds the tab
Browser Tabs: A tab's details (cmd+i): its browser and window, playing, the address
A tab's details (cmd+i): its browser and window, playing, the address
1 of 5

What it does

Every tab open in your browsers, with its favicon: enter switches to it, and you can close, mute or copy it from the list.

  • Tabs from Chrome, Safari and Firefox, and any Chromium browser with remote debugging on
  • Tab titles show up in the main search, so typing a page's name finds it
  • While a browser is in front, its tabs come first in the main search
  • Filters for All, Playing sound and This window
  • Close (cmd+w), mute (cmd+m), copy the address (cmd+c) or a markdown link (cmd+shift+c)
  • With Apple TV installed, a YouTube video plays on the TV (cmd+t), from where the tab is once it has started
  • Firefox tabs can be listed and focused, but not closed or muted

Palettes 1

  • Browser Tabstabslive

    Open tabs across Chrome, Safari and Firefox.

    • ↵Switch to the tab
    • ⌘TPlay a YouTube video on the Apple TV, from where it is
    • ⌘WClose the tab
    • ⌘MMute or unmute the tab
    • ⌘CCopy the URL
    • ⌘⇧CCopy as a markdown link
    • ⇥All, Audible, This window

Actions

  • FocusSelects the tab in the browser, then raises its window; for Firefox only the window.↵
  • Play on Apple TVA YouTube video, with Apple TV installed: from where the tab is once it has started (from the start on cmd+shift+t). The tab pauses as the TV takes over.⌘T
  • Copy URL⌘C
  • Mute / UnmuteDevTools tabs only: the page's media elements, not Chrome's tab mute.⌘M
  • Copy as markdown link[title](url).⌘⇧C
  • CloseNot for Firefox.⌘W

Settings

Extension, [extensions.browser-tabs]

port
9222 number

The --remote-debugging-port of a Chromium browser (Chrome, Brave, Edge, Chromium). When something listens there its tabs come over the DevTools protocol, with playing and muted state; otherwise the browsers below are asked.

apps
SafariGoogle Chrome list

macOS only: browsers asked over AppleScript when they are running, by app name. A Chromium browser already on the DevTools port is skipped.

firefox
On boolean

Read-only: Firefox has no scripting interface, so Focus only raises its window.

firefox_session
empty path

A sessionstore-backups/recovery.jsonlz4; empty finds the most recent profile's.

Defaults shown. Change them in pal's settings window or in the config file.

The README

Everything Browser Tabs does, key by key, from the extension's own README.md

Browser Tabs

Every open tab of your browsers, in the browsers' own order, never ranked. A live palette: listed again on every show, so tab titles are root results and typing part of one at the root finds it. Enter selects the tab in its browser and raises the window.

While a browser is the app in front (Chrome, Chromium, Brave, Edge, Vivaldi, Arc, Safari, Firefox: the manifest's front), tabs that have the typed word come first at the root, ahead of anything else, an exact name included. A tab that only collects the letters does not, so the root still answers what no tab has. Settings' "App in front" switch, on the palette, turns it off.

The row is the tab's title (the url without its scheme when there is none), the host is the subtitle, the favicon comes from the url; a tab without a web url (chrome://settings) gets the browser's icon. On the right: where it is in one run (the browser's name when more than one is listed, window N when the browser has more than one window), and playing (green) or muted for a tab the DevTools protocol could ask. The url, the host and the browser's name are keywords. cmd+i shows the browser and window over the title, sound as a chip, and the address.

Sources

Three are merged:

source how
DevTools protocol a Chromium browser (Chrome, Chromium, Brave, Edge, Vivaldi, Arc) started with --remote-debugging-port=<port>: the tab list from http://127.0.0.1:<port>/json, then one WebSocket asking every page whether a media element is playing and whether it is muted, and which window it is in
AppleScript (macOS) the browsers in apps that are running, over one osascript run (JavaScript for Automation): Safari, and Chrome when nothing on the port already covers it. No playing or muted state this way
Firefox its session file (sessionstore-backups/recovery.jsonlz4, the newest profile's, LZ4-decoded in the extension). Read-only: its tabs list, and Focus can only raise its window

Chrome 136 and later ignore the port flag on the default profile: it needs --user-data-dir too.

The filter dropdown (Tab cycles it):

filter rows
All everything
Audible tabs a page reports as playing sound unmuted (DevTools tabs only)
This window the front window of each browser

Keyboard

keys action
enter Focus: selects the tab in the browser, then hides and raises the browser window; for Firefox, "Focus window" raises its window only
cmd+c Copy URL
cmd+m Mute / Unmute: DevTools tabs only, sets muted on every media element in the page
cmd+shift+c Copy as markdown link: [title](url)
cmd+w Close the tab, last in the panel since it is destructive; not for Firefox
tab Cycle All, Audible, This window

Close and mute keep the palette open and list again. A focus, close or mute that fails keeps the panel open with a toast carrying the reason.

Setup

For the richest listing, start your Chromium browser with --remote-debugging-port=9222 --user-data-dir=<dir>; without it, Safari and Chrome are asked over AppleScript on macOS and Firefox is read from its session file.

The first AppleScript run asks whether pal may control Safari (and Chrome); a refusal makes every later run fail, which the palette shows as one row, "Automation permission needed", whose action opens Privacy & Security, Automation. Raising the browser window needs Accessibility, like the Windows palette.

Settings, [extensions.browser-tabs]:

key type default what
port number 9222 The --remote-debugging-port to look at.
apps list ["Safari", "Google Chrome"] macOS: browsers asked over AppleScript when running, by app name. A Chromium browser already on the port is skipped.
firefox bool true List Firefox tabs from its session file.
firefox_session path `` A recovery.jsonlz4 to read; empty finds the most recently written profile's.

What it does not do

  • Close or mute a Firefox tab, or select one: Firefox has no scripting interface, so its tabs are read-only.
  • Playing and muted state for AppleScript tabs: only the DevTools protocol can ask the page.
  • Open a new tab or a url: use Quicklinks or Bookmarks for that.
  • Nothing on the port, no scriptable browser running and no Firefox session is one row saying so.

Platforms

macOS: all three sources. Linux: the DevTools protocol and Firefox only, since there is no AppleScript.