ライフスタイル

codex exec とスクリプト連携

codex exec は非対話で一回のタスクを実行します。通常は stderr に進捗、stdout に最終回答、--json では一行ずつ JSON のイベントが出ます。

読了目安 15 分 · 操作 20 分

作業の流れを表す図です。製品画面の画像ではありません。
画像:Mokaair (© Mokaair)
この記事の目次
  1. 目標と準備
  2. 手順1:実行する入口を確認する
  3. 手順2:独立した入力を用意する
  4. 手順3:出力を保存し、直後に終了状態を記録する
  5. 手順4:失敗を回答として採用しない
  6. 問題の切り分け・復元・次の学習

目標と準備

この段落の教材・資料:

手順1:実行する入口を確認する

codex exec は端末コマンドで、デスクトップ会話のスラッシュコマンドではありません。Windows は PowerShell、macOS は Terminal、Linux は端末を使います。WSL では内部で導入・認証し、Windows のログインが同期済みとは考えません。デスクトップや IDE の端末でも実行できます。携帯の会話はこのローカルプロセスではなく、CLI を実行できる PC または管理された遠隔環境が必要です。各 OS で次の2行を実行し、実版がフラグに対応するか確認します。

CLI 版と exec の説明を確認 · sh
codex --version
codex exec --help
入口本実習用途
端末codex exec非対話処理を1回開始
依頼引数Read tasks.md…エージェントに目的を指定
stdout最終回答テキストとして保存
stderr進行・診断文字があるだけで失敗とは限らない
終了状態整数0 は正常終了だが回答の検証も必要

編で stdout の形式を変えます。ここでは普通の文字列を使い、診断が空か、回答に Done とあるかだけで成功を決めません。

手順2:独立した入力を用意する

練習場所に新しい exec-lab を作り、エディターで開きます。同名の場所に既存データがあれば別の空フォルダーを選びます。UTF-8 の tasks.md に下記を保存します。正式プロジェクト、非公開ログ、利用者ディレクトリ全体は使わず、手で検算できる小さな一覧で十分です。そのフォルダーの端末で Git を初期化します。コミット、リモート、GitHub アカウントは不要です。

exec-lab/tasks.md · markdown
# Practice tasks
Revision: exec-practice-1

- [x] Read the guide
- [ ] Create a practice file
- [ ] Verify the result
全 OS で exec-lab 内から実行 · sh
git init
git status --short

tasks.md が未追跡と表示されるはずです。初期化は CLI の作業場所確認を満たすだけで、アップロードしません。版 exec-practice-1、総数3、完了1、未完了2を手元に控えます。次の依頼には答えを書かず、入力を読んだ結果か確認します。他のファイルが見える場合はで現在地を調べます。

手順3:出力を保存し、直後に終了状態を記録する

自分の OS の組を選びます。report-01.md、stdout-01.txt、stderr-01.log(macOS/Linux は tasks-before.md も) が未作成か確認し、再実習では02に変えて古い回答との混同を避けます。読み取り専用サンドボックスはエージェントの編集を制限しますが、shell のリダイレクトと -o は指定した報告を書きます。--ephemeral はセッション保存を省くだけで、利用枠を消費しない、またはこの3ファイルを作らないという意味ではありません。

Windows PowerShell · powershell
$practiceBefore = (Get-FileHash -LiteralPath tasks.md -Algorithm SHA256).Hash
codex exec --sandbox read-only --ephemeral -o report-01.md 'Read tasks.md. Report its revision and the total, completed and pending checkbox counts. Do not edit input files or use external tools.' 1> stdout-01.txt 2> stderr-01.log
$practiceExit = $LASTEXITCODE
$practiceExit
Get-Content -LiteralPath report-01.md
$practiceBefore -eq (Get-FileHash -LiteralPath tasks.md -Algorithm SHA256).Hash
macOS/Linux shell · sh
cp tasks.md tasks-before.md
codex exec --sandbox read-only --ephemeral -o report-01.md 'Read tasks.md. Report its revision and the total, completed and pending checkbox counts. Do not edit input files or use external tools.' > stdout-01.txt 2> stderr-01.log
practice_exit=$?
printf '%s\n' "$practice_exit"
cat report-01.md
cmp tasks-before.md tasks.md

依頼中の external tools は外部サービスを指し、ローカルの読取りツールで tasks.md を読めます。次の外部コマンドに上書きされる前に終了状態を保存します。成功条件は0終了、正しい版と3/1/2、入力の不変です。PowerShell の最後は True、macOS/Linux の cmp は一致なら無出力で0終了です。回答の言語・表現が違っても値と根拠が正しければ合格です。

手順4:失敗を回答として採用しない

全 OS の無効引数実習 · sh
codex exec --sandbox invalid 'Read tasks.md'

引数解析で拒否され、新しいモデル回答は出ないはずです。直後に PowerShell は $LASTEXITCODE、macOS/Linux は echo $? を確認し、0以外を期待します。前回の report-01.md が残っていても今回の成功証拠にはなりません。read-only に直して再実行するなら新しい出力名で状態を保存します。権限やサンドボックスを迂回してエラーを隠さず、引数・認証・利用枠・入力欠如を分けて修正します。

結果は二行で記録します。読取り実行は実際の出力名・終了値・件数、無効フラグは「引数解析失敗、新回答なし」とします。report-01.md が残ることは旧ファイルの保存だけを示します。モデルを未実行ならその欄を未実行とし、無効フラグだけ独立して試せます。

問題の切り分け・復元・次の学習

codex が見つからなければ導入編で PATH を調べ、ログインを繰り返しません。Git 場所エラーでは exec-lab と git status を確認し、すぐチェックを省略しません。認証・利用枠エラーは codex login status との入口で調べます。診断中の資格情報、利用者パス、非公開依頼は公開しません。対話承認が必要なら対話モードで必要な権限を確認し、非対話処理の範囲を小さくします。

今回の終了状態と検算結果を保存し、tasks.md を再確認します。片付けるなら自分が作った report、stdout、stderr と macOS/Linux の tasks-before.md だけをファイル管理画面で選びます。プロジェクト全体や未追跡ファイル全部を消しません。これで検証可能な読み取り専用処理を終え、次は構造化出力の検証、その後 へ進みます。フラグは公式文書と CLI help で確認しており、参考スクリプトの合格が各利用者のモデル実行成功を意味するわけではありません。

30. codex exec とスクリプト連携 — 作業の流れを表す図です。製品画面の画像ではありません。 Prompt → codex exec → JSONL / report
30. codex exec とスクリプト連携 — 作業の流れを表す図です。製品画面の画像ではありません。 Prompt → codex exec → JSONL / report · 画像:Mokaair (© Mokaair)
詳しい説明を読む

Prompt to codex exec to JSONL / report

総目次へ

  • ライフスタイル

    Codex 学習ガイド:全記事の目次

    導入と最初のタスクから MD の指示、高度な連携まで、60 レッスン・十単元を予定しています。習熟度、環境、目的、コマンドで次の記事を探せます。未公開の記事には状態を表示します。

  • ライフスタイル

    Worktree とタスクの分離

    Worktree は一つの Git リポジトリに別ブランチの作業場所を作ります。ファイルは分かれても DB、ポート、外部サービスは共有される場合があります。

  • ライフスタイル

    実践:小さな Web サイトを作る

    brief.md から Small Steps のタスクサイトを計画・制作し、追加、完了、削除、絞り込み、ローカル保存を実装します。HTML、CSS、データ関数、画面イベント、テストを分け、Node とブラウザーで検証して再起動・復元の手順を残します。

  • ライフスタイル

    使用量と効率:やり直しを減らす

    条件、モデル設定、時間、成果を記録し、不要な再試行と過剰な文脈を減らします。

最新の旅の情報・ガイド

出典

ライフスタイル