0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

複数AI CLIの引き継ぎ・更新・並列作業をまとめる。many-ai-cli v0.9.0の機能と仕組み

0
Posted at

many-ai-cli v0.9.0

Claude Code と Codex を並べて使うと、コードを書く時間のほかに「どちらが止まっているかを見る」「続きを説明し直す」「CLI を更新する」時間が増えます。複数の AI CLI をブラウザから管理する many-ai-cli の v0.9.0 を公開しました。

自作のローカル Web ダッシュボードです。複数の AI コーディング CLI を並列で走らせ、承認をブラウザ 1 タブに集約。スマホからでも。

Star をいただけると励みになります。

前回の v0.8.0 では、契約・引き継ぎ・委譲という使い分けを紹介しました。今回はその続きを、実際に押すボタンと内部の流れから説明します。
https://qiita.com/ishizakahiroshi/items/49f6a29a43bf64168c1a

v0.9.0で変わる3つの操作

初めて入れる方へ。インストールから起動まで

以下は many-ai-cli 本体のコマンドです。手元で使っている配布方法を1つ選んで実行してください。 AI CLI 本体の導入・ログインは別途必要です。npm・pnpm・Bun の例は v0.9.0 を指定しています。

npm / pnpm / Bun(Windows・macOS・Linux)

npm が使える方はこちらです。

npm install -g many-ai-cli@0.9.0
many-ai-cli setup
many-ai-cli serve --open

pnpm を使っている方はこちらです。

pnpm add -g many-ai-cli@0.9.0
many-ai-cli setup
many-ai-cli serve --open

Bun を使っている方はこちらです。

bun install -g many-ai-cli@0.9.0
many-ai-cli setup
many-ai-cli serve --open

コマンドが見つからない場合はターミナルを開き直してください。pnpm のグローバルコマンド用 PATH が未設定なら、pnpm setup を実行してから開き直します。

winget(Windows / PowerShell)

winget install --id ishizakahiroshi.many-ai-cli --exact --version 0.9.0
& "$env:LOCALAPPDATA\Microsoft\WinGet\Links\many-ai-cli.exe" setup
& "$env:LOCALAPPDATA\Microsoft\WinGet\Links\many-ai-cli.exe" serve --open

初回インストール直後は現在のターミナルに PATH が反映されないため、上では実行ファイルの場所を指定しています。ターミナルを開き直したあとは many-ai-cli で呼び出せます。

Homebrew(macOS)

brew install --cask ishizakahiroshi/tap/many-ai-cli
many-ai-cli setup
many-ai-cli serve --open

Homebrew は配布中の最新版を入れます。この記事の作成時点では v0.9.0 です。

deb(Debian / Ubuntu、x64)

v0.9.0 のリリースページから many-ai-cli_0.9.0_linux_amd64.deb をダウンロードし、保存したフォルダで実行します。

sudo dpkg -i ./many-ai-cli_0.9.0_linux_amd64.deb
many-ai-cli setup
many-ai-cli serve --open

rpm(RHEL系 Linux、x64)

同じリリースページから many-ai-cli_0.9.0_linux_amd64.rpm をダウンロードし、保存したフォルダで実行します。

sudo rpm -i ./many-ai-cli_0.9.0_linux_amd64.rpm
many-ai-cli setup
many-ai-cli serve --open

setup と起動は普段使うユーザーで行います。sudo はパッケージをインストールする行だけです。

ZIPを展開して使う場合

リリースページで、自分の OS に合うファイルを選びます。

  • Windows x64: many-ai-cli-0.9.0-windows-x64.zip
  • macOS Intel: many-ai-cli-0.9.0-macos-intel.zip
  • macOS Apple Silicon: many-ai-cli-0.9.0-macos-apple-silicon.zip
  • Linux x64: many-ai-cli-0.9.0-linux-x64.zip

Windows は展開したフォルダを PowerShell で開き、次を実行します。unblock-windows.cmd は、公式配布からダウンロードしたファイルのブロックを解除するための同梱スクリプトです。

.\unblock-windows.cmd
.\many-ai-cli.exe setup
.\many-ai-cli.exe serve --open

macOS / Linux も展開したフォルダで実行します。

chmod +x ./many-ai-cli
./many-ai-cli setup
./many-ai-cli serve --open

次回からの開き方と止め方

setup はショートカットを作ります。Windows はデスクトップの「MANY-AI-CLI」を開き、トレイメニューの「Hub を開く」を選びます。macOS は「Many AI Hub Start.command」、Linux は「Many AI Hub Start.desktop」です。Linux では初回に「起動を許可」が必要な場合があります。

開いたら「+ 新しいセッション」で、導入・ログイン済みの AI CLI と作業フォルダを選びます。

止めるときは、Windows のトレイの「Hub を停止」、macOS / Linux の「Many AI Hub Stop」、または別のターミナルで次を実行します。

many-ai-cli stop

ZIP 版で PATH を設定していない場合は、展開フォルダで Windows なら .\many-ai-cli.exe stop、macOS / Linux なら ./many-ai-cli stop です。macOS / Linux の Start と一緒に開くコンソールは、利用中は閉じずに最小化してください。

すでに使っている方へ。更新から再起動まで

進行中の作業を区切り、最初に入れた方法と同じ方法で更新してください。 下の各ブロックは、Hub の停止、更新、ショートカットの更新、再起動まで含みます。Windows でトレイを使っている場合は、Hub を止めたあと、トレイアプリも終了してからパッケージを更新してください。

npmで入れた場合

many-ai-cli stop
npm install -g many-ai-cli@0.9.0
many-ai-cli setup
many-ai-cli serve --open

pnpmで入れた場合

many-ai-cli stop
pnpm add -g many-ai-cli@0.9.0
many-ai-cli setup
many-ai-cli serve --open

Bunで入れた場合

many-ai-cli stop
bun install -g many-ai-cli@0.9.0
many-ai-cli setup
many-ai-cli serve --open

wingetで入れた場合(Windows / PowerShell)

many-ai-cli stop
winget source update
winget upgrade --id ishizakahiroshi.many-ai-cli --exact --version 0.9.0
many-ai-cli setup
many-ai-cli serve --open

Homebrewで入れた場合(macOS)

many-ai-cli stop
brew update
brew upgrade --cask ishizakahiroshi/tap/many-ai-cli
many-ai-cli setup
many-ai-cli serve --open

Homebrew の更新先は実行時点の最新版です。

debで入れた場合(Debian / Ubuntu、x64)

v0.9.0 の deb をダウンロードし、保存したフォルダで実行します。dpkg -i は既存パッケージの更新にも使えます。

many-ai-cli stop
sudo dpkg -i ./many-ai-cli_0.9.0_linux_amd64.deb
many-ai-cli setup
many-ai-cli serve --open

rpmで入れた場合(RHEL系 Linux、x64)

v0.9.0 の rpm をダウンロードし、保存したフォルダで実行します。更新には -i ではなく -U を使います。

many-ai-cli stop
sudo rpm -U ./many-ai-cli_0.9.0_linux_amd64.rpm
many-ai-cli setup
many-ai-cli serve --open

ZIP版を使っている場合

まず、旧版を展開したフォルダで Hub を止めます。

Windows / PowerShell:

.\many-ai-cli.exe stop

macOS / Linux:

./many-ai-cli stop

Windows はトレイアプリも終了します。続いて v0.9.0 の ZIP を新しいフォルダへ展開し、そのフォルダで「ZIPを展開して使う場合」の初回コマンドを実行してください。setup をやり直すことで、ショートカットを新しい実行ファイルへ向けます。設定・ログはホームフォルダの .many-ai-cli に保存されているため、更新のために削除する必要はありません。

どの方法でも、更新前から開いていたダッシュボードのタブは再読み込みしてください。 起動後に画面のバージョン表示を確認します。旧版の「Start」「Stop」ショートカットは setup で自動削除されないため、不要になったものだけ手動で整理できます。

ネイティブ Linux / macOS は、まだ実機で十分に検証できていません。配布と手順の確認はできていますが、すべての OS で動作検証済みという意味ではありません。導入・起動と現在の検証状況は v0.9.0 の README に載せています。

CLI を動かすところと、見守るところを分ける

many-ai-cli は、普段使っている AI CLI の周囲に承認・通知・一覧画面を足す構成です。通常の対話セッションでは、wrapper が CLI を疑似端末(PTY)で動かし、Hub が状態を集約します。ブラウザは端末表示と操作の入口です。

ブラウザ・Hub・wrapper・CLIの関係

CLI が作業し、Hub が複数セッションの状態と承認をまとめます。会話履歴をファイルから読む経路もあり、すべての情報を端末の文字列だけから復元しているわけではありません。

v0.9.0 では、ブラウザを開いていないと質問の Pending や通知が出ないケースも修正しました。Hub 側で質問を検出し、マーカーなしの質問は AI が書き終わってから扱います。途中の番号付きリストを質問と誤認する場面も減らしています。

「画面に質問を出す」と「質問が発生したと判断する」は別の処理です。ここを Hub 側へ揃えることで、通知のためだけにブラウザを開き続ける依存を減らしました。

1. 別の AI に続きを渡す前に、渡す内容を見られる

セッションカードの芽のボタンから、新しいセッションを派生させられます。用途はふたつです。

種類 何をしたいときか 起動後の関係
引き継ぎ 別の CLI で同じ作業を続けたい 後継は独立した親セッション
子セッション 調査・実装・レビューなどを分担したい 元のセッションへ報告する子

同じ画面で CLI、モデル、サブスクリプション、対応 CLI の推論の強さ、実行モード、権限を選びます。送る指示文は起動前に表示され、その場で編集できます。引き継ぎ先は別の CLI であり、同じ CLI の別契約へ乗り換える機能ではありません。

止まった前任からも、会話の続きを読める

Claude Code / Codex の会話ログが手元にあれば、前任が利用上限などで止まったあとも、その場所を後継へ伝えられます。AI に引き継ぎメモを書かせる操作もありますが、こちらはまだ動いている前任へ依頼し、その AI のトークンを使います。

この違いが少し大事です。すでに止まった AI に、あとからメモを頼むことはできません。その場合でも、残っている会話ログを読む経路があります。

前任から後継へ渡すのはログとメモの場所

看板には会話ログやメモのパスを記録し、後継が自分のツールでファイルを読みます。Hub が会話全文を看板へコピーする仕組みではありません。記録済みメモは、利用者が明示して開いたときに読み取り専用プレビューで確認できます。

さらに、編集した指示文をメモとして保存するだけの操作も追加しました。後継を起動せず、AI に生成を依頼せずに残せます。AI が書いたメモと手で保存したメモは別ファイルなので、手直しで元のメモを上書きしません。

実装側でも、引き継ぎレコードへ何を入れるかを型で絞っています。以下は Record のフィールドの一部です。

Files   []string `json:"files,omitempty"`
WorkDoc string   `json:"work_doc,omitempty"`

Files は変更ファイルのパス、WorkDoc は作業文書のパスです。内容や差分を格納する欄にはしていません。短い自由文を入れる欄は別にあり、こちらにはマスクと長さ制限を適用します。

実装: https://github.com/ishizakahiroshi/many-ai-cli/blob/v0.9.0/internal/handoff/handoff.go

子の起動条件も、同じ画面で確認する

子の起動確認では、CLI・モデルだけでなく実行モードと権限も確認できます。推論の強さは CLI の対応する起動引数へ変換します。対応していない CLI へ指定した場合は、黙って無視せず拒否します。

Claude Code / Codex では、承認時に作業フォルダを CLI の信頼済みとして登録する選択肢もあります。対象は CLI 自身と同じく、原則そのフォルダが属するリポジトリです。サブフォルダだけを信頼する操作だと思って押さないよう、確認画面で対象を見てください。Codex の既存の不信頼設定を上書きすることはありません。

2. AI CLI を追加したり更新したりする入口を揃える

設定の「AI CLI 連携」から、表示名と実行コマンドを入力し、検証して保存できます。「新しいセッション」の CLI 一覧の末尾にも追加入口があります。既存の定義を複製して調整することもできます。

これは CLI の実行方法を Hub に教える操作です。AI CLI 本体のインストールや、契約・ログインまで済ませる操作ではありません。初回画面には PC に見つかった CLI と未導入の CLI が並び、未導入の場合は公式の導入案内へ進めます。

設定はローカルの履歴とバックアップを持ち、保存失敗や破損で最後に読めた版まで失わないようにしています。戻す入口は設定画面の履歴にもあります。公式カタログの取り込み基盤もありますが、署名鍵の設定がない状態では無効で、定義を勝手にダウンロードして適用するものではありません。

更新するコマンドを見てから実行する

導入状況一覧の「バージョン確認」は、押したときに CLI の --version を実行します。Hub の起動時や定期的に勝手に走らせません。

更新は個別または一括で行えます。実行前にコマンドを確認し、結果は更新済み・すでに最新・失敗に分かれます。失敗した CLI だけの再試行と、ログの確認もできます。

  • 実行中のセッションがある CLI は、そのセッションが終わるまで更新できません。
  • 更新中の CLI では、新しいセッションの起動を止めます。
  • Cursor Agent CLI / Command Code の更新は、再ログインが必要になる場合があるため既定 OFF です。
  • ここで更新するのは各 AI CLI です。many-ai-cli 自体の更新は、冒頭の配布経路で行います。

実装: https://github.com/ishizakahiroshi/many-ai-cli/blob/v0.9.0/internal/hub/cli_update.go

3. プロジェクトへ戻ると、さっきの作業が開く

サイドバーからプロジェクトを選ぶと、最後に開いていたセッションとタブに戻ります。この記憶は Hub に保存するので、別ブラウザから開いた場合にも引き継がれます。対象セッションがすでに終わっていれば、存在するセッションへ戻します。

PC では端末の上に、そのプロジェクトのセッションを並べる帯も追加しました。状態、CLI、セッション番号、ブランチを見ながら切り替えられます。スマホにはこの帯を出しません。

複数端末を並べる multi タブでは「全体」と「このプロジェクトのみ」を切り替えられます。絞り込みを戻しても、ドラッグして決めた配置順は残ります。帯の高さや multi の対象範囲はブラウザごとの記憶です。

似た「記憶する設定」でも保存先を分けています。どの作業に戻るかは共有し、画面の広さに合わせた並べ方は端末側に残します。

作業を切り替えても続きを見失わないイメージ

プロジェクトの切り替えで、作業内容だけでなく見る場所も戻せます。複数の依頼を並べているときの、小さな探し直しを減らすための変更です。

対話用の端末を開かずに働くモードも追加した

ここからは、実装・レビューを分担させる人向けの話です。v0.9.0 では interactive / headless / auto の実行モードを扱います。

対話実行とheadless実行の違い

対話実行は端末を通してやり取りし、headless は起動時に指示を渡して出力と終了コードを受け取ります。headless の入力欄は無効になり、途中で続きの指示を打ち込む形では使いません。

モード 動き方 選ぶ場面
interactive PTY 上で CLI の対話画面を動かす 人が質問や承認へ応答しながら進める
headless CLI 自身の非対話モードをパイプで動かす 起動時の指示をひと区切りとして処理させる
auto 無人のセッションで CLI が対応していれば headless、それ以外は対話 条件に合わせて選ばせる

既定は従来どおり interactive です。 headless 非対応の CLI に headless を指定すると、対話モードへこっそり切り替えずエラーにします。v0.9.0 の Codex は、無人実行に渡す承認フラグと codex exec の組み合わせが適合しないため、headless 対応から外しています。

子セッションと relay の既定は、たとえば設定の該当箇所を次のように指定できます。以下は初期状態を説明する抜粋です。

orchestration:
  child_execution_mode: interactive
  relay_execution_mode: interactive

relay は、実装・レビュー・修正の進行を Hub の状態機械で管理します。headless の場合は指示ごとにプロセスを起動し、終了コードでその実行の成否を判断します。終了コード 0 はプロセスの正常終了であって、変更内容の正しさの保証ではありません。レビュー側の verdict: は引き続き必要です。

Hub 再起動後に同じ headless ワーカーへ再接続することはできません。relay は停止理由を残し、再開時に新しいワーカーを起動して Git 履歴から続けます。

実装: https://github.com/ishizakahiroshi/many-ai-cli/blob/v0.9.0/internal/headless/runner.go

コードを読むときの入口は、このあたりです。

internal/
  handoff/handoff.go        引き継ぎレコードと保存
  headless/runner.go        非対話プロセスの実行
  hub/cli_update.go        CLI更新の制御
  wrapper/headless_session.go
                           wrapperと非対話実行の接続

ほかにも、日々引っかかる部分を直した

大きな機能以外では、次の追加があります。

  • Review を独立したタブに。差分を確認した画面からコミットや push に進めます。コミットで push まで自動実行することはなく、push は別の確認です。
  • Ctrl+K をコマンドパレットに。セッション横断検索だけでなく、操作への入口として使えます。
  • サブエージェントの木を表示。Workflow の画面で、Claude Code / Codex / Grok Build の子の活動を追えるようになりました。
  • URL の操作を統一。端末、履歴、ファイルプレビューなどで URL をクリックすると、行き先を見て「ブラウザで開く」「コピー」を選べます。
  • 作業終了時にも通知。承認待ちに加え、作業が終わって入力待ちに戻ったときの通知音・デスクトップ通知を使えます。
  • 見た目と入力の調整。カスタムテーマ、PC での入力ボタンの並べ替え、共通の音声入力エンジンへの切り替えを含みます。

Command Code の会話履歴と承認カードも追加されています。ただし README には承認統合の実機プロンプトとの突き合わせが未完了とあるので、拾われない場合は端末で応答してください。

任意機能では、手入力した文章を評価する Jev と、OpenCode 専用の NVIDIA NIM route を追加しました。Jev は明示的な有効化と API キーが必要で、外部サービスの利用料金が発生し得ます。結果は表示だけで、AI の選択や承認を変えません。NVIDIA NIM は試用向けで、実キーと実 OpenCode セッションによる接続は未検証です。

新機能だけでなく、更新したい理由がある

再読み込み後に端末をスクロールできなくなるケースや、バックグラウンドの画面が欠けるケースを修正しました。回答済みの質問が再び Pending になる問題、古い Codex 残量表示が新しい値より優先される問題も修正対象です。

Git Review が未追跡のシンボリックリンクの参照先を開かないようにする修正や、CLI 定義へシェル構文が紛れ込むのを拒否する変更も含みます。新機能を全部使わなくても、普段の操作を整える更新として入れてもらえればと思います。

機能と修正の全一覧: https://github.com/ishizakahiroshi/many-ai-cli/blob/v0.9.0/CHANGELOG.md

many-ai-cli はこんなときに刺さります

  • 複数の AI CLI を並行で走らせ、状態を一画面で見たい人。
  • ターミナルを往復せず、承認待ちをまとめて処理したい人。
  • スマホからも作業の状態を確認したい人。接続・通知の設定は README にまとめています。
  • 別の AI へ続きを渡すとき、渡す内容を起動前に確かめたい人。

初回は npm install -g many-ai-cli@0.9.0 と many-ai-cli setup で入口を作れます。使う AI CLI の導入・ログインも済ませてください。

Star をいただけると開発の励みになります。

あわせて読みたい

Codex の SUN_LEN エラーを調べた記事。v0.9.0 に含む、Windows のサブスクリプションプロファイル起動修正の背景です。

おわりに

AI の数が増えると、その間を行き来する作業も増えます。v0.9.0 は、引き継ぐ前に見る、更新前にコマンドを見る、戻ったら同じ作業が開く、という手元の操作を整えた版です。まずは普段使っている CLI から試してみてください。


※ 図と関連リンクをまとめたページ
https://ishizakahiroshi.com/articles/2026/2026-09-27_many-ai-cli-v090/

※ ヘッダー画像とインフォグラフィックの絵は AI(画像生成)で作成しています。

※ 本文の挿絵も AI(画像生成)で作成しています。

書いた人: ishizakahiroshi
群馬の北部で、保護猫2匹と暮らす、在宅エンジニア(何でも屋)
https://ishizakahiroshi.com/
https://github.com/ishizakahiroshi
X(業務委託・各種相談はこちら):
https://x.com/ishizakahiroshi

バックエンド・インフラ・AI連携まわりで、業務委託のご相談を受け付けています。フルリモートです。スポットや週2〜3時間からでも歓迎で、いろんな案件に携われたらうれしいです。こんな相談、歓迎です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?