OpenAIが公式CLIを公開、ターミナルからAPIを直接操作
OpenAI CLI
OpenAIがREST APIをコマンドラインから扱う公式CLIをGitHubで公開した。HomebrewやGoでインストールでき、APIキーを設定すればresponsesやimages、filesなどのリソースをコマンドで操作できる。画像生成結果は自動で保存され、JSON出力やGJSONによる抽出、mTLS認証にも対応。ヘルプはAPIキーやネットワークなしでも参照可能だ。
CLIはアップデートを自動でインストールすることは決してない。
HNでの議論
109- nater5000
技術者向けのサイトなのに、このスレッドの多くの人は、一つのサービスが特定のユースケースに特化した複数のソフトウェアを提供する可能性があるという考えに完全に戸惑っているように見える。
codex: OpenAIのエージェントハーネス。OpenAIのモデルで動くエージェントにマシン上で何かをさせたいときに、通常やり取りしたいもの。APIの低レベル機能を抽象化してくれるので、気にする必要がない。
openai-cli: OpenAIのREST APIに対して低レベル操作を公開するシンプルなCLI。completions APIを直接呼び出す低レベルスクリプトを作成したり、アカウントを管理したりするときに使うもの。
正直、名前だけで明らかだ。もし君にそれが明確でないなら、これは君向けではない。君が対象読者でないソフトウェアをOpenAIがリリースしたからといって、興奮する必要はない。
- kristopolous
私は約1年前からllcatという同種のものに取り組んでいる。
cURL、awk、sedのように動作するLLMネイティブでUnixフレンドリーなツールが不足していたことから生まれた。
見つからなかったので自分で書いた。
ステートレスで明示的、低レベルで、モーダル設定なしで合成可能なリファレンスが欲しいとわかっていた。
例えば、設定ファイルの代わりに、llcatは組み込みのjq構文と行番号でファイルをインデックスできる。そして呼び出しを後で保存できる:
llcat --save invocation.json \
-k "@~/credentials.txt:12" \
-u "@settings.json:.[3].host" \
-s "@system_prompts:8" \
-m "@settings.json:.[3].model" \
"@query.txt:12" > output.txt
そして
llcat --load invocation.json { ... 上書きしたいパラメータ ... }
チャットで同僚に送ったり、共有ネットワークフォルダに呼び出しを保存するのは簡単だ。
会話も単なるJSONファイルだ。入力と出力を別々にできる。つまり、こんなことができる:
for i in *; do
# 不変の会話を使う
# 標準のUnixパイプでファイル群に適用する
cat "$i" | llcat --load settings.json -cr context.json > ../results/"${i}.output"
# または添付ファイルを使う
llcat --load settings.json -a "$i" -cr context.json > ../results/"${i}.output"
# またはコンテキスト全体を保存する
llcat --load settings.json -a "$i" -cr context.json -c ../results/"${i}.output" > /dev/null
done
お気に入りのパターンの一つはこれだ:[…]
- isodev
待って、codexが「openai cli」じゃなかったっけ?
製品名が紛らわしすぎる(chat対work?!).. まるで全体がバイブコーディングされたみたいだ。
- techgnosis
皮肉なことに、Codexにこれを作らせれば5分くらいでできたはずだ。公開APIがあれば、CLIは常に手の届くところにある。
- mi_lk
いつCodexの代わりにこれを使うべき?これは他のツールやエージェントから呼ばれることを想定しているの?
- guyuedumingx
名前だけでツールの説明になるという主張は弱い:CLIラッパーでも、どんな問題を解決し、誰が使うべきかを1行で述べる必要がある。
- albert_e
これは月額定額制のサブスクリプション枠を消費するのか、それともAPIクレジットを消費するのか。
Anthropicにも似たようなものはあるのか。
「claude -p」はサブスクリプション枠では信頼性が低く、しばしば「追加使用」クレジットが必要だったと理解している。
- hahahacorn
想像するに、戦略は自分のツールを使って問題を解くようにモデルをRLで訓練し、モデルが最も効率的に使えるようにし、最終的にはマネージドエージェントなどのサービスをデフォルトで使うようにするのだろう。
正直、これがもっと早く出なかったのが不思議だ。