codex execの使い方|AIエージェントを非対話モードで定期実行する

codex execの使い方

最近codex execというCodex CLIを非対話モードで実行できるコマンドを知りました。

SNSでよくAI自動化の例が上がっており、それをどうやってるのか全然わからなかったんですが、この非対話モードを処理に組むことでいろいろできるみたいです。

内部の仕組みまではわかりませんが、とりあえずAIエージェントを使った定期実行はできたので、今回はそれを紹介します。

なお、agy、claude、grokなどにも非対話モードはあるので、codex以外でも同じことが可能です。

codex execとは?

codex exec(非対話モード)は、画面に直接入力せず、シェルやスクリプトからCodexを実行できるモードです。

対話モードのように画面を開かず、指示を1回渡すと処理して終了します。

スクリプトやCIへ組み込む用途を想定して用意されているようです。

主な特徴

  • 画面を開かず、コマンドから直接実行できる
  • シェルやスクリプトの処理に組み込める
  • 実行結果をファイルやJSONで受け取れる
  • タスクスケジューラやcronと組み合わせて定期実行できる
Developer commands | ChatGPT Learn
Reference for commands and slash commands in Codex developer surfaces

codex execの使い方

Codex CLIをインストールする

Codex CLIは、ターミナルからAIエージェントを使えるものです。

・インストールコマンド(Node.jsが必要です)

npm install -g @openai/codex

インストール後、ターミナルで codex と入力すると起動できます。

これは画面上で指示を入力してやり取りする対話モードです。

Codex CLIの対話モードの画面

スクリプトから呼び出す

例えばPythonだったらこんな感じで実行できます。

・hello.py

import subprocess

subprocess.run([
    r"C:\Users\UsersName\Roaming\npm\codex.cmd",
    "exec",
    "--skip-git-repo-check",
    "hello"
])

・実行

hello.pyからcodex execを実行した結果

プログラムの中にcodexを使う処理を組めるので、定期実行と組み合わせればいろいろ自動化できるってことみたいです。

定期実行で使う主なオプション

codex execにはいくつかオプションがあります。

オプション内容
–skip-git-repo-checkGitリポジトリ以外のフォルダでも実行できるようにする
-o, –output-last-message最後の応答を指定したファイルへ書き出す
-s, –sandboxファイル書き込みなどの権限を指定する
–json実行中のイベントをJSON形式で出力する

codex execで定期実行する

やることをAIに投げる

codex execの使用例として、簡単なプログラムをAIに作って貰いました。

毎日朝9時に日付に関する雑学を出力してもらう→日付.txtで保存してもらうというもの。

AIに頼めば作ってくれます。

毎朝9時に日付に関連したトピックを5つcodexに出力してもらいたい
codexに日付に関連したトピックを5つ出力してもらう
codex exec(非対話モード)で実行する
タスクスケジューラで毎日朝9時に定期実行できるようにする
実行時のターミナルは非表示にする
output/YYYY-MM-DD.txtに保存する
この仕組みを作ってください

結構AIはちゃんとReadmeとか作ったりするので、最低限で良ければ「最小で実装してください」とか入れとくと良いかもです。

実行すると以下のファイルを作ってくれました。

codex execで作成された定期実行のファイル構成

outputが出力先、promptがcodexに渡すもの、処理がrun_codex.ps1です。

試しに手動で実行してみるとちゃんと出力できました。

ただ一部情報は間違ってます。

あとで直す処理追加するので一旦このまま進めます。

※codex_exec_sample\output\2026-05-11.txtの中身

**モーツァルトの初演**
1784年5月11日、モーツァルトのピアノ協奏曲第14番がウィーンで初演されました。
演奏会の中心に作曲者本人が立つ時代を象徴する出来事の一つです。

**ディープ・ブルーの勝利**
1997年5月11日、IBMのスーパーコンピュータ「ディープ・ブルー」がガルリ・カスパロフとの再戦に勝利しました。
AIがチェス世界王者を破った象徴的な日として広く記憶されています。

**サルバドール・ダリの誕生日**
1904年5月11日、スペインの画家サルバドール・ダリが生まれました。
『記憶の固執』で知られ、溶ける時計のイメージは20世紀美術の代表的な象徴になりました。

**ミネソタの大竜巻**
1953年5月11日、アメリカのテキサス州ウェーコで大規模な竜巻被害が発生しました。
気象観測や警報体制の重要性を強く印象づけた災害の一つです。

**盲導犬の日**
5月11日は日本で「盲導犬の日」とされています。
1967年に日本初の盲導犬育成団体が設立されたことに由来します。

タスクスケジューラに登録する

あとはこのrun_codex.ps1をタスクスケジューラに登録すれば定期実行が可能です。

登録もAIに言えばやって貰えますが、不安ならコマンド出してもらってください。

Register-ScheduledTask `
  -TaskName "CodexDailyTopics" `
  -Action (New-ScheduledTaskAction -Execute "powershell.exe" -Argument '-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File "E:\my_dev\codex_exec_sample\run_codex.ps1"') `
  -Trigger (New-ScheduledTaskTrigger -Daily -At 9:00AM)

これでタスクスケジューラに登録できました。

タスクスケジューラに登録されたタスク

PCさえ起動しとけば、ほったらかしで毎日その日にあった雑学を溜めてくれます。

MacやLinuxの場合は、cronやlaunchdに登録すれば同じことができます。

レビュー処理を追加する

一部情報が間違っていたので、別途レビューさせる処理を追加します。

出力の処理と一緒にやると文脈が混ざって精度が落ちるようなので、新しいcodex execを呼んでそこで処理して貰う形にします。

  • codex execで雑学5つ出力する
  • 新しいcodex execを立ち上げて、雑学が合ってるかレビューさせる

レビュー用のreview_prompt.txt作って、それを実行する処理をrun_codex.ps1に追加しました。

これで同じ定期実行内で出力・レビュー両方できます。

review_prompt.txtを追加したファイル構成

レビューの処理だけ実行してみると、ちゃんとソース付きで修正してくれました。

**モーツァルトの初演**
1784年5月11日、モーツァルトのピアノ協奏曲第14番がウィーンで初演されました。
演奏会の中心に作曲者本人が立つ時代を象徴する出来事の一つです。

**ディープ・ブルーの勝利**
1997年5月11日、IBMのスーパーコンピュータ「ディープ・ブルー」がガルリ・カスパロフとの再戦に勝利しました。
AIがチェス世界王者を破った象徴的な日として広く記憶されています。

**サルバドール・ダリの誕生日**
1904年5月11日、スペインの画家サルバドール・ダリが生まれました。
『記憶の固執』で知られ、溶ける時計のイメージは20世紀美術の代表的な象徴になりました。

**ミネソタの大竜巻**
1953年5月11日、アメリカのテキサス州ウェーコで大規模な竜巻被害が発生しました。
気象観測や警報体制の重要性を強く印象づけた災害の一つです。

**盲導犬の日**
5月11日は日本で「盲導犬の日」とされています。
1967年に日本初の盲導犬育成団体が設立されたことに由来します。

## Review

– モーツァルトの初演
NG: 「1784年5月11日に初演」は確認できません。
ピアノ協奏曲第14番 K.449 は、1784年3月17日にウィーンでモーツァルト自身が演奏した記録が確認できます。
参考URL: https://www.mozartportal.com/ja/composition/kv-449-piano-concerto-no-14-in-e-flat-first-ployer

– ディープ・ブルーの勝利
OK: 1997年5月11日にDeep Blueがガルリ・カスパロフとの再戦に勝利した出来事として整合しています。

– サルバドール・ダリの誕生日
OK: サルバドール・ダリが1904年5月11日生まれという点は正確です。

– ミネソタの大竜巻
NG: 見出しと本文の地名が一致していません。
本文で述べているのはミネソタ州ではなく、1953年5月11日に米テキサス州ウェーコで発生した竜巻です。
参考URL: https://www.weather.gov/fwd/wacotormay1953

– 盲導犬の日
NG: 日本で5月11日が「盲導犬の日」とする根拠は確認できません。
日本盲導犬協会の設立日は1967年8月10日で、盲導犬に関する記念日としては「国際盲導犬の日」が4月最終水曜日です。
参考URL: https://www.moudouken.net/news/article/0_news_77/

まとめ

これで雑学出力→情報の正誤判定まで定期実行できるようになりました。

もう少し実用的にするなら、こんなことも可能です。

  • レビューと照会して正しい情報に修正する
  • 正しい情報からX用ポスト文作成してもらう
  • ポストに合う画像を生成してもらう
  • 画像と文章をXへポスト

ただtxtよりmd・jsonの方が扱いやすいだろうし、情報も量が多くなるならDBとかの方が管理しやすいです。

なのでこういう感じでコンテンツ作るなら、仕組みはもうちょっと詰めた方が良いかもしれません。

あとこういうのは既にやってる人が多いし、需要があるかどうかは別です。

レビューしてもらっても100%正しいとは限らないので、ある程度自動化できるものの、どこかで人間のチェックは必要だと思います。

とはいえcodex execが便利なのは間違いないし、使えると日々のタスクをAIに任せたり、アイディア次第で面白いコンテンツが作れたりするので、興味ある方は試してみてください。

以上codex execの使い方を紹介しました。

参考になれば幸いです。

タイトルとURLをコピーしました