OpenRouterとは?
OpenRouterは色々なAIモデルの呼び出しを一つのエンドポイント, API tokenで行えるサービスです。 OpenAIのGTP系のモデルやGoogleのGemini,AnthropicのClaudeといった有名なモデルも、 コーディングで高い評価を得ているQwen等の少しマニアックなモデルも使用することが可能です。
中には、無料で使えるモデルも存在するので、とりあえず特定のモデルを試したい!という場合にはピッタリなサービスなのではないでしょうか。 無料モデルでは、アクセス制限が少し厳しいのですが、$10 チャージするとアクセス制限が大幅に緩和されます。 ですが、今回はとりあえず使ってみることが目的なので、それはまた後にしようかと思います。
なぜCodex CLIを選択したのか?
OpenRouterがOpenAI互換なAPIを採用しているので、OpenAI製のツールなら叩けるのできるのでは?(実際はそうはいかない…) という予測と,実装がRustな点です。
とりあえず openai/gpt-oss-120b:freeを叩いてみる
codexの導入と設定
いつも通りflakeでnix shellを作成します。
|
|
わざわざ、flakeを書きましたが、入れたツールが一個だけだったので
|
|
なり
|
|
なりでも十分だったかもしれません…
アカウントの作成とAPI keyの作成
アカウントはGoogle,Github,Metamaskのアカウントで作成するか、メールアドレスで新規作成するかを選択できます。
今回筆者はGithubアカウントで作成しました。
続いて、API TOKENの作成を行います。
トークンの作成ではトークン名、とExpiration(有効期限)が必須の項目なので、適当な名前で期限は1年にしました。
このトークンはOPENROUTER_API_KEYとしてCodex CLIを実行するシェルの環境変数に設定として設定しましょう。
筆者はdirenvを使用しているので、.envrcに以下のように設定しました。
|
|
また、freeなモデルの実行にはプライバシー設定で以下のように、“Enable free endpoints that may train on inputs”,“Enable free endpoints that may publish prompts"を共に有効化する必要があります。
codexの設定
筆者はnix shell内で
|
|
を実行した時点でディレクトリ$HOME/.codex/が作成れていたのでそこにconfig.tomlを置き設定を記述しました。
$HOME/.codex/config.toml
|
|
実行
以下のコマンでCodex CLIを実行します。
ここで、--configはconfig.tomlに書かれた設定を上書きするオプションで、
--modelは名前の通りモデル名を指定するためのオプションです。
|
|
MCPサーバーを動かす
ここでは、設定でハマったポイントだけ
MCPサーバーの設定は、プロジェクトごとに.codex/config.tomlを置くか、
グローバルに$HOME/.codex/config.tomlに置くかの二通りの方法があります。
stdioで通信するタイプのサーバーの場合は、commandにサーバーの起動コマンドを設定します。
|
|
一方、httpでやりとりするMCP サーバーではcommandではなくてurlにURLを設定します。
|
|
環境変数を参照するMCPサーバーの場合は少しややこしくて、 Codexを呼び出すシェルで設定されていても 無視されます(おそらくわざとそうしている)
実行するシェルで環境変数ENV_VARが設定されていてそれを参照したいならば
以下のように$で展開するように設定する必要があります。
|
|