Advanced:tmuxとagmsg¶
tmuxとagmsgはオプションです。通常のマルチエージェントDispatchではどちらも必須 ではありません。ithynoは、隔離されたGit worktreeでWorkerをワンショットの プロセスとして実行できます。
| 機能 | 使用する場面 | 変わるもの |
|---|---|---|
| Parallel execution | worktreeへ分離する、または複数Changeを並行実行する | 各Changeを編集する場所 |
| tmux | Dashboardの再読み込みや一時切断後もManagerターミナルを維持する | Managerターミナルだけを永続セッションで包む |
| agmsg | Workerに永続Shellとエージェント間の明示的なメッセージが必要 | tmux paneとagmsg teamでWorkerを実行する。tmuxも暗黙に有効になる |
最初はParallel executionだけを使用し、以下の動作が必要になった場合にtmuxまたは agmsgを追加してください。
Managerターミナルでtmuxを使用する¶
tmuxはManager CLIをプロジェクト単位のターミナルセッション内で維持します。 Dashboardの再読み込みやターミナルの再接続時には、2つ目のManagerを起動せず、 既存セッションへ接続します。
tmuxだけではWorkerロールの設定、複数ChangeのDispatch、エージェント間メッセージ は有効になりません。
tmuxをインストールする¶
brew install tmux
tmux -V
sudo apt update
sudo apt install tmux
tmux -V
sudo dnf install tmux
tmux -V
sudo pacman -S tmux
tmux -V
Windowsにはtmuxが含まれず、ithynoからWindows向け代替実装を自動インストール
することもできません。そのためPrerequisitesのInstallは自動導入を行わず、
手動導入の案内を表示します。tmux.exe互換コマンドを提供する最新版の
psmuxを使用します。
WinGetでインストールできます。
winget install marlocarlo.psmux
またはpsmux Releasesから、
インストーラーかアーキテクチャに合うportable archiveを取得します。portable
版では展開後、tmux.exeがあるフォルダをユーザー環境変数のPATHへ追加します。
新しいPowerShellを開いて確認します。
where.exe tmux
tmux -V
PATHを変更した後はElectronアプリを完全に再起動するか、VS CodeのWindowを
Reloadします。ithyno serverも再起動してからManagerターミナルを開き直します。
起動済みプロセスには後から変更した環境変数が渡らず、ithynoは最初のtmux検出
結果をプロセス内でキャッシュします。
有効にする¶
- Settings → Prerequisitesを開き、tmuxが検出されていることを確認します。
- Settings → Executionを開きます。
- Wrap Manager terminal in tmuxを有効にします。
- Managerターミナル右上のリフレッシュボタンを選択し、tmux内で再起動させます。
プロジェクトルートのagents.yamlに次の設定が書き込まれます。
tmux: true
各プロジェクトには別々のtmuxセッション名が自動的に割り当てられます。ithynoは セッションの作成・再接続時に、現在のDashboard endpointとsession credentialも 渡すため、復帰したManagerは現在のプロジェクトコンテキストを使用します。
tmuxを使用しない場合はトグルを無効にし、Managerターミナル右上の
リフレッシュボタンから再起動します。
tmuxが有効でもPATHから見つからない場合、ithynoは警告を表示し、Managerを
起動しません。tmuxをインストールするか設定を無効にしてithynoを再起動した後、
Managerターミナルを開き直します。
永続Workerとメッセージにagmsgを使用する¶
agmsgはローカルの共有team inboxを追加し、Workerをtmux paneで起動します。 Managerは各Workerから明示的なstage完了メッセージを受け取ってから、成果物を判定し 次のステージへ進みます。
次のいずれかが必要な場合にagmsgを使用します。
- Workerをlive shellとして維持する。
- WorkerからManagerへ明示的な完了メッセージを送る。
- 複数のエージェントCLIでローカルのメッセージ経路を共有する。
複数Changeを実行するためだけにagmsgを有効にする必要はありません。
Parallel executionとdispatch-multiだけで並行実行できます。
agmsgの前提ツールをインストールする¶
- tmuxが必要です。agmsgを有効にするとtmuxも暗黙に有効になります。
- 各エージェントCLIのインストールと認証を先に完了します。
- agmsg本体はBash scriptで構成され、
sqlite3commandを使用します。
macOSでは通常sqlite3を利用できます。agmsgのインストール前に確認します。
sqlite3 --version
存在しない場合はHomebrewからインストールします。
brew install sqlite
sudo apt update
sudo apt install sqlite3
sudo dnf install sqlite
sudo pacman -S sqlite
Windowsでは、ithynoからagmsgをインストールする前に3つの前提ツールが必要です。
- Git for Windowsをインストールします。agmsgの
.shファイルは、ここに含まれる実際のGit Bashで実行されます。Windowsのbash.exeというWSL launcherでは代用できません。 - SQLite公式ダウンロードページから、
アーキテクチャに合うsqlite-tools for Windowsをダウンロードします。
展開後、
sqlite3.exeがあるフォルダをユーザー環境変数のPATHへ追加します。 - 上のtmux手順に従ってpsmuxをインストールします。
tmux.exeは、手動設定した Git Bash内だけでなく、通常のPowerShellからも見える必要があります。
新しいPowerShellを開いて、3つのコマンドを確認します。
where.exe git
where.exe sqlite3
where.exe tmux
sqlite3 --version
tmux -V
& 'C:\Program Files\Git\bin\bash.exe' -lc 'sqlite3 --version'
Git for Windowsのインストール先を変更している場合は、最後のパスを合わせます。
ithynoはgit --exec-pathからGit Bashの場所を求めます。WSLへつながる可能性が
あるため、単なるbash commandは使用しません。標準以外の場所へインストール
した場合は、Windowsのユーザー環境変数GIT_BASHにGit Bashの絶対パス
(例:D:\\Apps\\Git\\bin\\bash.exe)を設定し、ithynoを再起動します。
agmsgのCodex delivery hookではAGMSG_BASHも使用できます。
PATHの変更後はithynoを完全に終了して再起動し、
Settings → Prerequisites → Refreshを実行します。Git Bashとsqlite3の
両方が検出されるまで、agmsgのInstallは実行されません。tmuxはターミナルを
wrapする前に別途検査されます。
agmsgをインストールする¶
- Settings → Prerequisitesを開きます。
- agmsgが未インストールの場合はInstallを選択します。
- インストール完了後にRefreshを選択し、agmsgがinstalledと表示されることを 確認します。
- 新しくインストールしたagmsg commandとskillを認識させるため、Manager ターミナルを再起動します。
ithynoのインストーラーは、アプリに同梱された互換性のあるagmsgを
~/.agents/skills/agmsg/へコピーします。後から更新してもローカルDBは維持されます。
パッケージ内にagmsgがないと表示された場合は、
agmsgプロジェクトからnpx agmsgで
インストールし、ithynoを再起動してPrerequisitesを更新します。
プロジェクトでagmsgを設定する¶
- Settings → Agmsg (multi-agent messaging)でConfigureを選択します。
- agmsgを有効にし、
my-projectなどプロジェクト固有のteam名を入力します。 - すべての参加プロセスで同じカスタムパスを設定する場合を除き、 Storage pathは空欄にしてagmsg標準のローカルSQLite DBを使用します。
- 設定を保存します。
- Agentsを開き、agmsgで使用する各Workerを編集して、もう一度保存します。 これにより、画面がWorkerをagmsg用の実行方式へ更新します。
- Dispatchの前にManagerターミナルを再起動します。
プロジェクト設定はagents.yamlへ保存されます。
agmsg:
team: my-project
agmsgはtmuxを暗黙に有効化するため、agmsg設定を削除した後もtmuxを使い続けたい
場合を除き、tmux: trueを重ねて設定する必要はありません。
対応するWorker command¶
現在、ithynoは次のWorker commandをagmsg agent typeへ変換します。
| Worker command | agmsg type |
|---|---|
claude |
claude-code |
codex |
codex |
copilot |
copilot |
gemini |
gemini |
antigravity |
antigravity |
opencode |
opencode |
cursor |
cursor |
未対応のcommandはagmsgから起動できません。表にあるcommandを使用するか、その Workerではagmsgを使用しない設定にしてください。
agmsg用Workerを保存すると、ithynoは対応する長形式CLI optionを
~/.agmsg/config/spawn_options.yamlへ同期します。model指定はDispatch開始時に
別途渡されます。生成された設定を直接管理せず、ithynoのWorker設定を編集して
ください。
agmsgを無効にする¶
- Settings → Agmsg (multi-agent messaging) → Configureを開きます。
- Enableをオフにして保存します。
- Agentsで各Workerを編集・保存し、通常のワンショット実行へ戻します。
- Managerのセッション維持も不要なら、Wrap Manager terminal in tmuxを 別途無効にします。
- Managerターミナルを再起動します。
プロジェクト連携を無効にしても、agmsg本体やローカルのメッセージDBは削除されません。
トラブルシューティング¶
| 症状 | 確認すること |
|---|---|
| tmuxを有効にしてもManagerが起動しない | ithynoを起動した環境でtmux -Vが成功することを確認し、ithynoを再起動します。tmuxを使わない場合は先に設定を無効にします。 |
| 以前のManagerが古いDashboard endpointを使用する | 有効なDashboardからManagerを再起動し、tmuxセッションへ現在のITHYNO_BASEとsession tokenを渡します。 |
| agmsg有効後もWorkerがワンショットで起動する | Agentsから対象Workerを編集・保存し、もう一度Dispatchします。 |
| Dispatchがunknown agmsg typeを報告する | 上の表にあるcommandを使用します。 |
| Worker完了後もManagerが待ち続ける | team名とWorker paneを確認します。Workerは同じteamへstage完了メッセージを送る必要があります。 |
| WindowsでagmsgがinstalledでもWorkerを起動できない | agmsgの検出にはtmuxが含まれません。Git Bashとsqlite3を確認し、tmux.exeを別途確認してアプリを再起動します。 |
標準の手順へ戻る場合は 複数エージェントを設定してDispatchするを 参照してください。