tabbit-devtools
Use Tabbit with agent-browser by reading Tabbit's live DevToolsActivePort file, deriving the browser wsEndpoint, and routing browser actions through agent-browser --cdp.
Works with
Agent Skills format with YAML frontmatter. Claude Code reads it as-is.
--- name: "tabbit-devtools" description: "Use Tabbit with agent-browser by reading Tabbit's live DevToolsActivePort file, deriving the browser wsEndpoint, and routing browser actions through agent-browser --cdp." license: "MIT" --- # Tabbit Devtools Prefer this skill whenever the request is explicitly about Tabbit or includes phrases like `用我的 tabbit 浏览器`, `在 Tabbit 里`, `Tabbit 当前页`, or `Tabbit 当前标签`. Treat Tabbit as a Chromium-based browser. This skill is about how to connect `agent-browser` to Tabbit. After the connection is established, handle browser automation and inspection through the normal `agent-browser` workflow. Do not implement a parallel browser automation layer, bridge daemon, or custom CDP client inside this skill. ## agent-browser Quick Reference Treat `agent-browser` as the browser-operation layer after Tabbit endpoint discovery. The most relevant commands for this skill are: - `open <url>` - `snapshot -i` - `click @e3` - `fill @e5 <text>` - `press Enter` Do not restate a full `agent-browser` manual here. Use these commands as the default vocabulary for Tabbit tasks, and prefer the official README for any broader command surface. ## Quick Path 1. Detect the platform and search for `DevToolsActivePort`: - macOS: `~/Library/Application Support/Tabbit/DevToolsActivePort` first, then `~/Library/Application Support/Tabbit Browser/DevToolsActivePort` - Windows: `%LOCALAPPDATA%\Tabbit Browser\User Data\DevToolsActivePort` first, then `%APPDATA%\Tabbit\User Data\DevToolsActivePort` 2. Use both lines in that file: - line 1: TCP port - line 2: browser path such as `/devtools/browser/<id>` 3. Build the full browser endpoint as `ws://127.0.0.1:<port><path>`. 4. Prefer that `wsEndpoint` over `http://127.0.0.1:<port>`. Tabbit may expose the browser WebSocket while `/json/version` and `/json/list` still return `404`. 5. Prefer [scripts/run_agent_browser_on_tabbit.py](scripts/run_agent_browser_on_tabbit.py) for actual browser actions. It injects the live `wsEndpoint` into `agent-browser --cdp ...`. 6. Use [scripts/discover_tabbit_cdp.py](scripts/discover_tabbit_cdp.py) when you only need structured connection facts. 7. Once connected, use the full normal `agent-browser` workflow for page operations. ## Workflow 1. For Tabbit requests, start by reading `DevToolsActivePort` directly or by running [scripts/discover_tabbit_cdp.py](scripts/discover_tabbit_cdp.py). 2. Return the connection facts the agent actually needs: `activePortFile`, `port`, `browserPath`, `browserUrl`, and `wsEndpoint`. 3. Unless the user explicitly asks only for endpoint details, prefer [scripts/run_agent_browser_on_tabbit.py](scripts/run_agent_browser_on_tabbit.py) immediately so the command becomes `agent-browser --cdp <wsEndpoint> ...`. 4. After that handoff, follow the normal `agent-browser` workflow for open, snapshot, click, fill, and other browser commands. 5. If `agent-browser` is unavailable, say so plainly and surface the connection facts instead of inventing a custom CDP bridge. ## Guidance - This skill solves the connection problem, not the general browser-operation problem. - Return structured connection data first, then any short explanatory note. - Prefer the lightest possible discovery path: `DevToolsActivePort` and the derived browser WebSocket endpoint. - Search the macOS `Tabbit` support directory first, then `Tabbit Browser`. On Windows, search `%LOCALAPPDATA%\Tabbit Browser\User Data` first, then `%APPDATA%\Tabbit\User Data`. - Prefer the full `wsEndpoint` over a raw port because Tabbit may not expose HTTP discovery routes. - Once a Tabbit task has started through `run_agent_browser_on_tabbit.py`, keep using that same wrapper path for the rest of the task unless the user explicitly asks otherwise. - Once connected, use standard `agent-browser` patterns for everything else. ## Constraints - Do not assume a dedicated `tabbit-devtools` MCP server exists. - Do not assume the generic `chrome-devtools` session can be retargeted to Tabbit. - Do not turn this skill into a replacement for `agent-browser`. - Do not create a custom daemon, long-lived CDP proxy, or one-off WebSocket client for post-connection browser actions. - Do not promise that `chrome-devtools` MCP will automatically take over Tabbit. - If `agent-browser` cannot be launched in the current environment, stop at connection guidance and explain the limitation. - After connection, the browser workflow belongs to `agent-browser`, not to this skill. ## Resources - Setup and direct-connection notes: [references/setup.md](references/setup.md) - Endpoint discovery rules and environment variables: [references/discovery.md](references/discovery.md) - Endpoint discovery helper: [scripts/discover_tabbit_cdp.py](scripts/discover_tabbit_cdp.py) - agent-browser wrapper: [scripts/run_agent_browser_on_tabbit.py](scripts/run_agent_browser_on_tabbit.py) - agent-browser upstream docs: https://github.com/vercel-labs/agent-browser
More General & Other skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
grill-with-docs
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.

