[{"data":1,"prerenderedAt":622},["ShallowReactive",2],{"content-/codex-sdk-app-server-notes":3,"all-pages-for-dir":620,"og-image-/codex-sdk-app-server-notes":621},{"id":4,"title":5,"body":6,"category":601,"description":602,"extension":603,"meta":604,"navigation":605,"ogImage":606,"path":607,"project_name":608,"published":609,"publishedAt":610,"seo":611,"stem":612,"tags":613,"todo":606,"unpublished":609,"updatedAt":606,"__hash__":619},"pages/2026-05-18/codex-sdk-app-server-notes.md","Codex SDK と App Server は何が嬉しいのか",{"type":7,"value":8,"toc":582},"minimark",[9,13,22,29,34,42,45,51,73,80,84,95,98,106,109,116,119,123,126,129,132,149,152,156,159,170,173,196,199,206,210,216,219,222,250,253,256,259,262,328,331,351,357,361,364,375,382,385,406,409,413,480,483,507,510,536,539,546,549,552],[10,11,5],"h1",{"id":12},"codex-sdk-と-app-server-は何が嬉しいのか",[14,15,16,17,21],"p",{},"Codex SDK について、「API key なしでも使える」「ChatGPT のサブスク範囲で動く」という話を見かけた。最初はかなり驚いたが、整理するとこれは ",[18,19,20],"strong",{},"OpenAI API SDK ではなく、Codex CLI をプログラムから操作するための SDK"," だと見た方がよさそうだった。",[14,23,24,25,28],{},"結論から言うと、Codex SDK や App Server は「クラウドアプリから OpenAI API を無料で叩ける抜け道」ではない。むしろ、",[18,26,27],{},"Codex CLI でできる開発作業を、ローカルや信頼済みの実行環境からプログラム制御するための仕組み"," と考えるのが正確だと思う。",[30,31,33],"h2",{"id":32},"codex-sdk-の正体","Codex SDK の正体",[14,35,36,37,41],{},"Codex の TypeScript SDK は、内部で ",[38,39,40],"code",{},"codex"," CLI を起動する。SDK が OpenAI API に直接リクエストするというより、CLI を子プロセスとして立ち上げ、標準入出力で JSONL イベントをやり取りする。",[14,43,44],{},"つまり、できることの本質は CLI と同じ。",[14,46,47,48,50],{},"ただし、人間がターミナルで ",[38,49,40],{}," を叩く代わりに、Node.js から以下を制御できる。",[52,53,54,58,61,64,67,70],"ul",{},[55,56,57],"li",{},"同じ thread で継続実行する",[55,59,60],{},"CI/CD や社内ツールから Codex に作業させる",[55,62,63],{},"streaming event や進捗を受け取る",[55,65,66],{},"structured output を扱う",[55,68,69],{},"自作の修復ループやレビュー支援ツールに組み込む",[55,71,72],{},"CLI の認証済みセッションを再利用する",[14,74,75,76,79],{},"なので、嬉しさは ",[18,77,78],{},"CLI と違う能力を得ることではなく、CLI の Codex 体験を自動化・組み込みしやすくすること"," にある。",[30,81,83],{"id":82},"サブスク範囲で使えるの意味","サブスク範囲で使える、の意味",[14,85,86,87,90,91,94],{},"手元で試す限り、",[38,88,89],{},"OPENAI_API_KEY"," や ",[38,92,93],{},"CODEX_API_KEY"," を消しても、既に Codex CLI でログイン済みなら SDK 経由で動く。これは SDK 独自の認証ではなく、CLI 側のログイン状態を使っているからだと考えられる。",[14,96,97],{},"Codex の認証は大きく分けると次の2系統がある。",[52,99,100,103],{},[55,101,102],{},"ChatGPT ログイン: ChatGPT のプランに紐づく Codex 利用",[55,104,105],{},"API key: OpenAI Platform の従量課金 API 利用",[14,107,108],{},"このため、ローカルの開発環境で「ChatGPT にログイン済みの Codex CLI」を SDK から呼ぶ、という使い方は自然に成立する。",[14,110,111,112,115],{},"ただし、これを ",[18,113,114],{},"自分の SaaS にデプロイして、不特定多数ユーザーに API key なしで使わせる"," という発想にそのまま持ち込むのは危険だと思う。サーバー上に自分の Codex 認証情報を置き、その権限で shell やファイル操作を含むエージェントを動かすことになるからだ。",[14,117,118],{},"用途としては、ローカル開発、社内 runner、CI、個人用自動化などの「信頼済み環境」に寄っている。",[30,120,122],{"id":121},"claude-code-sdk-の代替になるか","Claude Code SDK の代替になるか",[14,124,125],{},"ある程度は代替候補になる。",[14,127,128],{},"特に近いのは、CLI エージェントをプログラムから呼び出して、リポジトリ操作・修正・レビュー・テスト実行を任せる用途。",[14,130,131],{},"たとえば以下のような使い方なら相性がよい。",[52,133,134,137,140,143,146],{},[55,135,136],{},"CI で失敗したテストを Codex に調査させる",[55,138,139],{},"issue やログを渡して修正案を作らせる",[55,141,142],{},"社内のコードレビュー支援ツールに組み込む",[55,144,145],{},"ローカルの定型作業を Codex に任せる",[55,147,148],{},"GitHub Actions や自前 runner から修復ジョブを実行する",[14,150,151],{},"一方で、ユーザー向けアプリに AI 機能を埋め込むなら、Codex SDK よりも OpenAI API、Responses API、Agents SDK の領域だと思う。Codex SDK は「開発作業をするエージェント」を制御する道具であって、一般的なプロダクト内 AI 機能の基盤ではない。",[30,153,155],{"id":154},"codex-app-server-とは何か","Codex App Server とは何か",[14,157,158],{},"Codex App Server も名前だけ見ると「OpenAI がクラウド側に用意しているアプリ用サーバー」に見えるが、そうではない。",[14,160,161,162,165,166,169],{},"実体は、",[38,163,164],{},"codex app-server"," を起動して、クライアントアプリから JSON-RPC で Codex を操作するための仕組み。VS Code 拡張や独自 IDE、ブラウザ UI のような ",[18,167,168],{},"リッチな Codex クライアントを作るためのプロトコル"," と捉えるのがよさそうだ。",[14,171,172],{},"App Server で扱えるものは、たとえば以下。",[52,174,175,178,181,184,187,190,193],{},[55,176,177],{},"thread の作成・継続",[55,179,180],{},"turn の実行",[55,182,183],{},"streaming events",[55,185,186],{},"承認フロー",[55,188,189],{},"会話履歴",[55,191,192],{},"認証状態",[55,194,195],{},"planType や rate limit 状態",[14,197,198],{},"要するに、SDK よりも低レベルで、UI 統合寄りの仕組み。",[14,200,201,202,205],{},"公式にも、CI や自動化には Codex SDK を使うように書かれている。App Server は、単にジョブを走らせるためというより、",[18,203,204],{},"Codex を操作する独自クライアントを作りたい場合"," のものだと考える。",[30,207,209],{"id":208},"app-server-はクラウドで使えるのか","App Server はクラウドで使えるのか",[14,211,212,213,215],{},"クラウド上の VM や社内サーバーで ",[38,214,164],{}," を起動すること自体はできるはずだ。WebSocket transport を使えば、自前のフロントエンドから接続する構成も考えられる。",[14,217,218],{},"ただし、これは OpenAI が提供するマネージド Codex API サーバーではない。",[14,220,221],{},"自分で用意する必要があるものは多い。",[52,223,224,229,232,235,238,241,244,247],{},[55,225,226,228],{},[38,227,40],{}," バイナリ",[55,230,231],{},"実行環境",[55,233,234],{},"workspace",[55,236,237],{},"ファイルシステム",[55,239,240],{},"shell 実行権限",[55,242,243],{},"認証情報",[55,245,246],{},"承認・権限管理",[55,248,249],{},"ネットワーク公開時の認証設定",[14,251,252],{},"さらに、WebSocket transport は experimental / unsupported とされている。外部公開する場合は、かなり慎重に設計しないと危ない。",[14,254,255],{},"そのため、App Server も「クラウド本番アプリから API key なしで Codex を呼べる魔法」ではない。現実的には、remote dev box、社内の開発支援基盤、独自 IDE、信頼済みユーザー向けの開発環境 UI などが主戦場だと思う。",[30,257,258],{"id":258},"使い分け",[14,260,261],{},"自分の中では、ひとまずこう整理した。",[263,264,265,278],"table",{},[266,267,268],"thead",{},[269,270,271,275],"tr",{},[272,273,274],"th",{},"用途",[272,276,277],{},"向いているもの",[279,280,281,290,297,305,312,320],"tbody",{},[269,282,283,287],{},[284,285,286],"td",{},"ローカルで Codex を自動実行したい",[284,288,289],{},"Codex SDK",[269,291,292,295],{},[284,293,294],{},"CI/CD で修復・レビュー・テストを回したい",[284,296,289],{},[269,298,299,302],{},[284,300,301],{},"独自の Codex UI や IDE 連携を作りたい",[284,303,304],{},"Codex App Server",[269,306,307,310],{},[284,308,309],{},"ブラウザから remote dev box の Codex を操作したい",[284,311,304],{},[269,313,314,317],{},[284,315,316],{},"ユーザー向けアプリに AI 機能を入れたい",[284,318,319],{},"OpenAI API / Responses API / Agents SDK",[269,321,322,325],{},[284,323,324],{},"不特定多数にサブスク枠で推論機能を提供したい",[284,326,327],{},"たぶん用途として不適切",[30,329,330],{"id":330},"まとめ",[52,332,333,336,339,342,345,348],{},[55,334,335],{},"Codex SDK は OpenAI API SDK ではなく、Codex CLI をプログラムから操作する SDK",[55,337,338],{},"サブスクで使えるように見えるのは、CLI のログイン済みセッションを使えるため",[55,340,341],{},"CLI と本質的にできることは同じだが、自動化・CI・社内ツールへの組み込みがしやすい",[55,343,344],{},"Codex App Server は独自 Codex クライアントを作るための JSON-RPC サーバー",[55,346,347],{},"クラウドで起動することはできても、OpenAI のマネージド Codex API ではない",[55,349,350],{},"本番のユーザー向け AI 機能には、素直に OpenAI API / Responses API / Agents SDK を使うのが筋",[14,352,353,354,79],{},"いまの理解では、Codex SDK / App Server の嬉しさは ",[18,355,356],{},"「Codex をプロダクトの推論エンジンにすること」ではなく、「開発作業エージェントを自分の開発基盤に組み込むこと」",[30,358,360],{"id":359},"応用-個人向けエージェント運用のひとつの形","応用: 個人向けエージェント運用のひとつの形",[14,362,363],{},"ここで整理した使い分けを、実際に自分の用途に当てはめてみる。",[14,365,366,367,370,371,374],{},"検討中のものに ",[18,368,369],{},"アナリスト予想ビート率ウォッチャー"," がある。米国主要銘柄の四半期決算について、Whisper Beat やガイダンス vs コンセンサスの乖離を毎四半期トラッキングして、Beat-and-Raise / Beat-and-Cut の銘柄を通知してほしい、というやつ。詳細は ",[38,372,373],{},"memo/2026-05-18/earnings-beat-watcher-spec.md","。",[14,376,377,378,381],{},"最初は Anthropic API を従量で叩く構成を考えていたが、",[18,379,380],{},"毎年使う + 毎四半期 80 社程度"," だと API 課金が地味に積み上がる。月額固定費の既製サービス（Benzinga Corporate Guidance API $99 など）も同じ問題で、サブスクが雪だるま式に増える。",[14,383,384],{},"このとき、いまの整理がそのまま使える。",[52,386,387,393,400,403],{},[55,388,389,390],{},"使うのは ",[18,391,392],{},"自分一人だけ",[55,394,395,396,399],{},"走る場所は ",[18,397,398],{},"自分の PC か自宅機","（信頼済み環境）",[55,401,402],{},"認証情報も自分のものだけ",[55,404,405],{},"不特定多数に推論機能を提供するわけではない",[14,407,408],{},"つまり Codex SDK / CLI の典型的なスイートスポットに入っている。",[410,411,412],"h3",{"id":412},"想定構成",[52,414,415,421,431,445,451,474],{},[55,416,417,420],{},[18,418,419],{},"エージェント本体",": Codex CLI + Codex TypeScript SDK",[55,422,423,426,427,430],{},[18,424,425],{},"認証",": ChatGPT サブスクで ",[38,428,429],{},"codex login"," 済み（API key 不要、既存サブスクの範囲）",[55,432,433,436,437],{},[18,434,435],{},"実行基盤",":\n",[52,438,439,442],{},[55,440,441],{},"Phase 1: メイン PC（Windows） + タスクスケジューラで PoC",[55,443,444],{},"Phase 2: 自宅 mini PC（Intel N100 or Raspberry Pi 5） + cron で 24/7 運用",[55,446,447,450],{},[18,448,449],{},"発火",": 日本時間 朝 6:00（米AMC 後）/ 夕方 20:00（米BMO 前）",[55,452,453,436,456],{},[18,454,455],{},"タスク",[457,458,459,462,468,471],"ol",{},[55,460,461],{},"SEC EDGAR から 8-K Exhibit 99.1 を取得",[55,463,464,465,467],{},"Codex SDK で ",[38,466,40],{}," を起動 → 「Outlook セクションを構造化 JSON で返せ」",[55,469,470],{},"Whisper / Street コンセンサスと突き合わせて Beat-and-Raise / Beat-and-Cut フラグを判定",[55,472,473],{},"Slack Webhook で通知、結果は Turso DB に蓄積",[55,475,476,479],{},[18,477,478],{},"クラウドに置くもの",": 蓄積先の Turso DB のみ（読み取りデータだけ、認証情報は出さない）",[410,481,482],{"id":482},"この構成の何がいいか",[52,484,485,498,501,504],{},[55,486,487,488,497],{},"月額追加コストは ",[18,489,490,496],{},[38,491,495],{"className":492},[493,494],"language-math","math-inline","0〜","19","（既存の ChatGPT サブスクで完結、必要なら FMP 無料枠 or $19）",[55,499,500],{},"自分専用 = 信頼済み環境のままで、サーバーに認証情報をばら撒く話にならない",[55,502,503],{},"ルール調整・新銘柄追加は Claude Code 経由で会話的にできる",[55,505,506],{},"5 年運用しても累計サブスク増分はほぼゼロ",[410,508,509],{"id":509},"この構成にしないこと",[52,511,512,520,528],{},[55,513,514,515],{},"VPS / Cloudflare Workers / GitHub Actions に Codex CLI を置く構成は避ける\n",[52,516,517],{},[55,518,519],{},"認証情報リスクと、Codex CLI の動作前提（バイナリ + ログイン済みセッション）に合わない",[55,521,522,523],{},"Codex App Server を WebSocket で外部公開する構成も避ける\n",[52,524,525],{},[55,526,527],{},"experimental / unsupported、信頼境界が曖昧になる",[55,529,530,531],{},"不特定多数向け SaaS にこの仕組みを載せる発想はしない\n",[52,532,533],{},[55,534,535],{},"メモ本文で繰り返し書いた通り、用途として不適切",[410,537,538],{"id":538},"結論",[14,540,541,542,545],{},"Codex SDK / App Server の嬉しさは「開発作業エージェントを自分の開発基盤に組み込むこと」だったが、",[18,543,544],{},"「自分専用の継続業務エージェント（決算ウォッチ・市況メモ・税務リマインダーなど）を、サブスクの範囲で動かす」"," という用途にも素直にハマる。",[14,547,548],{},"業務 SaaS の推論エンジンとして使う発想は引き続き持たない。ただし「自分の手元で動く専属アナリスト」を、API 課金を増やさずに作れる、というのが個人実務での落としどころになりそう。",[30,550,551],{"id":551},"参考",[52,553,554,562,568,575],{},[55,555,556],{},[557,558,289],"a",{"href":559,"rel":560},"https://developers.openai.com/codex/sdk",[561],"nofollow",[55,563,564],{},[557,565,304],{"href":566,"rel":567},"https://developers.openai.com/codex/app-server",[561],[55,569,570],{},[557,571,574],{"href":572,"rel":573},"https://developers.openai.com/codex/auth",[561],"Codex authentication",[55,576,577],{},[557,578,581],{"href":579,"rel":580},"https://github.com/openai/codex/blob/main/sdk/typescript/README.md",[561],"openai/codex TypeScript SDK README",{"title":583,"searchDepth":584,"depth":584,"links":585},"",2,[586,587,588,589,590,591,592,593,600],{"id":32,"depth":584,"text":33},{"id":82,"depth":584,"text":83},{"id":121,"depth":584,"text":122},{"id":154,"depth":584,"text":155},{"id":208,"depth":584,"text":209},{"id":258,"depth":584,"text":258},{"id":330,"depth":584,"text":330},{"id":359,"depth":584,"text":360,"children":594},[595,597,598,599],{"id":412,"depth":596,"text":412},3,{"id":482,"depth":596,"text":482},{"id":509,"depth":596,"text":509},{"id":538,"depth":596,"text":538},{"id":551,"depth":584,"text":551},"dev","Codex SDK と Codex App Server の位置づけを整理したメモ。CLI のラッパーであること、サブスク認証の扱い、クラウド環境での使いどころを確認する。","md",{},true,null,"/codex-sdk-app-server-notes","mdx-playground",false,"2026-05-18T00:00:00.000Z",{"title":5,"description":602},"2026-05-18/codex-sdk-app-server-notes",[614,615,616,617,618],"Codex","OpenAI","SDK","AIエージェント","開発環境","3-4-Fy1H_UKt5uH1OQFKbqVP6pP6_nNJDME57wYG4iE",[],"https://log.eurekapu.com/og/blog/codex-sdk-app-server-notes.png?v=2026-05-18T00%3A00%3A00.000Z&title=Codex%20SDK%20%E3%81%A8%20App%20Server%20%E3%81%AF%E4%BD%95%E3%81%8C%E5%AC%89%E3%81%97%E3%81%84%E3%81%AE%E3%81%8B&author=Kei%20Komatsu&sig=afc9f83769353692",1782528847037]