{
  "name": "browser-tabs",
  "kind": "bundled",
  "title": "Browser Tabs",
  "description": "Every open tab of your browsers with its favicon. Enter switches to it; close, mute and copy from the action panel.",
  "version": "0.1.0",
  "icon": "◍",
  "author": "pal",
  "spec": "github:zcag/pal/extensions/browser-tabs",
  "source": "https://github.com/zcag/pal/tree/HEAD/extensions/browser-tabs",
  "commit": "a84c75d8e1ff65aae49fd8acc1cf888a84c8a465",
  "manifest": {
    "name": "browser-tabs",
    "title": "Browser Tabs",
    "description": "Every open tab of your browsers with its favicon. Enter switches to it; close, mute and copy from the action panel.",
    "version": "0.1.0",
    "icon": "◍",
    "author": "pal",
    "repo": "bundled",
    "license": "MIT",
    "settings": [
      {
        "kind": "number",
        "id": "port",
        "label": "DevTools port",
        "description": "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.",
        "min": 1,
        "max": 65535,
        "default": 9222
      },
      {
        "kind": "list",
        "id": "apps",
        "label": "Scriptable browsers",
        "description": "macOS only: browsers asked over AppleScript when they are running, by app name. A Chromium browser already on the DevTools port is skipped.",
        "placeholder": "Safari",
        "default": [
          "Safari",
          "Google Chrome"
        ]
      },
      {
        "kind": "boolean",
        "id": "firefox",
        "label": "Firefox",
        "text": "List Firefox tabs from its session file",
        "description": "Read-only: Firefox has no scripting interface, so Focus only raises its window.",
        "default": true
      },
      {
        "kind": "path",
        "id": "firefox_session",
        "label": "Firefox session file",
        "description": "A sessionstore-backups/recovery.jsonlz4; empty finds the most recent profile's.",
        "pick": "file",
        "default": ""
      }
    ],
    "store": {
      "tagline": "Switch to any open tab of Chrome, Safari or Firefox",
      "category": "productivity",
      "features": [
        "A Chromium browser started with `--remote-debugging-port=9222` lists over the DevTools protocol, with `playing` and `muted` tags",
        "Safari and Chrome over one AppleScript run on macOS, so a Chrome without the port still lists",
        "Firefox's tabs from its session file, read-only: they list, and Focus raises its window",
        "Live: listed again on every show, so tab titles are root results; the url, the host and the browser are keywords",
        "Filters: All, Audible (what is playing sound), This window",
        "Close (`cmd+w`), Mute (`cmd+m`, the page's media elements), Copy URL (`cmd+c`), Copy as markdown link (`cmd+shift+c`)"
      ],
      "permissions": [
        "automation",
        "accessibility"
      ],
      "platforms": [
        "macos",
        "linux"
      ],
      "screenshots": [
        {
          "file": "1-list.png",
          "caption": "The tabs of two browsers in their own order, the host as the subtitle, playing and muted tagged"
        },
        {
          "file": "2-audible.png",
          "caption": "The Audible filter: only the tabs a page reports as playing sound"
        },
        {
          "file": "3-actions.png",
          "caption": "Focus, Copy URL, Mute, Copy as markdown link, and Close last"
        },
        {
          "file": "4-root.png",
          "caption": "Live: tab titles are root results, so part of one typed at the root finds it"
        }
      ],
      "actions": [
        {
          "title": "Focus",
          "description": "Selects the tab in the browser, then raises its window; for Firefox only the window.",
          "keys": "enter"
        },
        {
          "title": "Copy URL",
          "keys": "cmd+c"
        },
        {
          "title": "Mute / Unmute",
          "description": "DevTools tabs only: the page's media elements, not Chrome's tab mute.",
          "keys": "cmd+m"
        },
        {
          "title": "Copy as markdown link",
          "description": "[title](url).",
          "keys": "cmd+shift+c"
        },
        {
          "title": "Close",
          "description": "Not for Firefox.",
          "keys": "cmd+w"
        }
      ]
    },
    "palettes": {
      "tabs": {
        "tier": "primary",
        "kind": "live",
        "description": "Open tabs across Chrome, Safari and Firefox.",
        "keys": [
          {
            "keys": "enter",
            "title": "Switch to the tab"
          },
          {
            "keys": "cmd+w",
            "title": "Close the tab"
          },
          {
            "keys": "cmd+m",
            "title": "Mute or unmute the tab"
          },
          {
            "keys": "cmd+c",
            "title": "Copy the URL"
          },
          {
            "keys": "cmd+shift+c",
            "title": "Copy as a markdown link"
          },
          {
            "keys": "tab",
            "title": "All, Audible, This window"
          }
        ]
      }
    }
  },
  "updated_at": "2026-09-16T16:45:33Z",
  "url": "https://pal.cagdas.io/extensions/browser-tabs",
  "tagline": "Switch to any open tab of Chrome, Safari or Firefox",
  "category": "productivity",
  "screenshots": [
    "https://pal.cagdas.io/extensions/browser-tabs/screenshots/1-list.png",
    "https://pal.cagdas.io/extensions/browser-tabs/screenshots/2-audible.png",
    "https://pal.cagdas.io/extensions/browser-tabs/screenshots/3-actions.png",
    "https://pal.cagdas.io/extensions/browser-tabs/screenshots/4-root.png"
  ],
  "panel_screenshots": [
    "https://pal.cagdas.io/extensions/browser-tabs/screenshots/1-list.png",
    "https://pal.cagdas.io/extensions/browser-tabs/screenshots/2-audible.png",
    "https://pal.cagdas.io/extensions/browser-tabs/screenshots/3-actions.png",
    "https://pal.cagdas.io/extensions/browser-tabs/screenshots/4-root.png"
  ],
  "bar_screenshots": [],
  "has_bar": false,
  "bar_items": [],
  "has_readme": true
}
