まず動作を観察し、その動きを生むコードを探す。
巨大なリポジトリを先頭から読むと、部品の名前ばかりが増えてしまいます。最初に自分でビルドした Codex を起動し、「入力したら何が起きるか」を観察しましょう。実行ファイルとユーザー状態、モデルを動かすサービスの違いも、ここで整理します。
01|図でつかむ
取得 → ビルド → 起動 → 観察。観察した言葉が、次に検索するキーワードになる。
02|3つのポイントで理解する
1. ビルドは、ソースを実行できる形に変えること
Rust の crate はコンパイルの単位、package は Cargo.toml で管理する単位、workspace は複数の package をまとめる単位です。codex-rs は workspace なので、最初は CLI の package と binary を指定して作ります。全 crate の役割を暗記する必要はありません。
2. 自作した実行ファイルを、パスで指定する
単に codex と入力すると、PATH 上のインストール済み版が動く可能性があります。通常の出力先なら codex-rs で ./target/debug/codex を実行します。CARGO_TARGET_DIR などで出力先を変えている場合は、実際の生成先を確認します。
3. プログラム・状態・サービスを分ける
ビルドしてできるのはクライアントです。同じユーザー設定を使えば、以前の認証状態を参照することがあります。モデル自体をローカルで作ったわけではなく、同じアカウントなら利用枠も別にはなりません。初回ビルドの時間は依存関係や環境で変わります。
03|ソースで確かめる
新しく取得する場合の例です。Rust などの前提はリポジトリのビルド手順で確認してください。既に取得済みなら clone は不要です。
git clone https://github.com/openai/codex.git
cd codex/codex-rs
cargo build -p codex-cli --bin codex
./target/debug/codex
# 認証状態を確認する場合
./target/debug/codex login status
読む入口: codex-rs/cli/src/main.rs 。リンク先は照合に使った固定 commit のファイルです。手元の版と異なる場合は、上の検索語から探し直します。
小さく試す
ビルド後に「現在のディレクトリと git status を確認してください」と依頼し、実行したコマンドと返ってきた結果を見比べます。次に同じ語を rg で検索してください。
04|30秒で復習
- 動作 → 検索 → ソースの順に読む。
- workspace・package・crate を区別する。
- 実行ファイルと認証・履歴は別のもの。