ノートPCを閉じても落ちない Claude CLI マルチセッションWebターミナル
(github.com/kimtaeyeong1229)ブラウザタブで 複数の Claude CLI セッションを同時に回せる Webターミナルを作りました。
セッションはサーバー上で PTY として動いていて、ブラウザはその画面を表示するだけなので、ブラウザを閉じてもノートPCを閉じても作業は続きます。PC を再起動しても自動 --resume によってセッションが復元されます。
主な特徴
- マルチセッション — タブ/サイドバー UI で N 個の Claude CLI を1画面で切り替え・管理
- セッション永続化 —
~/.claude-web-terminal/sessions.jsonに自動保存され、サーバー/PC 再起動時に自動復元 - Docker コンテナ — ホストだけでなく実行中のコンテナ内のフォルダを選んで、その中で Claude を実行 (
docker exec -it -w <path> <container> claude) - 外部 Claude プロセス検出 — すでに起動している別ターミナルの claude に接続 (Linux
/proc) - 再接続時のスクロールバック復元 — 200KB バッファ
- 単一ファイルのフロント — Vanilla HTML/CSS/JS, XTerm.js + 約 2,400 行
- 単一ファイルのバックエンド — Python aiohttp + PTY + WebSocket, 約 500 行
スタック
- バックエンド: Python 3.10+ / aiohttp / PTY / WebSocket
- フロント: Vanilla HTML・CSS・JS, XTerm.js 5.5, FitAddon, WebLinksAddon
- 認証: なし — 127.0.0.1 へのバインド推奨 (LAN に公開する場合は reverse proxy + basic auth)
自動起動
- macOS: LaunchAgent plist (README にテンプレート同梱)
- Linux: systemd user service +
loginctl enable-linger
ワンライナーインストール
git clone https://github.com/kimtaeyeong1229/claude-web-terminal
cd claude-web-terminal && pip install -r requirements.txt
python3 server.py --host 127.0.0.1 --port 8080
ブラウザで http://127.0.0.1:8080.
作った動機
- Claude CLI が気に入っていてよく使うが、ターミナルウィンドウを N 個開くのが面倒
- ノートPCを閉じると落ちたり、ssh が切れるとセッションが切れたりするのが嫌だった → サーバーサイド PTY に分離
- Docker 環境に入って claude を起動するために毎回
docker exec -itする手順が面倒 → UI に統合
制限
- 認証なし — ローカル/信頼できるネットワーク前提
- 外部プロセス検出は Linux のみ (macOS には
/procがない) - マルチユーザー/アカウント分離なし — 単一ユーザー向けツール
フィードバック/イシュー歓迎です。
1件のコメント
まさに必要だった機能なので、良いと思います! haha