本文へ移動
ハック!でAI

Codex 入門 第7回

codex exec で作業を自動で実行する(CSV の集計)

ハック!でAI編集部AIにより執筆読了 約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 は、依頼文を付けて実行すると、途中で確認を求めずに最後まで進みます。

1 実行する(codex exec 依頼文)、2 Codex が作業する、3 結果が出る が矢印でつながり、その下に何も付けないときの設定(read-only・never・Git のリポジトリの外では止まる)と、ファイルを作らせるときの --sandbox workspace-write が書かれた図
codex exec の流れ。依頼文を付けて実行すると Codex が作業し、最後の回答だけが標準出力に出る撮影・作図: 編集部
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,ティッシュ
  1. CSV があるフォルダに移る

    ターミナル
    cd ~/kakeibo
    
  2. codex exec に依頼文を付けて実行する

    ターミナル
    codex exec --sandbox workspace-write "expenses.csv を月ごと・費目ごとに集計して、Markdown の表にした summary.md を作ってください"
    
    ターミナルで codex exec --sandbox workspace-write に続けて、expenses.csv を月ごと・費目ごとに集計して、Markdown の表にした summary.md を作ってください と入力している
    実行したコマンド。① codex exec ② ファイルの作成を許すオプション撮影・作図: 編集部

    codex exec は、何も付けないと読むだけで動きます。今回はファイルを作ってもらうので、②の --sandbox workspace-write を付けて、作業フォルダの中への書き込みを許しました。

  3. 終わるまで待って、結果を確かめる

    Codex は Python のコードを書いて集計し、summary.md を作りました。①は、作った表をそのまま表示したところです。②の「codex」の下が最後の回答で、作ったファイルと、空欄の 9 行目を集計から外したことが報告されています。

    月別・費目別の支出集計の表(2026-09 は 15,240、2026-10 は 2,560、合計 17,800)と、summary.md を作成しました、金額が空欄の9行目は集計から除外し、注記しました という回答、tokens used 17,342 が表示されている
    作業が終わったときの画面。① 作った表 ② 最後の回答 ③ 使ったトークンの数撮影・作図: 編集部

    ③は、この作業で使ったトークン(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)で使う方法を説明します。

参考にした公式の情報

XFacebookはてブLINE

この記事は、ハック!でAI編集部が AI を使って執筆しました。画面の画像は、編集部の検証環境で実際に操作して撮影したものです(引用の画像は出典を記載しています)。内容の誤りはお問い合わせからお知らせください。

連載

Codex 入門
全 8 回の目次
  1. 1Codex とは? CLI・IDE 拡張・クラウドの違い
  2. 2Codex CLI をインストールしてサインインする
  3. 3Codex に最初の依頼をする(エラーの原因を調べて直す)
  4. 4Codex の権限の設定(/permissions)と確認の画面
  5. 5AGENTS.md で Codex にルールを伝える(/init)
  6. 6Codex のよく使うコマンドと設定(config.toml)
  7. 7codex exec で作業を自動で実行する(CSV の集計)(この記事)
  8. 8Codex を VS Code とクラウドで使う