Codex 入門 第7回
codex exec で作業を自動で実行する(CSV の集計)

この記事でわかること
- codex exec の使い方と、対話の画面との違い
- ファイルを作らせるときの --sandbox workspace-write
- 結果をファイルに残す方法と、使うときの注意
確認した環境: Codex CLI 0.162.1(GPT-6.1-Sol・API キーで利用)/ 撮影は Linux のターミナル / 2026年10月11日に確認
codex exec は、Codex に 1 行のコマンドで作業を任せる使い方です。画面でやりとりせずに最後まで進むので、スクリプト(コマンドをまとめて書いたファイル)や CI(コードを変えるたびにテストなどを自動で動かす仕組み)からも使えます。この記事では、家計簿の CSV を集計して、表のファイルを作ってもらった例で説明します。
codex exec とは
ふだんの codex は、画面で Codex とやりとりしながら進めます。codex exec は、依頼文を付けて実行すると、途中で確認を求めずに最後まで進みます。

codex(対話) |
codex exec |
|
|---|---|---|
| 進め方 | 画面でやりとりしながら進める | 依頼文を付けて実行すると、最後まで進む |
| 途中の確認 | 権限の設定に応じて確認が出る | 確認を求めない(approval: never) |
| 何も付けないときの権限 | Ask for approval(Git で管理しているフォルダのとき) | 読むだけ(read-only) |
| 結果の出かた | 画面に表示される | 経過は標準エラー出力、最後の回答だけが標準出力に出る |
標準出力はコマンドの結果が出る通り道、標準エラー出力はエラーや経過が出る別の通り道です。ターミナルではどちらも画面に表示されますが、ファイルに保存するときなどは分けて扱えます。
Git のリポジトリ(Git で管理しているフォルダ)の外では、codex exec は止まります。大事なファイルを壊さないための仕組みです。安全だと分かっているときだけ、--skip-git-repo-check を付けて動かせます。
CSV を集計してもらう
編集部では、家計簿の CSV(expenses.csv)があるフォルダ ~/kakeibo で試しました。CSV は日付・費目・金額・メモの 4 列です。9 行目(見出しの行を 1 行目と数える)だけ、金額が空欄になっています。
日付,費目,金額,メモ
2026-09-01,食費,1280,スーパー
2026-09-02,交通費,420,電車
2026-09-03,食費,860,昼ごはん
2026-09-05,日用品,1980,洗剤など
2026-09-08,食費,3420,まとめ買い
2026-09-12,交通費,1500,バス
2026-09-15,趣味,4800,本
2026-09-25,食費,,金額を書き忘れ
2026-09-20,食費,980,パン屋
2026-10-01,食費,1450,スーパー
2026-10-03,交通費,420,電車
2026-10-04,日用品,690,ティッシュ
-
CSV があるフォルダに移る
cd ~/kakeibo -
codex exec に依頼文を付けて実行する
codex exec --sandbox workspace-write "expenses.csv を月ごと・費目ごとに集計して、Markdown の表にした summary.md を作ってください"
実行したコマンド。① codex exec ② ファイルの作成を許すオプション撮影・作図: 編集部 codex execは、何も付けないと読むだけで動きます。今回はファイルを作ってもらうので、②の--sandbox workspace-writeを付けて、作業フォルダの中への書き込みを許しました。 -
終わるまで待って、結果を確かめる
Codex は Python のコードを書いて集計し、
summary.mdを作りました。①は、作った表をそのまま表示したところです。②の「codex」の下が最後の回答で、作ったファイルと、空欄の 9 行目を集計から外したことが報告されています。
作業が終わったときの画面。① 作った表 ② 最後の回答 ③ 使ったトークンの数撮影・作図: 編集部 ③は、この作業で使ったトークン(AI が文章を処理するときの単位)の数です。編集部の環境では 17,342 でした。
できた summary.md
できた summary.md には、「月別・費目別の支出集計」という見出しと、「集計元: expenses.csv。金額の単位は円です。」という説明のあとに、次の表が書かれていました。
| 月 | 交通費 | 日用品 | 趣味 | 食費 | 合計 |
|---|---|---|---|---|---|
| 2026-09 | 1,920 | 1,980 | 4,800 | 6,540 | 15,240 |
| 2026-10 | 420 | 690 | 0 | 1,450 | 2,560 |
| 合計 | 2,340 | 2,670 | 4,800 | 7,990 | 17,800 |
表の下には、次の 2 つの注記がありました。
- ※
expenses.csvの 9 行目(2026-09-25、食費)は金額が空欄のため、集計から除外しました。 - ※ 表の 0 は、その月に集計対象の支出がない費目を示します。
編集部で元の CSV と照らし合わせたところ、月ごと・費目ごとの合計はすべて合っていました。金額が空欄の 9 行目は、0 円として数えずに集計から外し、そのことを表の下に書いています。
よく使うオプション
| オプション | すること |
|---|---|
--sandbox read-only |
読むだけ(何も付けないときと同じ) |
--sandbox workspace-write |
作業フォルダの中の編集と、ふつうのコマンドの実行を許す |
--sandbox danger-full-access |
制限なし。隔離した CI の環境やコンテナの中だけで使う |
-o ファイル名 |
最後の回答をファイルにも書く(--output-last-message と同じ) |
--json |
経過を JSON Lines(1 行に 1 つの JSON)で出す。ほかのプログラムで読むときに使う |
--ephemeral |
会話の記録をパソコンに残さない |
--skip-git-repo-check |
Git のリポジトリの外でも動かす(安全なときだけ) |
-m モデル名 |
モデルを指定する |
codex exec は、codex e と短く書くこともできます。
結果をファイルに残す・ほかのコマンドとつなぐ
最後の回答だけが標準出力に出るので、tee(画面に出しながらファイルにも書くコマンド)で、そのまま保存できます。次の公式の例は、直近 10 件のコミットからリリースノートを作る依頼です。
codex exec "generate release notes for the last 10 commits" | tee release-notes.md
ほかのコマンドの結果をパイプ(|)で渡すと、依頼の追加の材料になります。次の公式の例は、テストの失敗をまとめて、いちばん小さい直し方を提案してもらう依頼です。
npm test 2>&1 \
| codex exec "summarize the failing tests and propose the smallest likely fix" \
| tee test-summary.md
依頼文そのものをファイルからパイプで渡すときは、依頼文の代わりに - を書きます。
cat prompt.txt | codex exec -
続けて頼む
codex exec の会話も保存されます。直前の codex exec の続きを頼むときは、resume --last を使います。次の公式の例では、1 行目で変更のレビューを頼み、2 行目で、見つかった問題を直してもらっています。
codex exec "review the change for race conditions"
codex exec resume --last "fix the race conditions you found"
使うときの注意
--sandbox danger-full-accessは、隔離した CI のランナー(実行用の機械)やコンテナなど、管理された環境の中だけで使います。- CI で使うときは、API キーをジョブ全体の環境変数に置かないよう、公式のドキュメントが注意しています。同じジョブのビルドのスクリプトなどから読まれるおそれがあるためです。GitHub Actions では、公式の Codex GitHub Action(
openai/codex-action)を使います。 codex execは、ChatGPT の Plus・Pro・Business・Enterprise・Edu のプランでも、API キーでも使えます。API キーで使ったぶんは、OpenAI の API の料金で請求されます。
次の回では、Codex を VS Code の拡張機能とクラウド(Codex Cloud)で使う方法を説明します。
参考にした公式の情報
この記事は、ハック!でAI編集部が AI を使って執筆しました。画面の画像は、編集部の検証環境で実際に操作して撮影したものです(引用の画像は出典を記載しています)。内容の誤りはお問い合わせからお知らせください。
連載
Codex 入門