terminal-browser

terminal-browser · by zenbu-labs

Renders a real browser inside Claude Code's terminal so you/the agent can preview web pages; needs the separate terminal-browser app.

❯ /plugin marketplace add SeongGwangJu/k-mods
❯ /plugin install terminal-browser@k-mods

Run /reload-plugins to apply it to an open session. Needs Claude Code 2.1.287 or later.

Notes

  • The real browser engine (Electron + Chromium, with a native input listener) is in the separately installed terminal-browser app. This mod is only a thin bridge that launches that app and talks to it over local HTTP. That app is updated independently with terminal-browser upgrade, so it can change regardless of the commit pinned here.
  • The terminal-browser app collects pseudonymous usage and crash telemetry by default (recorded in plain text in ~/.local/state/terminal-browser-*/logs/telemetry.jsonl; it can be turned off with DO_NOT_TRACK=1 and similar). This mod's own hook code does not send telemetry.
  • The tools that let the agent open and close the browser itself (open/close) are not registered by default, because the agentTool setting is off by default. If you turn it on, the agent can open arbitrary URLs.
  • No minimum Claude Code version is stated. The README tells you to set CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1, but another k-mods review (ko-ui) confirmed that this flag is needed only on 2.1.285 and below, and that function hooks are on by default from 2.1.287. The terminal-browser guidance may be based on an older version, and we did not verify it by running it.

Requires

  • terminal-browser CLI/app installed (curl -fsSL https://terminal-browser.sh/install | bash or brew install terminal-browser). A separate Electron-based program, not included in this plugin's code
  • A terminal that supports the Kitty graphics protocol (ghostty, kitty, or libghostty-based). On unsupported terminals and multiplexers (such as tmux), the TUI may break

What it can do on your machine

Mods run unsandboxed with your permissions. These labels come from static analysis.

NetworkRuns programsCan hold/answer tool callsSubmits promptsReads files
Static analysis

Events handled

browser.closebrowser.opencommand.run{command=browser}engine.createsession.starttool.call{tool=?}ui.close{id=browser}ui.messageui.render{component=Pane, requestId=browser}ui.scroll{requestId=browser}