Skip to main content

openai-cli

Official OpenAI CLI for interacting with the OpenAI REST API from the command line

الانتقال إلى التثبيت

معلومات المصدر

المستودع
reason-machines/devtools-skills
آخر نشاط في المصدر
١٦ مايو ٢٠٢٦ في ٢٢:٤٨
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٤
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
openai-cli
description
Official OpenAI CLI for interacting with the OpenAI REST API from the command line
triggers
["use the OpenAI CLI","call OpenAI API from terminal","make OpenAI requests with CLI","use openai command line tool","interact with OpenAI from shell","openai cli commands","call gpt from command line","query OpenAI API in terminal"]
# OpenAI CLI > Skill by [ara.so](https://ara.so) — Devtools Skills collection. The official CLI for the OpenAI REST API. Provides a command-line interface to interact with OpenAI's API endpoints including chat completions, embeddings, fine-tuning, and admin operations. ## Installation ### Homebrew (macOS/Linux) ```bash brew install openai/tools/openai ``` ### Go Install ```bash go install 'github.com/openai/openai-cli/cmd/openai@latest' ``` Ensure Go bin is in your PATH: ```bash export PATH="$PATH:$(go env GOPATH)/bin" ``` ### Local Development Clone the repository and run locally: ```bash git clone https://github.com/openai/openai-cli.git cd openai-cli ./scripts/run args... ``` ## Configuration Set up your API credentials using environment variables: ```bash export OPENAI_API_KEY="sk-..." export OPENAI_ADMIN_KEY="sk-admin-..." # For admin endpoints export OPENAI_ORG_ID="org-..." # Optional export OPENAI_PROJECT_ID="proj_..." # Optional ``` Or use flags on each command: ```bash openai --api-key sk-... responses create --input "Hello" ``` ### Environment Variables | Variable | Purpose | Required | |----------|---------|----------| | `OPENAI_API_KEY` | Standard API authentication | For standard endpoints | | `OPENAI_ADMIN_KEY` | Admin API authentication | For admin endpoints | | `OPENAI_ORG_ID` | Organization identifier | No | | `OPENAI_PROJECT_ID` | Project identifier | No | | `OPENAI_WEBHOOK_SECRET` | Webhook verification | No | ## Command Structure ```bash openai [resource] <command> [flags...] ``` ## Key Commands ### Chat Completions Create a chat completion: ```bash openai responses create \ --input "Explain quantum computing in simple terms" \ --model gpt-4 ``` Stream responses: ```bash openai responses create \ --input "Write a poem about coding" \ --model gpt-4 \ --stream ``` With system message and temperature: ```bash openai responses create \ --input "What is recursion?" \ --model gpt-4 \ --system "You are a computer science teacher" \ --temperature 0.7 ``` ### File Operations Upload a file: ```bash openai files create \ --file @training_data.jsonl \ --purpose fine-tune ``` List files: ```bash openai files list ``` Retrieve file content: ```bash openai files retrieve file-abc123 ``` Delete a file: ```bash openai files delete file-abc123 ``` ### Embeddings Generate embeddings: ```bash openai embeddings create \ --input "The quick brown fox" \ --model text-embedding-3-small ``` Multiple inputs: ```bash openai embeddings create \ --input "First text" \ --input "Second text" \ --model text-embedding-3-large ``` ### Fine-tuning Create a fine-tuning job: ```bash openai fine-tuning jobs create \ --training-file file-abc123 \ --model gpt-3.5-turbo ``` List fine-tuning jobs: ```bash openai fine-tuning jobs list ``` Check job status: ```bash openai fine-tuning jobs retrieve ftjob-abc123 ``` Cancel a job: ```bash openai fine-tuning jobs cancel ftjob-abc123 ``` ### Admin Operations Usage statistics: ```bash openai admin:organization:usage completions \ --start-time 1735689600 \ --end-time 1735776000 \ --bucket-width 1d ``` ## File Handling ### Passing Files as Arguments Use `@` prefix for file paths: ```bash openai responses create --arg @input.txt ``` Within JSON/YAML: ```bash openai <command> --arg '{image: "@image.jpg"}' ``` ```bash openai <command> <<YAML arg: image: "@abe.jpg" YAML ``` ### Explicit Encoding Force string encoding: ```bash openai <command> --arg @file://myfile.txt ``` Force base64 encoding: ```bash openai <command> --arg @data://image.png ``` Absolute paths: ```bash openai <command> --arg @file:///tmp/file.txt ``` ### Escaping @ Signs To pass a literal `@` character: ```bash openai <command> --username '\@username' ``` ## Output Formatting ### Format Options Control output format with `--format`: ```bash # Pretty-printed (default for TTY) openai responses create --input "Hello" --format pretty # Raw JSON openai responses create --input "Hello" --format json # JSONL (one JSON object per line) openai responses create --input "Hello" --format jsonl # YAML openai responses create --input "Hello" --format yaml # Raw response body openai responses create --input "Hello" --format raw ``` ### Data Transformation Use GJSON syntax to extract specific fields: ```bash # Get just the message content openai responses create \ --input "Hello" \ --transform "choices.0.message.content" # Get multiple fields openai responses create \ --input "Hello" \ --transform "{id: id, content: choices.0.message.content}" ``` Transform errors: ```bash openai responses create \ --input "Hello" \ --format-error json \ --transform-error "error.message" ``` ## Global Flags ```bash --api-key # API key (or use OPENAI_API_KEY) --admin-api-key # Admin key (or use OPENAI_ADMIN_KEY) --organization # Org ID (or use OPENAI_ORG_ID) --project # Project ID (or use OPENAI_PROJECT_ID) --base-url # Custom API endpoint --debug # Enable debug logging with HTTP details --version, -v # Show CLI version --help # Show help for command --format # Output format (auto, explore, json, jsonl, pretty, raw, yaml) --format-error # Error output format --transform # GJSON transform for data output --transform-error # GJSON transform for error output ``` ## Common Patterns ### Interactive Chat Session ```bash while true; do read -p "You: " input openai responses create \ --input "$input" \ --model gpt-4 \ --format pretty done ``` ### Batch Processing Process multiple inputs from a file: ```bash while IFS= read -r line; do openai responses create \ --input "$line" \ --model gpt-3.5-turbo \ --format json >> results.jsonl done < inputs.txt ``` ### JSON Input Pass structured data: ```bash openai responses create \ --input "Translate to French" \ --model gpt-4 \ --max-tokens 100 \ --temperature 0.3 ``` ### Piping Data ```bash echo "Summarize this text" | openai responses create \ --input "$(cat)" \ --model gpt-4 ``` Or: ```bash cat document.txt | openai responses create \ --input "Summarize: $(cat -)" \ --model gpt-4 ``` ### Image Analysis ```bash openai responses create \ --input '{text: "What is in this image?", image: "@photo.jpg"}' \ --model gpt-4-vision-preview ``` ### Custom Base URL For Azure or custom endpoints: ```bash openai --base-url https://custom.openai.azure.com/v1 \ responses create \ --input "Hello" \ --model gpt-4 ``` ## Debugging Enable debug mode to see full HTTP requests/responses: ```bash openai --debug responses create --input "Test" ``` **Warning**: Debug logs include request/response bodies which may contain sensitive data. ## Troubleshooting ### Command Not Found Ensure Go bin is in your PATH: ```bash echo $PATH | grep "$(go env GOPATH)/bin" # If not found: export PATH="$PATH:$(go env GOPATH)/bin" ``` ### Authentication Errors Verify API key is set: ```bash echo $OPENAI_API_KEY # Should output: sk-... ``` Check key validity: ```bash openai responses create --input "test" --model gpt-3.5-turbo ``` ### File Not Found Errors Use absolute paths or verify relative paths: ```bash # Absolute path openai files create --file @/full/path/to/file.jsonl --purpose fine-tune # Verify file exists ls -la @file.jsonl ``` ### Rate Limiting Add delays between requests: ```bash for i in {1..10}; do openai responses create --input "Request $i" sleep 1 done ``` ### Model Not Available List available models (if endpoint exists): ```bash openai models list ``` Check model name spelling and access permissions. ### Output Not Formatted Force format explicitly: ```bash openai responses create --input "Hello" --format json ``` Check if output is being piped (auto-detection may choose raw format): ```bash openai responses create --input "Hello" --format pretty | less ``` ## Linking Custom SDK Versions For development, link against different Go SDK versions: ```bash # Link to specific version ./scripts/link github.com/openai/openai-go@v1.2.3 # Link to local SDK copy ./scripts/link ../openai-go # Default (../openai-go) ./scripts/link ``` ## Version Information Check CLI version: ```bash openai --version # or openai -v ``` Get help: ```bash openai --help openai responses --help openai responses create --help ```
عرض على GitHub