どの coding agent を使うか
1つのセルで動くエージェントは1つで、空のセル上部の Agent Picker で選びます。first-class な エージェントは5つ、それに Shell(これはエージェントではありません)。
互換ではありません。 各エージェントは会話を自分の場所に持つので、その会話を続けられるのは 書いた本人だけです。ピッカーを切り替えると「or resume here」に出る一覧も変わります。そして GUI ツールへの到達方法が3通りに分かれていて、選ぶ前に読む価値があるのはここです。
5つのエージェント
| Agent Picker | コマンド | バッジ | GUI ツールの到達方法 | モデル指定 | |
|---|---|---|---|---|---|
| Claude Code | Claude (既定) | claude | — | セッションごとの URL | Model picker、または providers |
| Codex | Codex | codex | cx | セッションごとの URL | CODEX_MODEL |
| Antigravity | Antigravity | agy | agy | ディレクトリのファイル | ANTIGRAVITY_MODEL |
| Grok | Grok | grok | gk | ディレクトリのファイル | GROK_MODEL |
| Muse | Muse | muse | mu | プラグイン(マシン単位) | MUSE_MODEL |
どのコマンドも CLAUDE_BIN / CODEX_BIN / ANTIGRAVITY_BIN / GROK_BIN / MUSE_BIN で差し替え られます(バージョン固定、ラッパー、PATH の外にあるパスなど)。
使わないエージェントは入れる必要がありません。 コマンドが無いエージェントは、そのセルが起動 しないだけで、他には影響しません。
GUI ツールへの到達方法(ここが本当の違い)
「GUI ツール」は MulmoTerminal 自身の MCP ツールで、Canvas にチャートを描いたりワークスペースの データを読んだりするものです。render / data / media / external の4グループに分かれます。
到達方法は 3通りあり、どれになるかはそのエージェントの CLI の性質であって、設定で変えられる ものではありません。
1. セッションごとの URL — Claude Code と Codex
ワークスペースでは、この2つはセッションごとに生成される1つの URL で全ツールを受け取ります。 登録も切り替えも不要で、ランチャーのフォームにはツールグループのトグル自体が出ません(出しても 足せるものが無いため)。
プロジェクトディレクトリでは下の2番になります。
2. ディレクトリのファイル — Antigravity と Grok
どちらの CLI も spawn 時に URL を渡せないので、ディレクトリの設定ファイルを自分で読み、そこに 登録されているものだけを得ます。ワークスペースでも同じです。
- Antigravity は MulmoTerminal がディレクトリのトグルから書く JSON を読みます。トグルを切り替える たびに書き直され、MulmoTerminal が書いていないサーバーはそのまま残し、
git statusにも出ません。 - Grok は
.grok/config.tomlを読みます。これはユーザーのファイルなので、MulmoTerminal は直接 書かずgrok mcp addを駆動します。
なのでこの2つを選んでいるときは、ワークスペースでも4つのトグルが出たままになります。それが正確な 答えで、この2つが GUI ツールを得る唯一の道だからです。
3. プラグイン(マシン単位)— Muse (4.7.0 で対応)
Muse は URL を渡す方法も、ディレクトリごとの設定ファイルもありません。MCP サーバーは インストールされたプラグインが宣言し、muse plugins install はマシン単位で記録します — あるディレクトリからインストールしても、そのディレクトリには何も書かれません。
そこで MulmoTerminal は4グループ全部を持つプラグインを1つ登録し、セッションごとに「その ディレクトリで有効にされているもの」まで絞ります。プラグインのインストールと承認は Muse 自身の CLI を通して行い、内容が変わっていなければサブプロセスすら起動しません。
そのセッションに権限が無いグループは、エラーではなく空のツールセットを返します。エラーにすると、 1グループだけ有効にしたセルに壊れたサーバーが3つ並んで見えてしまうためです。
知っておくとよい点が2つ:
- プラグインはマシン全体に入ります。 MulmoTerminal が起動したものでない Muse セッションからも
muse plugins listに見えます。それらはセッションが解決できないので何も提供しません。消すにはmuse plugins remove mulmoterminal。次の Muse セルが再登録します。 - Muse のプラグイン機能は Muse 側の実験的フラグの下にあります。 将来の Muse が名前を変えたり 外したりしても、Muse セルは起動します — GUI ツールが無くなり、警告が1行出るだけです。
会話の再開
OR RESUME HERE には、そのディレクトリの会話のうち Agent Picker で選んでいるエージェントのもの だけが並びます。保存場所がエージェントごとに別なので、混ざることはありません。
| 会話の置き場所 | |
|---|---|
| Claude Code | 自身の transcript ディレクトリ |
| Codex | セッションごとに書く rollout ファイル |
| Antigravity | 自身の会話ストア |
| Grok | ディレクトリをキーにした自身のストア |
| Muse | SQLite のセッションインデックス+セッションログ |
再開した Muse セッションは --workspace を保ちます。これがワークスペースのツールを登録している ものなので、これを落とすと会話は戻るのにツールが無い状態になっていました(4.7.0 で修正)。
Muse の再開にシードプロンプトは渡せません。 Muse は resume のコマンドラインでプロンプトを 受け付けないので、シードは新規セッションのときだけ送られます。
ヘッダーのバッジ
Claude 以外のセルには短いバッジ(cx / agy / gk / mu)が付き、何が動いているか一目で分かり ます。その横にモデル名とコンテキスト使用率、上下の矢印はそのセッションのトークン使用量です。
Muse のコンテキスト表示は「直近の完了した呼び出しの値」で、それまでの最大値ではありません。 最大値だとコンパクションの後も下がらず、必要が無いのに /compact を促してしまっていました (4.7.0 で修正)。
Shell はエージェントではありません
Shell は OS 標準シェル($SHELL)を起動します。インストールも設定も不要で、会話も GUI ツールも ありません。
ピッカーの下にある launch commands も同じ考え方で、書いたコマンドラインをそのまま実行します。 MulmoTerminal はその中身を読みません。だからコマンドが claude という launch command は、 Claude Code が入った端末であってエージェントセッションではありません — セッション ID も 再開もバッジも GUI ツールもありません。エージェントを起動するのは Agent Picker です。
Claude Code を別のやり方で動かす
「Claude」の意味を広げるものが2つあり、どちらも Claude 専用です。
別のバックエンド / モデル — providers
~/.mulmoterminal/config.json の providers エントリで、Anthropic 互換のバックエンド (OpenRouter、Moonshot、ローカルの Ollama ブリッジ、社内ゲートウェイなど)を登録できます。登録すると Model picker に Anthropic のモデルと並んで出ます。ディレクトリごとに provider / model を固定 すれば、そのプロジェクトは常に同じもので動きます。
設定方法、組み込みモデル一覧の実測通過率、セッションの中からは診断しにくい設定ミスについては プロバイダーとモデル。
自分のコマンドライン — customAgents
customAgents エントリは、あなた自身の Claude Code の起動方法です(ラッパースクリプト、 バージョン固定したバイナリ、ollama launch claude --model … -- など)。登録すると上記5つと並んで Agent Picker に出ます。Claude Code の argv がまるごと後ろに付くので、セッションは再開でき、コストも 報告され、GUI ツールも得られます。
launch command との違いはここです: エントリが agent: "claude" を宣言しているので、MulmoTerminal は どの CLI の引数を付ければよいか分かっている。対応しているのは Claude だけで、他のエージェント 名を書いても動くラベルにはなりません。
エントリの書式は設定を参照。
リンク
- 基本編 — 画面の読み方 — ランチャーのフォームを1つずつ
- プロバイダーとモデル — Claude セッションのバックエンド
- 設定 — 全設定。
customAgentsもここ - Canvas と GUI パネル — GUI ツールグループが実際に何をするか