Claude Code を tmux で並列実行 vs PMDesk:複数プロジェクトの管理を比較
tmux は、SSH 越しでもノート PC の蓋を閉じた後でもターミナルセッションを維持し続けるための最良のツールで、無料でスクリプト化もできます。一方で、各ペインの中で何が動いているかは把握しないため、5 つ以上の Claude Code や Codex のエージェントを動かすと、手が必要なペインを探してひとつずつ確認することになります。PMDesk は同じエージェントをプロジェクトごとの本物のターミナルで動かし、tmux にはない 「回答待ち」バッジ、要求、プラン、Todo、レビューの層を加えます。両方を併用している人も多くいます。
tmux は AI エージェントに何をもたらしますか?
tmux はターミナルマルチプレクサです。ひとつのセッションに複数のウィンドウとペインを持て、デタッチしても中身は動き続けます。エージェントにとっては大きな利点です。
- 永続性。 ウィンドウで
claudeを起動してデタッチし、ターミナルを閉じて翌日戻っても、tmux attachで同じセッションが表示されます。 - リモート作業。 SSH 先やクラウドマシンでは、接続が切れても長いエージェントの実行が生き残る理由は、多くの場合 tmux だけです。
- スクリプト化。
tmux send-keys、名前付きセッション、レイアウトを使えば、環境全体をひとつのスクリプトで起動できます。tmux ベースのオーケストレーターもこれを土台にしています。 - どの CLI でも可。 Claude Code、Codex、シェルのどれでも区別しません。
- 無料でどこにでもある。 オープンソースで、ほとんどのサーバーに入っています。

複数のエージェントを動かすと tmux のどこが大変になりますか?
tmux はすべてのペインをテキストのストリームとして扱います。あるペインが「Allow Bash(pnpm build)?」で待っているエージェントなのか、別のペインが編集中なのかは分かりません。日常的には次のような点が問題になります。
- 「誰が自分を待っているか」が分からない。 ウィンドウを順に巡回するか、監視スクリプトや通知フックを自分で書いて保守することになります。
- レイアウトが手作業。 ウィンドウ 4 が今日はインフラで、明日はログになります。名前や順序はずれていき、再起動後は作り直しです。
- 同じリポジトリでの並行作業には worktree が必要。
git worktree addの実行と後片付けを自分で行います。 - 書く作業が別の場所にある。 要求、プラン、未解決の質問、顧客資料は別のアプリにあり、アプリとエージェントの間でコピーすることになります。
- 出力のレビューがスクロール頼み。 エージェントが書いた長い Markdown のレポートをペイン内で読むことになり、箇所にコメントして修正を送り返す手段がありません。
これらは tmux の欠陥ではなく、もともとそのために作られていないということです。
PMDesk は何を加えますか?
PMDesk は、複数のプロジェクトにまたがって AI コーディングエージェントを指揮する人向けの macOS アプリです。各プロジェクトのタブで Claude Code や Codex を本物のターミナルで、お使いのサブスクリプションのまま動かし、ターミナルの周りにプロジェクトの作業を配置します。

- プロジェクトごとに 1 タブ。 バックグラウンドセッション(デフォルトで同時に 5 つ)、再開できる履歴、名前の変更、アーカイブがあります。
- 「回答待ち」バッジ。 エージェントがターンを終えたとき、または許可を求めたときに、セッション、プロジェクトタブ、サイドバーに表示されます。オプションで macOS の通知も出せます。tmux で自分でスクリプト化することになる部分です。
- 要求、変更要求、Todo。 プロジェクト内にファイルとして保存され、ワンクリックでエージェントに渡せます。渡すとそのタスク用の新しいセッションが始まります。
- プランと Tasks ペイン。 プランのタスクを一覧し、コミットで言及されるとチェックが付きます。Claude Code が委任したサブエージェントも表示されます。
- 顧客資料フォルダ。 Box、Google Drive、任意のフォルダをその場で読み取り、書き込みは一切しません。
- レビュー。 エージェントが生成した Markdown と HTML を読み、箇所にコメントして、すべての修正をまとめて送り返せます。

PMDesk にできないこと:現時点では macOS のみで動作し(Windows は対応予定)、SSH ホストではなくローカルフォルダを開き、git worktree は管理せず、コードエディタでもありません。
tmux と PMDesk の比較一覧
| tmux | PMDesk | |
|---|---|---|
| 何か | ターミナルマルチプレクサ | 複数プロジェクトでエージェントを指揮する Mac アプリ |
| エージェント | どの CLI でも可 | Claude Code、Codex |
| ターミナルを閉じてもセッションが残る | はい | はい。アプリを開いている間、バックグラウンドセッションは動き続けます |
| SSH / リモートホストでの利用 | はい。最も得意な場面です | いいえ。ローカルフォルダのみ |
| どのエージェントが待っているか分かる | 自分で書くスクリプトとフック | セッション、タブ、サイドバーの 「回答待ち」バッジ、オプションの通知 |
| プロジェクト単位の整理 | 自分で名前を付けるセッションとウィンドウ | プロジェクトごとに 1 タブ、履歴とアーカイブ |
| 同じリポジトリでの並行作業 | 手動の git worktree | 管理しません。worktree は自分で使ってください |
| 要求、プラン、Todo | 含まれない | 組み込み済みで、ワンクリックでエージェントに渡せます |
| 顧客資料とレビュー | 含まれない | 登録したフォルダ。Markdown/HTML の出力にコメントできます |
| プラットフォーム | macOS、Linux、サーバー | macOS(Windows は対応予定) |
| 価格 | 無料、オープンソース | 買い切りライセンス |
どちらを使うべきですか?
**tmux が向いているのは、**主に SSH やリモートマシンで作業する、1〜3 個のエージェントを動かす、環境をスクリプトで組むのが好き、または Linux が必要な場合です。
**PMDesk が向いているのは、**3 つ以上のプロジェクトでエージェントを指揮する、要求や顧客資料から作業を始める、書かれた出力を大量にレビューする、あるいは自分を待っているペインを探し回るのに疲れた場合です。
両方を使う。 PMDesk は同じプロジェクトフォルダで同じ claude コマンドを実行します。そのため、PMDesk で始めたセッションは、サーバー上の tmux の中を含め、どこでも claude --resume で再開できます。現実的な使い分けは、Mac での日常のプロジェクト作業には PMDesk、リモートマシンには tmux です。
どちらの構成にも通じる運用の考え方は コンテキストを失わずに複数の Claude Code エージェントを管理する方法 を、より幅広い比較は Agent View・Conductor・tmux・PMDesk を比較:複数の Claude Code エージェントを動かす環境の選び方 をご覧ください。PMDesk が合いそうでしたら、PMDesk for Mac をダウンロードできます。
FAQ
tmux で Claude Code を実行できますか?
はい。tmux のウィンドウで claude を起動すれば、デタッチしても動き続けます。リモートマシンや長時間のタスクでよく使われます。永続性は得られますが、どのウィンドウが入力を待っているかを示す組み込みの表示はありません。
どの tmux ペインが入力を待っているかはどう分かりますか?
tmux には分かりません。monitor オプションでペインのアクティビティや無音を監視するか、許可プロンプトの文言を探すフックやスクリプトを書くことになります。PMDesk では代わりに、セッション、プロジェクトタブ、サイドバーに 「回答待ち」バッジが表示されます。
PMDesk は tmux の代わりになりますか?
いいえ。PMDesk は Mac 上でプロジェクトごとの本物のターミナルでエージェントを動かし、要求、プラン、Todo、レビューを加えます。SSH 越しには動作しないため、リモートのセッションには引き続き tmux のほうが適しています。
tmux と PMDesk を一緒に使えますか?
はい。どちらも同じ Claude Code CLI を実行し、セッションの履歴も共有されるため、PMDesk で始めたセッションは tmux のウィンドウで claude --resume により再開できます。
どちらの構成でも git worktree は必要ですか?
2 つ以上のエージェントが同時に同じリポジトリを編集する場合は、必要です。tmux では worktree を自分で作成します。PMDesk も worktree を管理しないため、自分で作成するか、Claude Code の Agent View を使ってください。