{
  "markdown": "# terminal-chromium (Claude Code Plugin)\n\nA [Claude Code](https://docs.anthropic.com/en/docs/claude-code) plugin that gives Claude a full Chromium browser in your terminal. Browse, inspect, and interact with web pages using CDP (Chrome DevTools Protocol) -- all from within a Claude Code session.\n\nBuilt on [carbonyl](https://github.com/fathyb/carbonyl), which renders Chromium using unicode half-block characters. Works in any terminal, including tmux and over SSH.\n\n## Demo\n\nhttps://github.com/user-attachments/assets/47408250-60b1-4fd9-87fe-46723d045b9a\n\n## What it does\n\nWhen you invoke `/terminal-chromium`, Claude will:\n\n1. Launch a Chromium browser in a tmux split pane next to your conversation\n2. Navigate to any URL you specify\n3. Interact with pages programmatically via CDP (click, type, evaluate JS, get page content)\n\n### CDP Commands\n\nOnce the browser is running, Claude uses these commands to control it:\n\n| Command | Description |\n|---------|-------------|\n| `list` | List open tabs |\n| `nav <target> <url>` | Navigate to a URL |\n| `eval <target> <expr>` | Evaluate JavaScript |\n| `click <target> <selector>` | Click an element by CSS selector |\n| `clickxy <target> <x> <y>` | Click at coordinates |\n| `type <target> <text>` | Type text |\n| `html <target> [selector]` | Get page HTML |\n| `snap <target>` | Get accessibility tree |\n| `shot <target> [file]` | Take a screenshot (PNG) |\n| `open [url]` | Open a new tab |\n| `evalraw <target> <method> [json]` | Send raw CDP command |\n\n### Example conversation\n\n```\nYou: /terminal-chromium open https://news.ycombinator.com\n\nClaude: [launches browser, lists tabs]\n  A1B2C3D4  Hacker News  https://news.ycombinator.com/\n\nYou: get me the top 5 story titles\n\nClaude: [runs eval to extract titles]\n  1. Show HN: I built a thing\n  2. Why Rust is taking over\n  ...\n```\n\n## Installation\n\n### Option 1: Plugin Directory (recommended)\n\nInstall directly from the Claude Code plugin directory:\n\n```\n/plugins\n```\n\nSearch for **terminal-chromium** and install it.\n\n### Option 2: Install plugin from GitHub\n\n```bash\n# In any Claude Code session:\n/install-plugin https://github.com/gyoz-ai/terminal-chromium-skill\n```\n\n### Option 3: Manual install\n\nClone and symlink the skill:\n\n```bash\ngit clone https://github.com/gyoz-ai/terminal-chromium-skill.git ~/terminal-chromium-skill\nln -s ~/terminal-chromium-skill/skills/terminal-chromium ~/.claude/skills/terminal-chromium\n```\n\nOr copy directly:\n\n```bash\nmkdir -p ~/.claude/skills/terminal-chromium\ncurl -o ~/.claude/skills/terminal-chromium/SKILL.md \\\n  https://raw.githubusercontent.com/gyoz-ai/terminal-chromium-skill/main/skills/terminal-chromium/SKILL.md\ncurl -o ~/.claude/skills/terminal-chromium/cdp.mjs \\\n  https://raw.githubusercontent.com/gyoz-ai/terminal-chromium-skill/main/skills/terminal-chromium/cdp.mjs\nchmod +x ~/.claude/skills/terminal-chromium/cdp.mjs\n```\n\nThe skill automatically checks for `tmux`, `carbonyl`, and `Node.js 21+` at runtime and will guide you through installing anything missing.\n\n## Usage\n\nStart a Claude Code session inside tmux, then:\n\n```bash\n# Open a page\n/terminal-chromium open https://example.com\n\n# Or just invoke it and tell Claude what to browse\n/terminal-chromium go to the Rust documentation\n```\n\nClaude handles the browser launch, CDP interaction, and pane management automatically.\n\n## How it works\n\n```\n+---------------------------+---------------------------+\n|                           |                           |\n|    Claude Code            |    Carbonyl (Chromium)    |\n|    conversation           |    rendering in terminal  |\n|                           |                           |\n|    Uses cdp.mjs to        |    Exposes CDP on         |\n|    send CDP commands  --> |    localhost:PORT          |\n|                           |                           |\n+---------------------------+---------------------------+\n                    tmux split pane\n```\n\n- **carbonyl** renders real Chromium in the terminal using unicode half-block characters\n- Claude launches it in a tmux split pane with `--remote-debugging-port`\n- **cdp.mjs** connects via WebSocket to the CDP endpoint to control the browser\n- Multiple browser instances can run on different ports (9222, 9223, ...)\n\n## Plugin structure\n\n```\nterminal-chromium-skill/\n├── .claude-plugin/\n│   └── plugin.json\n├── skills/\n│   └── terminal-chromium/\n│       ├── SKILL.md\n│       └── cdp.mjs\n├── LICENSE\n└── README.md\n```\n\n## Notes\n\n- Renders at 60 FPS with 0% idle CPU\n- Supports WebGL, WebGPU, audio, and video\n- Works over SSH\n- Heavy JS sites (YouTube, Twitter) may crash carbonyl -- simpler pages work best\n- Node.js 21+ required for built-in `WebSocket` (no npm dependencies needed)\n\n## Credits\n\n- [carbonyl](https://github.com/fathyb/carbonyl) by Fathy Boundjadj -- the terminal Chromium renderer\n- [gyoz-ai/terminal-chromium](https://github.com/gyoz-ai/terminal-chromium) -- fork with pre-built binaries\n\n## License\n\nMIT\n",
  "bytes": 4937,
  "sha": "94199b5f1b667c9857af7f1c152c3528547b4d6f88553aa0d2bdaba61e656afb",
  "repo_slug": "gyoz-ai/terminal-chromium-skill",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_gyoz_ai_terminal_chromium_skill_terminal_3f357b46/readme"
}