terminal-browser

zenbu-labs/terminal-browser — a real browser that runs inside your terminal

1 — 概要

terminal-browser は、Chromium が描いた実際の Web ページをターミナル内へ表示し、マウス・キーボード・トラックパッドで操作できるブラウザです。コーディングエージェントとの会話と Web サイトを同じターミナルタブに並べられます。

Chromium実ブラウザエンジン
GPU pixelsoffscreen rendering
Kitty graphicsターミナルへ描画
Agent CLIsnapshot / click / fill / eval
2 — 利用フロー
1. Installインストールスクリプトで CLI を導入
2. OpenURL・localhost・HTML ファイルを開く
3. Splitright / left / down / up にペイン分割
4. Listbrowser key と tab id を確認
5. Actionagent-browser 互換コマンドで操作
curl -fsSl https://terminal-browser.sh/install | bash

terminal-browser open localhost:3000 --split right
terminal-browser ls
terminal-browser action -- snapshot
terminal-browser action -- click @e14
ローカル HTML も URL と同じ扱いです。 エージェントが作成した設計図やレポートを隣のペインへ開き、会話を続けながら確認できます。
3 — 描画と入力のパイプライン
Web pageChromium がページを実行
Offscreen APIGPU 生成ピクセルを直接取得
Pixel engineRust エンジンが共有 canvas を構成
React UI独自 renderer でブラウザ外枠を描画
Terminalkitty graphics protocol で表示

ターミナルから取得できるクリック、ポインター位置、キー入力を Chromium の合成イベントへ変換します。ターミナルだけでは取得できない入力は、バックグラウンドの Swift アプリが補います。これによりスムーズスクロールやトラックパッド操作、無限キャンバスを扱えます。

4 — モジュール構成

cli/

open、ls、setup、action を解釈し、ペインや既存ブラウザを選択します。

browser/

Chromium セッション、タブ、ページ入力、DevTools、ポップアップ、ブラウザ UI を管理します。

terminals/

Ghostty、kitty、WezTerm、tmux を共通の Backend 契約へ揃え、ペイン操作と graphics 対応を判定します。

engine/

Rust ベースの描画エンジンと pixel-react を提供し、Web コンテンツと外枠 UI を同じ canvas に合成します。

store/

SQLite にブラウザインスタンス、設定、直前の URL を保存し、実行中ブラウザの発見を支えます。

release-worker/

配布物に関する Cloudflare Worker とストレージ側の処理を収めます。

5 — CLI コマンド
コマンド役割主要な指定
terminal-browser [url]現在のペインでブラウザを起動URL、localhost のポート、ローカル HTML
openブラウザを開き、必要ならペイン分割--split <direction>、--size 0.2..0.95
lsブラウザとタブを一覧化--all、--json
setupVS Code 系エディタの terminal image 設定を有効化追加オプションなし
action開いているタブを agent-browser 互換 CLI で操作--browser、--tab、--target、--follow
6 — 対応環境と用途

GhosttykittyWezTermtmuxcmuxVS Code terminal

  • コーディングエージェントと対象サイトを同じターミナルタブに配置する。
  • エージェントが開いているタブを snapshot・click・fill・eval で操作する。
  • SSH 越しのリモート環境で Web サイトをプレビューする。
  • 生成した HTML の計画書や図解を隣のペインで確認する。
graphics protocol が前提です。 実行環境が kitty graphics protocol を扱えるかを検査し、tmux では passthrough や focus events などの設定を調整します。README 記載時点で Linux 対応、Chrome 拡張、design mode はロードマップ項目です。

出典: zenbu-labs/terminal-browser の README、Agent Skill、公開モジュール構成。

github.com/zenbu-labs/terminal-browser