tony1223/better-agent-terminal

Multi-workspace terminal aggregator with Claude Code AI integration

Better Agent Terminal – 何であるか

Better Agent Terminal (BAT) は、複数のコマンドラインターミナルを並べて実行しながら、AIコーディングアシスタント(Claude Code および OpenAI Codex)とチャットできるデスクトップアプリです。Tauri 2(Rustバックエンドのネイティブラッパー)と React + TypeScript UI で構築されており、Windows、macOS、Linux で動作します。

コアアイデア

  • 1つのウィンドウ、複数のワークスペース – 各ワークスペースはプロジェクトフォルダに紐づき、複数のターミナル、ファイルブラウザ、Gitビューア、AIエージェントパネルを保持できます。
  • AIエージェントが第一級の存在 – Anthropic Claude Code SDK とオプションの OpenAI Codex SDK を組み込み、ターミナルから離れることなく、ファイル編集、コマンド実行、コード生成をモデルに依頼できます。
  • すべてローカルで完結 – ホスト層はRust、UIはWebView、SDKがRustに移植されていない場合のみ、小さなNodeサイドカーを使用します。

主な機能(平易な英語)

ワークスペース管理

  • マルチワークスペース – 同じアプリ内で複数のプロジェクトを別々に開くことができます。
  • ドラッグアンドドロップでワークスペースの順序やグループを変更できます。
  • プロファイル – ローカルまたはリモートのワークスペースセットを保存し、切り替えられます。
  • ドロップ可能なウィンドウ – ワークスペースを個別のウィンドウに展開できます。
  • ワークスペースごとの環境変数と、実行中のターミナルを示すアクティビティドット。

ターミナルとツール

  • xterm.jsベースのターミナルで、完全なUnicodeサポート。
  • スプリットパネルレイアウト – 大きなメインターミナルに加え、すべてのターミナルのサムネイルストリップ。
  • エージェントプリセット – 事前に Claude Code、Claude Code (worktree)、Codex、または通常のシェルに接続されたターミナルを開くことができます。
  • Git worktreeの分離 – AIが一時的なGit worktreeで作業するため、メインコードに影響を与えません。
  • スニペットマネージャ – 再利用可能なコードスニペットを保存(SQLiteバックエンド)。
  • Markdownプレビュー.mdファイルのリアルタイムプレビュー。
  • Procfileスタイルのワーカーパネル – Procfileで定義された複数のプロセスを実行し、統合ログを確認できます。

Claude Codeエージェントパネル

  • Claude Codeモデルをアプリ内に実行(外部ターミナル不要)。
  • ストリーミング出力と折りたたみ可能な「思考ブロック」。
  • 権限モード – 各ツール使用時にプロンプトを要求するか、編集を完全に自動承認するか。
  • セッション管理 – 一時停止/再開、会話のフォーク、トークン制限に達した際のコンテキストの自動圧縮。
  • 豊富なステータスバー – セッションID、Gitブランチ、トークン数、コスト、APIレートリミット使用状況などを表示。
  • キャッシュ認識 – 再利用されたキャッシュトークン数を表示し、大きなキャッシュの有効期限切れを警告。
  • スラッシュコマンド/model, /resume, /auto-continue, …)でチャットボックスからエージェントを制御可能。

Codexエージェント(オプション)

  • @openai/codex-sdk を使用。
  • 複数のOpenAIモデルに対応(GPT-5.5、5.4、5.3-codex、o4-mini、o3、GPT-4.1)。
  • Claudeと同様のサンドボックス/ワークツリー分離と承認ポリシー。
  • セッショントランスクリプトはローカルに保存され、高速な再開が可能。

意味的コードナビゲーション(オプション)

  • cx CLI(tree-sitterベース)と統合され、エージェントがファイル全体を読み込まずに、簡単なファイル概要、シンボル一覧、定義、参照を取得できます。これにより、大規模コードベースでのトークン予算を節約できます。

国際化

  • UIは英語、繁体中国語、簡体中国語で利用可能。

インストール方法

プラットフォーム インストール方法
macOS brew install --cask tonyq-org/tap/better-agent-terminal
Windows (計画中)choco install better-agent-terminal
Linux GitHubリリースページから .AppImage(x86_64 または arm64)をダウンロード。
すべて 1行のクイックインストールスクリプトを実行:`curl -fsSL https://raw.githubusercontent.com/tony1223/better-agent-terminal/main/install.sh

Node 18+、Rust stable、および通常のTauriビルドツールがあれば、ソースからビルドすることも可能です。


アーキテクチャの概要

better-agent-terminal/
├─ renderer/            # React UI (TypeScript)
│   └─ components/ …   # ワークスペース、ターミナル、エージェントパネルなど
├─ src-tauri/           # Rustホスト – PTY処理、IPC、リモートサーバー
├─ node-sidecar/        # Rustに移植されていないSDK用の小さなNodeプロセス
├─ assets/              # アイコンとスクリーンショット
└─ package.json
  • フロントエンド: React 18 + Vite + i18next。
  • ターミナル: xterm.js + node-pty
  • AIバックエンド: @anthropic-ai/claude-agent-sdk(Claude)、@openai/codex-sdk(Codex)。
  • ストレージ: スニペットとセッションデータ用に better-sqlite3
  • リモート制御: 実験的WebSocketサーバー(ポート9876)で、他のBATインスタンスやモバイルアプリがQRコード経由で接続可能。

どんな人が使うべきか?

  • ビルド/監視コマンドを実行し、Git履歴を確認し、LLMにコード編集を依頼できる1つのウィンドウを求める開発者
  • 複数のマシン間で再現可能なワークスペースレイアウト(プロファイル)が必要なチーム
  • キーボードショートカットが好きで、LLMのツール権限を細かく制御したいパワーユーザー
  • モバイルファーストの作業者 – モバイルアプリがデスクトップのBATインスタンスに接続してリモート制御可能。

クイックスタートチェックリスト

  1. アプリをインストール(brew、AppImage、またはスクリプト)。
  2. アプリを開き、プロジェクトフォルダを指すワークスペースを作成。
  3. そのワークスペースのターミナルを開き、エージェントプリセットリストから Claude Code(またはCodex)を選択。
  4. Create a React component that fetches data from /api/items などのプロンプトを入力。
  5. モデルがファイルを編集したり、コマンドを実行したり、説明を求めたりする様子を、同じウィンドウ内で観察。

最後に

Better Agent Terminal は、LLMコーディングアシスタントを緊密に統合した、機能豊富なクロスプラットフォームターミナルマネージャです。IDE風のレイアウトの利便性を保ちつつ、ターミナルの本格的なパワーを維持し、AIがコードベースにどれだけの自主性を持つかを制御できます。

関連

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