OpenAI Codex CLIを使ってみた:Emacs VtermでTETRISの作成

はじめに

Clineなどのコーディングエージェントツールを使ってみたかったのですが、私は普段Visial Studio Codeベースで開発を行っていないので、導入がしづらい状況でした。

また、コーディングエージェントツールはAPIの従量課金となるため、その部分も私にとってハードルがありました。

公式手順を参考に、普段開発に使っている環境(Emacs上のVterm)にて、定番のTETRISを作成してみます。 作業量に対してどのくらい課金されるかという感覚もわかっていないので、そのあたりも見てみます。

実行環境

  • Ubuntu 24.04 (Windows11 WSL)
  • Emacs 30.1
  • Vterm

実行イメージと生成結果

1891_00.jpg

1891_15.jpg

インストール

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を作成したい」と入力します。

1891_01.jpg

thinking になります。

1891_02.jpg

質問に対して回答

プロジェクトの設計方針について尋ねられるので、下記のように入力します。

「Python(Pygames)、GUIでお願いします。」

1891_03.jpg

thinking になります。何度か同様に試してみましたが、数10秒でおわることもありますし、3分くらいかかることもありました。

実行コマンドの表示

1891_04.jpg

“Planning Tetris in Python”, “Creating Tetris Code Structure”, “Finalizeing Tetris Code Comments” 等が英語で示され、その後に実行されるコマンドが表示されます。

1891_05.jpg

(中略)

Shell Command

1891_06.jpg

(中略)

“Allow command?”と、上記のコマンドを実行するか尋ねられます。

1891_07.jpg

コマンド説明

ここで、Explain this command (x) を選択すると、コマンドについて解説されます。

1891_08.jpg

Yes(y) を選択して、ソースコードを作成します。元のファイルはないですが、apply patch によって作成されるようです。

Done!

“chmod +x tetrys.py” の実行を許可します。

1891_09.jpg

中断

ここで、”pip install”を実行する流れになったのですが(キャプチャ無し)、現在の環境に直接 “pip install pygame” は行いたくないので、一旦Abortしました。

1891_10.jpg

仮想環境の作成を指示

「現在の環境に直接 “pip install pygame” は行いたくないので、venvで仮想環境を作成して実行したい」と要望しました。

1891_11.jpg

requirements.txt が作成されます。

1891_12.jpg

README.md が作成されます。

1891_13.jpg

READMEとrequirements.txtを追加を許可します。

1891_14.jpg

作成されたプログラムの実行

$ python3 -m venv venv
$ source venv/bin/activate
$ pip install -r requirements.txt 
$ python tetris.py 

上記に示されたとおり、下記コマンドにて実行してみます。

実行エラーになることもなく、遊べました。 ちゃんとスコアも更新されました。

1891_15.jpg

課金

OpenAI Platform の Usage で確認した限り、上記の一連の作業において、約$0.1(15円くらい) かかるようでした。 なんとなく、感覚がつかめました。

おわりに

CLIということで開発環境への依存性がが低く、さらにはOSSということでツールとの連携も期待されます。

個人的には、現在のメインの開発環境(Emacs)でAIコーディングエージェントツールが使えるようになり、かなり嬉しいです。

Copied title and URL