pharo-agentic-browser Web UI

Webブラウザで AIコーディング

梅澤 真史
https://github.com/mumez/pharo-agentic-browser

Web UI とは?

概要

任意の Web ブラウザから AgenticBrowser を利用できるオプションパッケージです。
  • トピック操作、プロンプト送信などの機能をひととおり利用可能
  • ローカルでのみ意味を持つ操作(パッケージエクスポート、作業ディレクトリ設定など)は意図的に除外

ユースケース

  • 自宅のどこからでもチェック — スマートフォンからコーディングエージェントの進捗を確認し、次の指示を送信
  • ヘッドレス環境 — ディスプレイのないサーバーやコンテナも、ブラウザから到達できれば利用可能

機能

WebSocket (Ripple) によるリアルタイム同期

  • Pharo用 WebSocket フレームワーク Ripple を採用
  • リロード不要で即座に更新が反映される:
    • 新規メッセージ
    • トピックの追加/リネーム/削除
    • 他タブでの編集

モバイル対応

  • クライアント実装に使用:
  • デスクトップだけでなく、タブレットやスマートフォンでも快適に動作
  • 画面サイズに関わらず同じ機能セットを提供

インストールとアクセス

インストール

サーバー側

Metacello new
    baseline: 'AgenticBrowser';
    repository: 'github://mumez/pharo-agentic-browser:main/src';
    load: 'WebUI'.

クライアント側

TypeScript クライアントをビルドしてデプロイ:
https://github.com/mumez/pharo-agentic-browser-web-ui

起動とアクセス

  • イメージ起動時に自動的に開始、または手動で実行:
AgenticBrowser startWebUI.
  • Webブラウザで開く:
http://localhost:8080/assets/agentic-browser/

画面

画面 — デスクトップ

画面 — モバイル

機能一覧

トピック & 会話に関する機能

機能 詳細
トピック管理 追加、コピー、削除
エージェント設定 モード変更、モデル変更
プロンプト送信 プロンプト送信、キャンセル
承認 リクエストの承認 / 拒否

その他の機能

  • サイドバーでトピックをソート
  • チャット表示のフィルタリング 「thinking」出力の非表示
  • トピックごとの設定(ゴール関連の設定など)
  • トピックをまとめて保存

通知

見逃さないために

  • タブタイトルの変化 — 対応が必要な際に *? マークが表示される
    • * - メッセージが追加された
    • ? - 確認が必要
  • Browser Notification API — 許可後、システム通知をプッシュ
localhost 以外からアクセスする場合は、HTTPS のリバースプロキシを経由してください。ブラウザは、ローカル以外のホストに対して平文 HTTP での通知をブロックします。

設定

設定項目

設定 説明
ポート 例: RpServer default settings port: 9090
バインドアドレス 例: すべてのインターフェースで待ち受け
アセットディレクトリ ビルド済みクライアントの配信元

RpServerSettings またはPHARO_RIPPLE_PORTなどの環境変数で設定可能です。

まとめ

まとめ

Web UI は AgenticBrowser を Pharo イメージの外へと拡張します:

  • Webブラウザベース — Pharoにアクセスできなくともチェックや応答可能
  • リアルタイム — WebSocketにより全タブが即座に同期
  • モバイル対応 — スマートフォンやタブレットでも快適に動作
  • 同じコアワークフロー — どこにいてもトピック、プロンプト、承認の流れを続けられる

フィードバックとコントリビューションをお待ちしています!

https://github.com/mumez/pharo-agentic-browser