TabzChrome
Chrome extension for managing tmux sessions in a persistent sidebar
Install / Use
/learn @GGPrompts/TabzChromeREADME
Tabz
Full Linux terminals in your Chrome sidebar

Watch: Subagent chaos with audio announcements - Multiple Claude subagents running with different voice status updates
What Is This?
Real bash terminals running in your browser sidebar. Not a web-based terminal emulator - actual Linux shells connected via WebSocket to your local machine.
Run anything you'd run in a normal terminal:
- Claude Code, Gemini CLI, OpenAI Codex - AI coding assistants side-by-side with your browser
- TUI applications - lazygit, htop, btop, vim, neovim, midnight commander
- Development servers - npm, yarn, docker, kubectl, any CLI tool
- Full interactivity - colors, mouse support, copy/paste, scrollback
Browse the web with your terminals always visible - no window juggling, no Alt+Tab. Terminals persist in tmux sessions, so they survive sidebar close/reopen and even browser restarts.
Why this exists: If you use AI coding tools (Claude Code, Gemini, Codex), you need terminals visible while browsing docs, PRs, and issues. Tabz keeps them docked to your browser instead of buried behind windows.
Give your AI full control: Through MCP tools and REST API, Claude Code can control your browser (screenshots, clicks, form filling, network inspection) and spawn/kill terminal sessions programmatically. Your AI assistant becomes a true automation partner.
⚠️ Security Note: By default, MCP tools only allow access to safe domains (GitHub, GitLab, Vercel, localhost, AI image generators). "YOLO mode" can be enabled in the Dashboard MCP settings (
localhost:8129/#/mcp) to allow all URLs, but we recommend using a separate Chrome profile without personal accounts or saved passwords if you do.
Key Features
- Persistent sessions - Powered by tmux, terminals survive everything
- Profiles system - Save configurations for different tools (Claude Code, lazygit, htop)
- Category organization - Color-coded groups for easy identification
- Smart directory inheritance - Set a global working directory, profiles inherit it
- 3D Focus Mode - Pop any terminal into an immersive full-tab 3D view (scroll to zoom, mouse to orbit, F2 to lock)
- Terminal Popouts - Right-click tab → "Pop Out" for standalone terminal windows (theme synced, return or detach)
- Tmux pane awareness - Detects splits inside terminals with per-pane status, audio voices, and chat targeting
- Local dashboard - Web UI at
localhost:8129for terminal management and quick stats - Tabz MCP tools - Let Claude Code control your browser (screenshots, clicks, form filling)
- Keyboard shortcuts - Quick access to paste text, send to chat, spawn terminals
Claude Code Integration
TabzChrome is designed to work seamlessly with Claude Code:
🚀 Quick Setup - /discover-profiles command
- Manage TabzChrome profiles via the REST API (view, create, update, bulk-import)
- Browse curated lists (awesome-tuis, modern-unix) to discover new CLI tools
- Import ready-made profile configurations with sensible defaults
⚡ 0 Token Cost Up Front - MCP tools with no context overhead!

Using Claude Code's experimental MCP CLI mode, tool schemas are loaded on-demand instead of all 85 definitions into context. Enable with the ENABLE_EXPERIMENTAL_MCP_CLI=true environment variable. See the setup gist for details.
🎭 Power Features (Claude Code Integration):
TabzChrome includes a Claude Code plugin with agents, skills, and MCP tools:
| Component | Type | Description | |-----------|------|-------------| | Tabz MCP Server | MCP | 85 browser control tools (screenshots, clicks, bookmarks, network, tab groups, windows, history, cookies, emulation, profiles, plugins) | | tabz-browser | skill | Browser automation patterns (screenshots, forms, network debugging) | | tabz-terminals | skill | Terminal spawning and worker management via REST API | | tabz-development | skill | Terminal.tsx, xterm.js, WebSocket patterns | | tabz-expert | agent | Browser automation specialist with 85 MCP tools |
Quick setup: Skills auto-load when you run Claude Code in the TabzChrome directory.
Looking for orchestration plugins? The conductor, planner, spawner, and cleanup plugins (for multi-agent worker pipelines) are available in GGPrompts/my-plugins. These require beads for issue tracking.
Quick Start
Requirements
| Component | Version | Notes | |-----------|---------|-------| | Node.js | 18+ | Backend server | | Chrome | 116+ | Manifest V3, Side Panel API | | tmux | 3.0+ | Session persistence | | OS | WSL2 / Linux / macOS | Backend requires Unix shell | | edge-tts | 6.0+ | Optional - for TTS audio features |
<details> <summary>📦 Installing tmux</summary>Tip: Run
./scripts/dev.shto automatically check all dependencies with install instructions.
| Platform | Command |
|----------|---------|
| macOS | brew install tmux |
| Ubuntu/Debian | sudo apt install tmux |
| Fedora | sudo dnf install tmux |
| Arch | sudo pacman -S tmux |
The backend uses node-pty which requires native compilation:
| Platform | Command |
|----------|---------|
| Ubuntu/Debian/WSL | sudo apt install build-essential |
| Fedora | sudo dnf groupinstall "Development Tools" |
| Arch | sudo pacman -S base-devel |
| macOS | xcode-select --install |
| Platform | Command |
|----------|---------|
| All platforms | pip install edge-tts |
Requires Python 3.8+. If you have multiple Python versions, use pip3 install edge-tts.
Verify installation:
edge-tts --version # Should show 6.0.0 or higher
</details>
<details>
<summary>🔤 Installing Nerd Fonts (Optional)</summary>
The default terminal font is monospace (works everywhere). For better icons and ligatures, install the bundled Nerd Fonts:
Quick Install (fonts included in repo):
| Platform | Command |
|----------|---------|
| Windows | Open fonts/ folder → Select all .ttf → Right-click → Install |
| macOS | Double-click each .ttf in fonts/ → Click "Install Font" |
| Linux | cp fonts/*.ttf ~/.local/share/fonts/ && fc-cache -fv |
After installing, restart Chrome and select the font in the Dashboard (localhost:8129/#/profiles) → Edit profile → Font Family.
See fonts/README.md for details.
Not on Chrome Web Store - This is a local developer tool that requires running a backend server. Install via "Load unpacked" in Chrome's developer mode.
Installation
⚠️ WSL Users: Run these commands inside a WSL terminal, not from Windows Git Bash or PowerShell accessing WSL paths. The backend uses native modules (
node-pty) that require Linux npm to compile properly. Open WSL first:wslin Windows Terminal, then proceed.
# Clone
git clone https://github.com/GGPrompts/TabzChrome.git
cd TabzChrome
# Install dependencies
npm install
cd backend && npm install && cd ..
# Build extension
npm run build
Load in Chrome
- Open
chrome://extensions - Enable Developer mode (top-right)
- Click Load unpacked → select
dist-extension/
Start Backend
# Recommended (WSL/Linux/macOS)
./scripts/dev.sh
Why use dev.sh?
- Checks dependencies - Verifies Node.js, npm, tmux are installed with helpful install instructions
- Warns about optional deps - Alerts if edge-tts or Nerd Fonts are missing
- Creates a
tabzchrometmux session with correct config - Enables log forwarding so the "Backend Logs" profile works (shows live server output)
- Makes debugging with Claude Code easier (can capture logs via
tmux capture-pane)
cd backend && npm start # Runs on port 8129
Note: Without dev.sh, the "Backend Logs" profile won't show logs since it relies on the named tmux session.
</details>Open Sidebar
- Click extension icon in toolbar
- Keyboard shortcut (set your own at
chrome://extensions/shortcuts) - Right-click page → "Open Terminal Sidebar"
Note: Chrome doesn't allow extensions to close sidebars programmatically (requires user gesture), so the menu always says "Open" rather than "Toggle". Close via Chrome's built-in panel menu (⋮).
Features
Profiles System
Click the + dropdown to spawn terminals from saved profiles:

- Name - Display name for the profile
- Category - Optional grouping (e.g., "Claude Code", "TUI Tools") with color coding
- Working Directory - Optional (inherits from header if empty)
- Startup Command - Optional command to run on spawn (e.g.,
lazygit,htop) - Font Size - 12-24px per profile
- Appearance - Fully customizable with separate controls:
- Text Colors - 11 themes (high-co
