概要
OpenAIのREST API用公式CLIの インストール方法、 基本的な使い方、 アップデート管理、 エラー処理 や 環境変数 設定について解説。 HomebrewやGoを使った導入手順、コマンド構造、APIキーの扱い方法を網羅。 CLIの 出力形式 や ファイル操作、 画像生成 など主要機能も詳述。 mTLS認証 や プロキシ対応、 コマンド補完 の詳細も記載。 セキュリティ考慮点や トラブルシューティング 手順も明記。
OpenAI REST API公式CLIのインストールと基本設定
- OpenAI REST API用 公式CLI の提供
- Homebrewでのインストール
brew install openai/tools/openaiコマンド利用
- Goによるインストール
- Goバージョン 1.26以上 が必要
go install 'github.com/openai/openai-cli/cmd/openai@latest'実行- バイナリはデフォルトで
$HOME/go/binに配置 go env GOPATHでパス確認、必要ならPATHに追加
コマンド構造とAPIキー設定
- CLIは リソースベース のコマンド体系
- 例:
openai <resource> [subresource...] <command> [flags...]
- 例:
- 標準APIエンドポイントには APIキー が必要
export OPENAI_API_KEY="sk-..."で設定
- 管理者エンドポイントには 管理者APIキー
export OPENAI_ADMIN_KEY="sk-admin-..."
- コマンドグループごとに
--helpで詳細ヘルプ参照可能
アップデート通知とコマンド補完
- CLIは 7日ごと に新しい安定リリースをチェック
- Homebrewの場合は
brew upgrade --cask openai/tools/openaiでアップデート - Goの場合はインストールガイドを参照
OPENAI_CLI_NO_UPDATE_CHECK=1でアップデートチェック無効化- Bash、zsh、fish向けに Tab補完 対応
- 新しいターミナルで補完機能が利用可能
基本的な使い方とファイル操作
- 例: テキスト生成
openai responses create --input "Say this is a test" --model gpt-5.5
- 例: 管理者コマンド
openai admin organization usage completions --start-time 1735689600 --end-time 1735776000 --bucket-width 1d
- ファイルアップロード・取得・ダウンロード
openai files upload "upload space.txt" --purpose user_dataopenai files get file-exampleopenai files download file-example --output "downloaded copy.txt"
- 画像生成
openai images generate --prompt "A tiny orange robot"- 画像は
~/Downloads/gpt-images/に保存
出力・エラー形式と環境変数
- 出力形式は
--format jsonや--format jsonlなどで指定可能 - エラー出力も
--format-error json等でカスタマイズ可 - 主な環境変数一覧
OPENAI_API_KEY、OPENAI_ADMIN_KEY、OPENAI_ORG_ID、OPENAI_PROJECT_IDなど
- グローバルフラグとして
--api-key、--admin-api-key、--organization、--project等が利用可能
リクエストヘッダーとセキュリティ
--header(または-H)でリクエストヘッダー追加- 例:
openai --header 'X-Trace-ID: example-123' models list
- 例:
- 機密情報は
OPENAI_CUSTOM_HEADERS環境変数で安全に管理 - ヘッダーはデバッグログやヘルプでマスキング処理
Mutual TLS(mTLS)認証
- mTLSは β版 として提供
- クライアント証明書と秘密鍵をPEMファイルで指定
OPENAI_MTLS_CLIENT_CERT_FILE、OPENAI_MTLS_CLIENT_KEY_FILEを設定OPENAI_BASE_URLでエンドポイント指定
- プライベートキーは厳重に管理、コマンド引数や環境変数に直接書かない
ファイル引数・パイプ入力
- JSON値で
@myfile.ext形式を使うとファイル内容を読み込む - バイナリアップロードはパス指定
- 信頼できない入力を処理する場合は
OPENAI_UNTRUSTED_STDIN=1で安全モード利用
備考
- 詳細なコマンドやオプションは
--helpで随時確認 - APIキーや管理者キー、証明書などの機密情報は 安全な方法で管理 することが重要
- トラブル時やアップデート時は 公式ガイド やヘルプを参照
このプレイは、自分のツールを使って問題を解決するためのモデルだと思う。最も効率的に使える方法を知っていて、最終的にはマネージドエージェントみたいなサービスを使うようになるんだよね。正直、これがもっと早く出てこなかったのが意外だわ。