この記事は tk3.biz のブログ からの転載です。
はじめに
前回は、Claude Code だけの環境で dev-orchestra を使ってみました。今回は Codex に入れてみます。
結論から言うと、Codex だけでも動きます。でも、いちばんのおすすめは Claude Code と Codex の両方を入れることです。そうすると、別々の会社の AI がレビューする構成に自動でなります。
dev-orchestra が何をするものかは、紹介の記事にまとめています。
必要なもの
| もの | メモ |
|---|---|
| Codex CLI | ログインまで済ませておく |
| Python 3.11 以上 | 標準ライブラリだけで動く |
| git | レビューする差分を取るのに使う |
API キーは要りません。Codex のログインをそのまま使います。
手順
1. インストールする
ターミナルで 2 行です。
codex plugin marketplace add istb16/dev-orchestra
codex plugin add dev-orchestra@dev-orchestra
入ったかどうかは codex plugin list で確かめられます。
2. 初回にプリセットを選ぶ
使い始めは Claude Code のときと同じです。dev-orchestra を使う依頼を初めて出すと、プリセットを聞いてきます。迷ったら standard で大丈夫です。プリセットの中身は、この連載の後半でくわしく書きます。
3. Codex だけのときの構成を見る
Claude Code が入っていないマシンで standard を選ぶと、構成はこうなりました(dev-orchestra 1.0.0 の config show の抜粋)。
Preset: standard (implicit; fitted to codex)
note: claude not found on PATH: reviewer seat 2 (general) was not added; it would repeat codex-general
note: claude not found on PATH: reviewer seat 4 (test) was not added; codex has no cheap model named offline
Architect
codex / recommended-coding / latest
Implementer
codex / recommended-coding / latest
Reviews
1. codex / recommended-coding / latest / general / codex-general
2. codex / recommended-coding / latest / security / codex-security
設計も実装もレビューも、すべて Codex に割り当てられています。
ここで、Claude Code だけのときとの違いが 1 つあります。レビュアーが 4 人ではなく 2 人です。
- 2 番目の
generalの枠は、1 番目とまったく同じ Codex になってしまうので追加しない -
testの枠は「安いモデル」用の枠で、Codex には安いモデルを名前で指定できないので追加しない
同じ AI を同じ役で 2 人並べても意味がないので、無駄な枠は最初から作らない、という動きです。
4. Claude Code も入れると推奨構成になる
ここからがおすすめの使い方です。同じマシンに Claude Code も入っていると、構成はこう変わります。
Preset: standard (implicit; fitted to claude, codex)
Architect
claude / fable / latest
Implementer
claude / opus / latest
Reviews
1. claude / opus / latest / general / claude-general
2. codex / recommended-coding / latest / general / codex-general
3. claude / sonnet / latest / security / claude-security (opus when high-risk)
4. claude / sonnet / latest / test / claude-test
2 番目のレビュアーが Codex になりました。
- 実装は Claude、レビューには Claude と Codex が入る
- 別々の会社の AI は、思い込みも違う。同じ差分を見て意見が食い違ったところが、本物のバグのありかになる
設定を書き換えなくても、入っている CLI を見て自動でこの形になります。
設計や実装を Codex に任せたい場合は、役ごとに AI を変えることもできます。組み替え方は、この連載の後半で書きます。
5. 準備ができているか確かめる
エージェントに「dev-orchestra の doctor を実行して」と頼みます。Codex の部分はこう出ました(抜粋)。
Codex CLI (codex)
Installed: yes
Model selection: supported
Read-only runs: enforced by -s read-only (CLI sandbox); filesystem writes are blocked by the sandbox (measured); MCP servers were not examined, so external side effects are not covered
設計役とレビュー役は、Codex の読み取り専用のサンドボックスで動きます。ファイルの書き込みはサンドボックスが止めます。ただし、MCP サーバーまでは確認していない、と正直に書いてあります(下の表でも触れます)。
最後に No problems found. と出れば準備完了です。
6. 1 文で依頼する
あとは Claude Code のときと同じで、普段どおり話しかけるだけです。
この issue を設定済みのワークフローで実装して
計画の承認を聞いてくるところから最終報告までの流れは、前回の記事に書いたとおりです。
複数のレビュアーを動かすぶん、トークンは 1 つの AI で済ませるより増えます。最初は小さな依頼から試すのがおすすめです。
Codex の場合だけの機能・制限
Codex で使うときに知っておくと役に立つ点です(dev-orchestra 1.0.0 時点。くわしくは providers.md)。
| 内容 | |
|---|---|
| ○ 読み取り専用はサンドボックスで強制 | 設計とレビューは -s read-only で動き、シェルからの書き込みも止まる |
| ○ モデルは「推奨のもの」をそのまま使う | 既定は recommended-coding。ほかのモデルは dev-orchestra model list に出るものだけ指定できる |
| ○ 設計の続きから再開できる | 前の設計の会話を、読み取り専用のまま引き継げる(確認済みの Codex の版で) |
| △ MCP サーバーとフックは確認していない | Slack などの MCP ツールを通じた外への影響までは、dev-orchestra は保証しない |
| △ 作業ディレクトリの外も読める | Claude のように読み取りの範囲を閉じ込めてはいない。リポジトリの中でも外でも .env などの秘密のファイルを読めて、読んだ中身は OpenAI に送られる |
△ Codex だけだとレビュアーは 2 人(standard の場合) |
同じ Codex を重ねる枠と、安いモデル用の枠を作らないため。quality なら 4 人、fast ならふだん 1 人(危険な変更では+1 人) |
△ 独自の model_provider だと設計の再開ができない |
config.toml で独自のプロバイダーを使っていると、再開は失敗して新しく実行し直す |
| △ 実装役のサンドボックス設定はグローバル設定から |
sandbox / approve をプロジェクトの設定ファイルに書くと、実装の実行が拒否される |
秘密のファイルは、レビュアーの手が届かない場所に置いておくのが安心です。どうしても外に出したくないコードは、ローカルの LLM でレビューする手もあります(紹介の記事で触れています)。
プラグインを更新するときは、
codex plugin marketplace upgradeだけでは新しい版が入りません。続けてcodex plugin add dev-orchestra@dev-orchestraを実行します。
まとめ
- Codex への導入も 2 行。API キーは要らない
-
Codex だけでも動く。設計・実装・レビューがすべて Codex になり、レビュアーは 2 人(
standardの場合) - Claude Code も入れると推奨構成。レビューに Claude と Codex の両方が入り、別々の会社の AI が独立してレビューする
- 設計とレビューは Codex の読み取り専用のサンドボックスで動く。ただし MCP とフックは確認していない
- 更新するときは
marketplace upgradeのあとにplugin addをもう一度
詳しい使い方は README(日本語) にまとめています。次回は、Antigravity で使ってみます。