Codex exec コマンド使用集
npx @openai/codex exec --skip-git-repo-check を軸にした、コピペで使える実用コマンド集です。 特に 非対話(自動化)向けの5オプション ―― --skip-git-repo-check / --output-last-message (-o) / --json / --output-schema / --ephemeral ―― を中心にまとめています。
- 前提:
codex login statusがLogged inであること - 表記: 都度ダウンロードの
npx @openai/codex execで記載。グローバル導入済みならcodex execに置き換え可 -
--skip-git-repo-check… Git リポジトリ外でも止まらず実行(自動化の基本フラグ。以下ほぼ全例に付与)
0. まず体感する(最小・画面出力)
# 質問して、答えを画面に出すだけ
npx @openai/codex exec --skip-git-repo-check "こんにちは、何ができる?"
# ファイルを読ませて分析(読むだけ=安全)
npx @openai/codex exec --skip-git-repo-check -s read-only \
"/tmp/parts.csv の欠損セルを『行番号・列名』で一覧にして"
-oを付けない=答えが画面に出る(体感向き)。付ける=ファイルに残る(自動化向き)。
1. --output-last-message (-o) — 最終回答だけをファイルに残す
ヘッダーやログを混ぜず、エージェントの最終回答テキストだけを指定ファイルに書き出します。自動化で最も使う形。
# 結果をファイルへ
npx @openai/codex exec --skip-git-repo-check -o /tmp/out.md \
"/tmp/parts.csv の問題点と改善案を3つ挙げて"
cat /tmp/out.md
# 日付名で永続フォルダに保存(/tmp は再起動で消えるため)
mkdir -p ~/codex-out
OUT=~/codex-out/check-$(date +%Y%m%d-%H%M%S).md
npx @openai/codex exec --skip-git-repo-check -s read-only -o "$OUT" \
"/tmp/parts.csv の欠損行を一覧にして"
echo "保存: $OUT"
2. --json — イベントを JSONL でストリーム出力
進捗・ツール呼び出し・最終結果などを 1行1イベントの JSONL で標準出力に流します。ログ収集・監視・パイプ処理向き。
# JSONL をそのまま見る
npx @openai/codex exec --skip-git-repo-check --json \
"/tmp/parts.csv を要約して"
# JSONL をファイルに保存して後で解析
npx @openai/codex exec --skip-git-repo-check --json \
"/tmp/parts.csv を要約して" > /tmp/events.jsonl
# jq で必要なイベントだけ抽出(例: type を一覧)
jq -r '.type' /tmp/events.jsonl | sort | uniq -c
# 最終メッセージらしきものだけ拾う例(フィールド名は実バージョンで要確認)
jq -rc 'select(.type|test("message|response|item")) ' /tmp/events.jsonl | tail
--json(機械可読のストリーム)と-o(人間可読の最終回答ファイル)は併用可。 監視は--json、成果物は-o、と役割を分けると扱いやすい。
3. --output-schema — 最終回答の構造を JSON で固定する
JSON Schema ファイルを渡すと、最終回答をその構造の JSON に強制できます。後続プログラムでパースする自動化に最適。
# 1) スキーマを用意(欠損チェック結果の例)
cat > /tmp/schema.json <<'EOF'
{
"type": "object",
"properties": {
"total_rows": { "type": "integer" },
"issues": {
"type": "array",
"items": {
"type": "object",
"properties": {
"line": { "type": "integer" },
"column": { "type": "string" },
"problem":{ "type": "string" }
},
"required": ["line", "column", "problem"]
}
}
},
"required": ["total_rows", "issues"]
}
EOF
# 2) スキーマに沿った JSON を出させて、そのままファイルへ
npx @openai/codex exec --skip-git-repo-check -s read-only \
--output-schema /tmp/schema.json \
-o /tmp/result.json \
"/tmp/parts.csv の欠損セルを issues に列挙して。total_rows はヘッダーを除く行数"
# 3) 構造化されているので jq で機械処理できる
jq '.issues | length' /tmp/result.json # 問題件数
jq -r '.issues[] | "\(.line)行目: \(.column) が \(.problem)"' /tmp/result.json
--output-schema+-o result.jsonの組み合わせが、自動化パイプラインの定番。 「Codex に判断させ → JSON で受け取り → スクリプトで分岐」がそのまま組める。
4. --ephemeral — セッションを保存しない(使い捨て実行)
セッションファイルをディスクに残しません。定期バッチや大量実行で履歴を溜めたくないときに。
# 使い捨てで1回だけ実行
npx @openai/codex exec --skip-git-repo-check --ephemeral -s read-only \
-o /tmp/out.md "/tmp/parts.csv を要約して"
--ephemeralを付けるとresume(続き)はできなくなる点に注意。 単発・冪等なジョブ向き。対話の続きを想定するなら付けない。
5. 入力の渡し方バリエーション
# 引数で渡す(基本)
npx @openai/codex exec --skip-git-repo-check "指示文"
# 標準入力(パイプ)で渡す。末尾の - で stdin を明示
cat /tmp/parts.csv | npx @openai/codex exec --skip-git-repo-check -s read-only \
"このCSVの欠損行を一覧にして" -
# 長い指示をファイルから渡す
npx @openai/codex exec --skip-git-repo-check - < /tmp/prompt.txt
# 画像を添付して質問
npx @openai/codex exec --skip-git-repo-check -i /tmp/diagram.png \
"この図の構成を説明して"
6. 作業場所と権限
# 作業ルートを指定(移動せず対象ディレクトリを変える)
npx @openai/codex exec --skip-git-repo-check -C /var/www/data -s read-only \
"このフォルダの *.csv を点検して問題点を挙げて"
# 読むだけ(調査・分析)
npx @openai/codex exec --skip-git-repo-check -s read-only "data.csv を分析して"
# 書き込み許可(成果物を作らせる)
cd /tmp
npx @openai/codex exec --skip-git-repo-check -s workspace-write \
"parts.csv の欠損を補完した parts_fixed.csv を作って"
# モデル指定
npx @openai/codex exec --skip-git-repo-check -m gpt-5.5 "..."
-s モード |
できること | 使いどころ |
|---|---|---|
read-only |
読むだけ | 調査・分析・チェック(まずこれ) |
workspace-write |
作業場所+ /tmp に書き込み |
ファイル生成・修正 |
danger-full-access |
制限なし | 原則避ける。隔離環境のみ |
7. 自動化レシピ(オプション組み合わせ)
7-1. 結果ファイルを永続保存する単発バッチ
mkdir -p ~/codex-out
OUT=~/codex-out/parts-check-$(date +%Y%m%d-%H%M%S).md
npx @openai/codex exec --skip-git-repo-check --ephemeral -s read-only \
-o "$OUT" \
"/var/www/data/parts.csv の欠損行と型番フォーマット不正を一覧にして"
echo "保存しました: $OUT"
7-2. 構造化 JSON を受け取り、件数で分岐する
npx @openai/codex exec --skip-git-repo-check -s read-only \
--output-schema /tmp/schema.json -o /tmp/result.json \
"/var/www/data/parts.csv の欠損セルを issues に列挙して"
COUNT=$(jq '.issues | length' /tmp/result.json)
if [ "$COUNT" -gt 0 ]; then
echo "⚠️ 欠損 ${COUNT} 件。詳細:"
jq -r '.issues[] | " \(.line)行目: \(.column) が \(.problem)"' /tmp/result.json
exit 1 # 後続の通知ジョブへ
else
echo "✅ 欠損なし"
fi
7-3. JSONL ログを残しつつ最終回答も保存
TS=$(date +%Y%m%d-%H%M%S)
npx @openai/codex exec --skip-git-repo-check -s read-only \
--json -o ~/codex-out/answer-$TS.md \
"/var/www/data/parts.csv を点検して問題点を挙げて" \
> ~/codex-out/events-$TS.jsonl
# answer-*.md = 人が読む / events-*.jsonl = 機械が解析
8. JS7 など無人実行で詰まったら(要点)
-
codex: command not found(returnCode=127) … JS7 は非ログインシェルで PATH に codex が無い。ジョブ冒頭で PATH を組み立て、codexを解決する(→ 連携ガイドの「共通プリアンブル」参照)。 -
Not inside a trusted directory ...…--skip-git-repo-checkを付ける。 -
401 Unauthorized… 認証エラー。codex login statusを確認、別ユーザ実行ならCODEX_HOMEか API キーを合わせる。 -
対象ファイルが見つからない … 無人実行では作業ディレクトリが変わる。
-C /pathで明示するかcdする。
付録: 自動化向けオプション早見
| オプション | 役割 | 典型用途 |
|---|---|---|
--skip-git-repo-check |
Git リポジトリ外でも実行 | 自動化の基本フラグ |
-o, --output-last-message <FILE> |
最終回答だけをファイルに出力 | 成果物の保存 |
--json |
イベントを JSONL でストリーム出力 | ログ・監視・パイプ |
--output-schema <FILE> |
最終回答を JSON 構造に固定 | プログラムでのパース・分岐 |
--ephemeral |
セッションを保存しない | 定期バッチ・使い捨て実行 |
-s, --sandbox <MODE> |
権限(read-only / workspace-write / danger-full-access) | 安全制御 |
-C, --cd <DIR> |
作業ルート指定 | 対象フォルダの明示 |
-m, --model <MODEL> |
モデル指定 | 品質/速度の調整 |
-i, --image <FILE> |
画像添付 | 図・スクショの読み取り |
作成日: 2026-06-21 / 対象: OpenAI Codex v0.141.x。--json / --output-schema の正確なフィールド名・出力形は、お使いのバージョンの実出力で確認してください。