0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Codex exec コマンド使用集(無人実行)

0
Posted at

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 statusLogged 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 の正確なフィールド名・出力形は、お使いのバージョンの実出力で確認してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?