zenbu-labs/terminal-browser

A browser inside your terminal

解決する課題

ユーザーがターミナルエミュレータ内に完全に機能するウェブブラウザを直接実行できるようにします。これにより、ターミナルと別々のブラウザウィンドウの間を切り替える必要がなくなります。これは、コード環境とウェブプレビューを1つのタブに統合したい開発者や、SSH経由でリモートマシン上のウェブサイトをプレビューする必要があるユーザーにとって特に有用です。

動作方法

このツールは、kittyグラフィックスプロトコルを使用してターミナルにピクセルを表示します。ElectronのオフスクリーンレンダリングAPIを活用し、ChromiumのGPUからピクセルをキャプチャし、Rustで構築されたグラフィックスエンジンでレンダリングします。ユーザーの操作を処理するため、ターミナルからマウスおよびキーボードイベントを取得し、合成イベントをChromiumに送信します。スムーズスクロールやタッチパッドイベントなどの高度な入力を処理するには、バックグラウンドのSwiftアプリがOSレベルの入力イベントを読み取ります。外部UIはReactで構築され、カスタムレンダラを使用しています。

対象ユーザー

  • 開発者:コードとブラウザが同じターミナルタブに統合された統合ワークスペースを希望する人。
  • AIエージェントユーザー:エージェントがウェブとやり取りできる手段を提供したい人。
  • システム管理者:ネットワーク経由で各フレームを送信する遅延を回避して、SSH経由でリモートウェブサイトをプレビューしたい人。

特徴

  • エージェント互換性:AIエージェントが開いているブラウザセッションとやり取りできるCLI(terminal-browser action)を含んでいます。
  • SSH最適化:ピクセルストリーミングではなく、リモートサーバー経由でネットワークリクエストをプロキシすることで、効率的なリモートサイトプレビューを実現します。
  • スプリットペイン対応:他のターミナルプロセスと並べてブラウザをスプリットペインで開くことができます。
  • アプリモード:プリロードスクリプトとメインのNode.jsスクリプトを使用して、ブラウザ技術でターミナルベースのアプリケーションを作成できます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト