はじめに
Clineなどのコーディングエージェントツールを使ってみたかったのですが、私は普段Visial Studio Codeベースで開発を行っていないので、導入がしづらい状況でした。
また、コーディングエージェントツールはAPIの従量課金となるため、その部分も私にとってハードルがありました。
公式手順を参考に、普段開発に使っている環境(Emacs上のVterm)にて、定番のTETRISを作成してみます。 作業量に対してどのくらい課金されるかという感覚もわかっていないので、そのあたりも見てみます。
実行環境
- Ubuntu 24.04 (Windows11 WSL)
- Emacs 30.1
- Vterm
実行イメージと生成結果
公式
インストール
https://github.com/openai/codex?tab=readme-ov-file#installation に記載されており、”From npm” と “Build from source” がありますが、最初はnpmでやってみます。
$ sudo npm install -g @openai/codex
設定
https://github.com/openai/codex?tab=readme-ov-file#configuration の通りに行います。
~/.codex/config.yaml を作成します。
ここでは o4-miniを使います。fullAutoErrorMode: ask-user を指定し、ユーザー尋ねるようにします。
# ~/.codex/config.yaml model: o4-mini # Default model fullAutoErrorMode: ask-user # or ignore-and-continue notify: true # Enable desktop notifications for responses
必須ではないですが、~/.codex/instructions.md も作成しておきます。 絵文字を使うようにし、gitコマンドは明示的に伝えない限り実行されないようにします。
# ~/.codex/instructions.md - Always respond with emojis - Only use git commands if I explicitly mention you should
API keyの確認
API key が設定されていないと下記のように表示されます。
$ codex Missing OpenAI API key. Set the environment variable OPENAI_API_KEY and re-run this command. You can create a key here: https://platform.openai.com/account/api-keys
下記のように API key を指定します。
export OPENAI_API_KEY=your-api-key-here
API keyが指定されていても、OpenAI Platform のアカウントが検証済でないと “Warning: model “o4-mini” is not in the list of available models returned by OpenAI.” と表示され、使用可能とならないようです。 その場合は、OpenAI Platformのアカウントの方を適切に処理します。
$ codex ╭──────────────────────────────────────────────────────────────╮ │ ● OpenAI Codex (research preview) v0.1.2504172351 │ ╰──────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────╮ │ localhost session: │ │ ↳ workdir: ~/project/codex-trial │ │ ↳ model: o4-mini │ │ ↳ approval: suggest │ ╰──────────────────────────────────────────────────────────────╯ system Warning: model "o4-mini" is not in the list of available models returned by OpenAI.
プロジェクトの確認
適当なディレクトリを作成し、codexを実行してみます。
$ mkdir codex-trial $ cd codex-trial/
$ codex
gitリポジトリをプロジェクトとしてみなすようです。 gitリポジトリでない場合には、これ以外の範囲に影響を及ぼす可能性があるため警告が表示されます。
$ codex
╭──────────────────────────────────────────────────────────────╮
│ ● OpenAI Codex (research preview) v0.1.2504172351 │
╰──────────────────────────────────────────────────────────────╯
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│Warning! It can be dangerous to run a coding agent outside of a git repo in case there are changes that you want to revert. Do you want │
│to continue? │
│ │
│/home/wurly/project_trial/codex-trial │
│ │
│y/N │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ここでは、git init を実行してgitリポジトリを作成します。.git ディレクトリが作成されていることを確認します。
git init
お試し実行(TETRISを作成)
最初のインプット
入力フィールドに「TETRISを作成したい」と入力します。
thinking になります。
質問に対して回答
プロジェクトの設計方針について尋ねられるので、下記のように入力します。
「Python(Pygames)、GUIでお願いします。」
thinking になります。何度か同様に試してみましたが、数10秒でおわることもありますし、3分くらいかかることもありました。
実行コマンドの表示
“Planning Tetris in Python”, “Creating Tetris Code Structure”, “Finalizeing Tetris Code Comments” 等が英語で示され、その後に実行されるコマンドが表示されます。
(中略)
Shell Command
(中略)
“Allow command?”と、上記のコマンドを実行するか尋ねられます。
コマンド説明
ここで、Explain this command (x) を選択すると、コマンドについて解説されます。
Yes(y) を選択して、ソースコードを作成します。元のファイルはないですが、apply patch によって作成されるようです。
Done!
“chmod +x tetrys.py” の実行を許可します。
中断
ここで、”pip install”を実行する流れになったのですが(キャプチャ無し)、現在の環境に直接 “pip install pygame” は行いたくないので、一旦Abortしました。
仮想環境の作成を指示
「現在の環境に直接 “pip install pygame” は行いたくないので、venvで仮想環境を作成して実行したい」と要望しました。
requirements.txt が作成されます。
README.md が作成されます。
READMEとrequirements.txtを追加を許可します。
作成されたプログラムの実行
$ python3 -m venv venv $ source venv/bin/activate $ pip install -r requirements.txt $ python tetris.py
上記に示されたとおり、下記コマンドにて実行してみます。
実行エラーになることもなく、遊べました。 ちゃんとスコアも更新されました。
課金
OpenAI Platform の Usage で確認した限り、上記の一連の作業において、約$0.1(15円くらい) かかるようでした。 なんとなく、感覚がつかめました。
おわりに
CLIということで開発環境への依存性がが低く、さらにはOSSということでツールとの連携も期待されます。
個人的には、現在のメインの開発環境(Emacs)でAIコーディングエージェントツールが使えるようになり、かなり嬉しいです。