OpenAI CLI 설치하고 터미널에서 OpenAI API 호출하기
OpenAI CLI는 OpenAI REST API를 위한 OpenAI의 공식 명령줄 도구입니다. openai 바이너리 하나를 설치하고 OPENAI_API_KEY를 설정한 뒤 터미널이나 셸 스크립트에서 API를 호출하면 됩니다. openai responses create, openai files upload, openai batches create, openai images generate 같은 식입니다. 이것은 Codex CLI가 아닙니다. Codex는 코딩 에이전트이고, openai는 명령 하나당 API 요청 하나를 보냅니다.
{% cta apidog.com %} 지금 Apidog 사용해 보기 {% endcta %}
이 가이드는 설치, 인증, 가장 먼저 실행해볼 만한 명령, 그리고 Codex CLI 및 Python SDK가 PATH에 남겨둔 예전 openai 명령과의 비교를 다룹니다. 아래의 모든 명령과 출력은 2026년 10월 28일에 설치하고 실행한 버전 1.44.1에서 가져온 것입니다.
OpenAI CLI란 무엇인가?
OpenAI CLI는 OpenAI가 openai/openai-cli에서 Apache 2.0 라이선스로 공개한 오픈소스 Go 바이너리입니다. 명령이 API의 리소스(responses, files, batches, images, audio, vector-stores, admin)를 그대로 반영하기 때문에, curl이나 SDK로 보내던 모든 것이 플래그를 붙인 터미널 명령 하나가 됩니다.
완전히 새로운 것은 아닙니다. 버전 1.0.0이 2026년 5월 5일에 출시되었고, 그 이후 프로젝트는 99개의 릴리스를 배포했습니다. 1.44.1은 2026년 10월 27일에 나왔습니다. 그러니 출시 소식이 아니라, 놓치고 있었을 수도 있는 성숙한 도구로 보시면 됩니다.
처음 실행했을 때 보게 되는 것은 다음과 같습니다:
!openai --version and openai --help output from OpenAI CLI v1.44.1
도움말은 명령을 용도별로 묶어 보여줍니다: 콘텐츠 생성(responses, chat, images, audio, videos), 데이터 및 검색(files, uploads, vector-stores, embeddings), 모델과 작업, 관리, 그리고 네트워크를 전혀 사용하지 않는 로컬 도구 모음입니다. 도움말 자체는 API 키도, 연결도 필요 없으므로 openai <command> --help가 플래그를 익히는 가장 빠른 방법입니다.
스크립트를 작성하지 않고 프롬프트를 테스트하려는 개발자, 파일 업로드와 배치를 cron 작업에 넣고 싶은 운영 담당자, 직접 짠 curl 대신 문서화된 인터페이스가 필요한 코딩 에이전트에게 잘 맞습니다.
OpenAI CLI 설치 방법
설치 경로는 세 가지이며, 모두 프로젝트 README에 나와 있습니다:
1. 미리 빌드된 바이너리. GitHub Releases에서 사용 중인 OS와 아키텍처에 맞는 아카이브를 내려받아(macOS, Linux, Windows 빌드가 게시됩니다) 압축을 풀고 openai를 PATH에 넣습니다.
2. Homebrew.
brew install openai/tools/openai
3. Go. Go 1.26 이상이 필요합니다.
go install 'github.com/openai/openai-cli/cmd/openai@latest'
export PATH="$PATH:$(go env GOPATH)/bin"
직접 관리하는 릴리스 설치본은 대화형 실행 중에 스스로 업데이트할 수 있습니다. CI에서 버전을 고정한다면 OPENAI_CLI_NO_AUTO_UPDATE=1로 자동 설치를 막거나, OPENAI_CLI_NO_UPDATE_CHECK=1로 업데이트 확인 자체를 끄면 됩니다. Homebrew와 Go 설치는 업데이트 알림은 유지하되 업그레이드는 패키지 관리자에 맡깁니다.
OpenAI CLI 인증 방식
CLI는 OPENAI_API_KEY에서 표준 API 키를 읽습니다(또는 --api-key 플래그인데, 셸 히스토리에 남기 때문에 피하는 게 좋습니다). 아직 키가 없다면, OpenAI API 키 발급받기 가이드에서 자세히 다룹니다.
가장 빠른 설정 방법은 내장 가이드입니다:
openai help setup
API 키 페이지로 안내하고, Bash나 zsh용 read -rs OPENAI_API_KEY 줄을 알려주므로 키가 숨겨진 채로 입력되고 절대 화면에 표시되지 않습니다.
키를 빠뜨리면 명확하고 스크립트에서 처리 가능한 실패를 만납니다. 다음은 키를 설정하지 않았을 때의 실제 출력입니다:
!OpenAI CLI returns HTTP 401 Unauthorized when no API key is configured
상태 코드 1로 종료하면서 키가 어디서 올 수 있는지 정확히 알려줍니다. 스크립트가 원시 오류 본문을 필요로 한다면 --format-error json을 추가하세요.
나머지 인증 설정은 다음과 같습니다:
| 설정 | 플래그 | 환경 변수 | 사용 용도 |
| --- | --- | --- | --- |
| API 키 | --api-key | OPENAI_API_KEY | 모든 일반 API 호출 |
| 관리자 키 | --admin-api-key | OPENAI_ADMIN_KEY | openai admin ...(사용량, 프로젝트). 프로젝트 키로는 대체할 수 없습니다 |
| Base URL | --base-url | OPENAI_BASE_URL | CLI를 다른 호스트나 게이트웨이로 지정 |
| mTLS 인증서 및 키 | --mtls-client-cert-file, --mtls-client-key-file | OPENAI_MTLS_CLIENT_CERT_FILE, OPENAI_MTLS_CLIENT_KEY_FILE | 상호 TLS. 명시적인 HTTPS base URL이 필요합니다 |
먼저 실행해볼 OpenAI CLI 명령
명령 형태는 API를 따릅니다: openai <resource> [subresource...] <command> [flags...]. 다음은 도구함에 자리할 만한 명령들입니다.
Responses API 호출하기
openai responses create \
--model gpt-5.5 \
--input "Say this is a test"
긴 프롬프트도 이스케이프할 필요가 없습니다. JSON 입력 플래그는 @path로 파일에서 읽습니다:
openai responses create --model gpt-5.5 --input @prompt.txt
신뢰할 수 없는 출처에서 JSON이나 YAML을 파이프로 넘긴다면, 그 입력이 로컬 파일 읽기를 유발할 수 없도록 OPENAI_UNTRUSTED_STDIN=1을 설정하세요.
파일 업로드 및 가져오기
openai files upload report.txt --purpose user_data
openai files get file-example
openai files download file-example --output downloaded-report.txt
배치 실행하기
requests.jsonl에 요청을 한 줄에 하나씩, 각각 고유한 custom_id와 함께 넣은 다음:
openai files upload requests.jsonl --purpose batch
openai batches create --input-file-id file-example \
--endpoint /v1/responses --completion-window 24h
openai batches wait batch_example --output-dir ./results
batches wait은 배치가 끝날 때까지 폴링하고 결과 파일을 저장하므로, 따로 작성해야 했을 폴링 루프를 없애줍니다. 프로젝트의 배치 가이드에 따르면 현재 한도는 입력 파일당 50,000건 요청과 200 MB이며, 완료 기한은 24h입니다. 배치 가격은 동기 호출과 다르므로, 대규모 작업을 큐에 넣기 전에 OpenAI API 가격 정리를 확인하세요.
키 없이 로컬에서 토큰 세기
tokenizer 명령은 완전히 오프라인으로 동작합니다: 자격 증명도, 네트워크도, 저장되는 입력도 없습니다.
!openai tokenizer count output in text and JSON formats
기본 인코딩은 o200k_base이고, openai tokenizer encodings는 나머지(cl100k_base와 두 개의 레거시 인코딩)를 나열합니다. 도움말은 한계를 솔직하게 밝히고 있습니다. 순수 텍스트 개수는 요청 구조와 멀티모달 입력을 제외하므로 청구 금액이 아닙니다. 서버 측 개수는 openai responses input-tokens count를 사용하세요.
스크립트가 파싱할 수 있는 출력 얻기
기본 출력은 파이프로 넘겨도 사람이 읽을 수 있는 텍스트입니다. 데이터를 명시적으로 요청하세요:
openai models list --format jsonl | jq '.id'
openai files list --format json > files.json
openai files get file-example --transform filename --raw-output
--format은 auto, text, json, jsonl, yaml, explore(대화형 JSON 뷰어), pretty를 받습니다. --transform은 GJSON 문법으로 필드를 뽑아내고, 더 복잡한 것은 jq가 처리합니다. 리다이렉트된 파일을 신뢰하기 전에 항상 종료 상태를 확인하세요. 실패한 요청은 불완전한 파일을 남길 수 있습니다.
호출이 이상하게 동작하면 --debug가 시도별 HTTP 타이밍을 추가합니다. 로그를 공유하기 전에 민감 정보를 지우세요. 429를 맞고 있다면 OpenAI 속도 제한 가이드에서 티어를 설명합니다.
OpenAI CLI vs Codex CLI vs 예전 openai 명령
세 도구가 같은 벤더를 공유하고, 그중 둘은 이름까지 공유합니다. 짧게 정리하면 다음과 같습니다:
!Comparison of OpenAI CLI, Codex CLI and Apidog CLI: what each terminal tool is for
| | OpenAI CLI | Codex CLI | 레거시 Python openai |
| --- | --- | --- | --- |
| 명령 | openai | codex | openai |
| 정체 | REST API용 클라이언트 | 프로젝트의 코드를 읽고, 수정하고, 실행하는 코딩 에이전트 | openai Python 패키지에 포함된 CLI |
| 설치 | 바이너리, Homebrew 또는 Go | npm install -g @openai/codex 또는 brew install --cask codex | pip install openai |
| 인증 | OPENAI_API_KEY | 자체 로그인 처리 | API 키 |
| 사용 시점 | 특정 API 호출 하나가 필요하거나, 스크립트에 API 단계를 넣고 싶을 때 | 에이전트가 변경 사항을 구현하거나 디버깅하길 원할 때 | 이를 기반으로 만든 오래된 스크립트를 유지보수할 때 |
openai codex를 실행하면 OpenAI CLI가 Codex 설치 명령을 직접 출력하면서, 이것이 자체 로그인을 가진 별도 도구라고 알려줍니다. Codex CLI 가이드가 에이전트 쪽을 다루며, 소스는 openai/codex에 있습니다.
PATH 충돌 주의하기
openai Python 패키지도 openai라는 이름의 바이너리를 설치합니다. pip install openai를 실행한 적이 있다면 두 개를 갖고 있을 수 있습니다:
!which -a openai shows two openai binaries: the new OpenAI CLI and the legacy Python SDK command
이 Mac에서는 Python 쪽이 openai 2.30.0을 보고하고 api, tools, migrate, grit 하위 명령을 제공하며, Go 쪽은 openai version 1.44.1을 보고합니다. PATH에서 어느 디렉터리가 먼저 오는지가 승자를 정합니다. 설치 후 which -a openai와 openai --version을 실행해 보세요. 출력이 openai version 1.44.1(또는 그 이상)이면 올바른 것을 사용 중입니다. openai 2.30.0처럼 버전 숫자만 출력한다면 PATH 순서를 바꾸거나 새 바이너리를 전체 경로로 호출하세요.
OpenAI CLI 옆에서 Apidog CLI가 하는 역할
OpenAI CLI는 OpenAI로 호출을 보냅니다. 여러분 자신의 API는 알지 못합니다. OpenAI 위에 여러분의 앱이 노출하는 엔드포인트, 배포하는 환경, 릴리스가 아무것도 망가뜨리지 않았음을 증명하는 검증 같은 것은 다루지 않습니다. 그것은 다른 일이고, 바로 그 지점에서 Apidog CLI가 등장합니다. 둘 중 하나를 고르는 것이 아니라, AI 기능을 출시하는 대부분의 팀은 둘 다 원합니다.
더 나아가, 코딩 에이전트가 둘 다 실행하게 할 수도 있습니다. Apidog CLI를 한 번 설정하세요:
npm install -g apidog-cli@latest
apidog login --with-token <YOUR_TOKEN>
npx -y skills add https://apidog.com # pick your agent when prompted
그런 다음 에이전트에게 프롬프트 하나를 주세요:
Use the openai CLI to confirm my key works with one responses create call on gpt-5.5.
Then import ./openapi.yaml into Apidog project <id>, create a test case for
POST /v1/summarize that asserts a 200 and a non-empty "summary" field, run it
against the staging environment and summarize any failures.
에이전트는 openai로 키를 확인한 다음 Apidog CLI로 작업을 진행합니다. 페이로드를 작성하기 전에 스키마를 읽고, 파일을 검증한 뒤에야 테스트 케이스를 만들고 실행합니다:
apidog import --project <id> --format openapi --file ./openapi.yaml
apidog cli-schema get test-case-create
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project <id> --file case.json
apidog run --test-case <caseId> --project <id> -e <envId> -r cli,json
apidog test-case create --help에서 얻는 두 가지 세부 사항이 시행착오를 줄여줍니다. 케이스에는 유효한 categoryId가 필요하고(apidog test-case category --project <id>로 목록을 확인하세요), 페이로드는 기억에 의존하지 말고 반드시 cli-schema에서 가져와야 합니다. 같은 apidog run 줄에 -r junit을 붙이면 CI에 바로 들어가며, Apidog CLI CI/CD 가이드에서 확인할 수 있습니다. 에이전트로 Codex를 쓴다면 Codex에서의 Apidog CLI부터 시작하세요.
Apidog의 무료 플랜은 최대 4명까지 지원하므로, 소규모 팀이라면 구매 결정 없이 시도해볼 수 있습니다.
자주 묻는 질문
OpenAI CLI는 무료인가요? 이 도구는 Apache 2.0에 따라 무료이고 오픈소스입니다. 도구가 보내는 API 호출은 일반 API 요금으로 여러분의 OpenAI 계정에 청구됩니다. openai tokenizer 같은 로컬 명령과 모든 --help 페이지는 비용이 들지 않고 키도 필요 없습니다.
OpenAI CLI는 Codex CLI와 같은 건가요? 아닙니다. openai는 명령 하나당 하나씩, 직접 API 요청을 보냅니다. codex는 프로젝트를 읽고 수정하며 명령을 실행하는 코딩 에이전트입니다. 둘은 따로 설치되고 따로 인증합니다.
Mac에서 OpenAI CLI를 설치하려면 어떻게 하나요? brew install openai/tools/openai를 실행하거나, GitHub Releases에서 macos_arm64(Apple Silicon) 또는 macos_amd64(Intel) zip을 내려받아 바이너리를 PATH에 넣으세요. 그런 다음 openai --version을 실행해 예전 Python openai 명령을 실행하고 있지 않은지 확인하세요.
OpenAI CLI는 셸 스크립트와 CI에서 동작하나요? 네, 그게 주된 설계 목표입니다. 파싱 가능한 출력을 위해 --format json 또는 jsonl을 사용하고, 종료 상태를 확인하고, 키는 시크릿 관리자에서 OPENAI_API_KEY로 가져오고, 버전을 고정하려면 OPENAI_CLI_NO_AUTO_UPDATE=1을 설정하세요.
OpenAI CLI는 언제 출시되었나요? 버전 1.0.0이 2026년 5월 5일 GitHub에 게시되었습니다. 2026년 10월 28일 기준 최신 릴리스는 10월 27일에 나온 1.44.1입니다.
OpenAI CLI: Como Instalar e Chamar a API da OpenAI no Terminal
OpenAI CLI: Como Instalar e Chamar a API da OpenAI no Terminal
O OpenAI CLI é a ferramenta de linha de comando oficial da OpenAI para a API REST da OpenAI. Você instala um único binário openai, define OPENAI_API_KEY e chama a API a partir do seu terminal ou de um script de shell: openai responses create, openai files upload, openai batches create, openai images generate. Ele não é o Codex CLI. O Codex é um agente de programação; o openai envia uma requisição de API por comando.
{% cta apidog.com %} Experimente o Apidog hoje {% endcta %}
Este guia aborda instalação, autenticação, os primeiros comandos que vale a pena executar e como ele se compara com o Codex CLI e com o antigo comando openai que o SDK Python colocava no seu PATH. Todos os comandos e saídas abaixo vêm da versão 1.44.1, instalada e executada em 28 de outubro de 2026.
O que é o OpenAI CLI?
O OpenAI CLI é um binário Go de código aberto, publicado pela OpenAI em openai/openai-cli sob a licença Apache 2.0. Seus comandos espelham os recursos da API (responses, files, batches, images, audio, vector-stores, admin), então qualquer coisa que você enviaria com curl ou um SDK se torna um único comando de terminal com flags.
Ele não é novidade. A versão 1.0.0 foi lançada em 5 de maio de 2026, e o projeto já publicou 99 releases desde então; a 1.44.1 saiu em 27 de outubro de 2026. Portanto, trate-o como uma ferramenta madura que você pode ter deixado passar, não como um lançamento.
Veja o que você obtém na primeira execução:
!Saída de openai --version e openai --help do OpenAI CLI v1.44.1
O help agrupa os comandos por função: gerar conteúdo (responses, chat, images, audio, videos), dados e recuperação (files, uploads, vector-stores, embeddings), modelos e jobs, administração e um conjunto de ferramentas locais que nunca acessam a rede. O próprio help não precisa de chave de API nem de conexão, o que faz de openai <command> --help a forma mais rápida de aprender as flags.
Ele é indicado para desenvolvedores testando um prompt sem escrever um script, profissionais de operações que querem uploads de arquivos e batches em um cron job, e agentes de programação que precisam de uma interface documentada em vez de curl feito à mão.
Como instalar o OpenAI CLI
Você tem três rotas de instalação, todas listadas no README do projeto:
1. Binário pré-compilado. Baixe o arquivo para seu SO e arquitetura em GitHub Releases (builds para macOS, Linux e Windows são publicados), extraia-o e coloque openai no seu PATH.
2. Homebrew.
brew install openai/tools/openai
3. Go. Requer Go 1.26 ou posterior.
go install 'github.com/openai/openai-cli/cmd/openai@latest'
export PATH="$PATH:$(go env GOPATH)/bin"
Instalações de release autogerenciadas podem se atualizar durante execuções interativas. Se você fixa versões em CI, defina OPENAI_CLI_NO_AUTO_UPDATE=1 para impedir instalações automáticas, ou OPENAI_CLI_NO_UPDATE_CHECK=1 para desativar completamente as verificações de atualização. Instalações via Homebrew e Go mantêm seus avisos de atualização, mas deixam as atualizações para o gerenciador de pacotes.
Como funciona a autenticação do OpenAI CLI
O CLI lê uma chave de API padrão de OPENAI_API_KEY (ou da flag --api-key, que você deve evitar porque ela fica no histórico do shell). Se você ainda não tem uma, nosso guia sobre como obter uma chave de API da OpenAI mostra o passo a passo.
A configuração mais rápida é o guia integrado:
openai help setup
Ele direciona você para a página de chaves de API e fornece uma linha read -rs OPENAI_API_KEY para Bash ou zsh, para que a chave seja digitada oculta e nunca seja exibida.
Esqueça a chave e você receberá uma falha clara e scriptável. Esta é a saída real sem nenhuma chave definida:
!O OpenAI CLI retorna HTTP 401 Unauthorized quando nenhuma chave de API está configurada
Ele sai com status 1 e informa exatamente de onde uma chave pode vir. Adicione --format-error json quando um script precisar do corpo bruto do erro.
As outras configurações de autenticação:
| Configuração | Flag | Variável de ambiente | Use para |
| --- | --- | --- | --- |
| Chave de API | --api-key | OPENAI_API_KEY | Toda chamada normal à API |
| Chave de administrador | --admin-api-key | OPENAI_ADMIN_KEY | openai admin ... (uso, projetos); uma chave de projeto não pode substituí-la |
| URL base | --base-url | OPENAI_BASE_URL | Apontar o CLI para outro host ou um gateway |
| Certificado e chave mTLS | --mtls-client-cert-file, --mtls-client-key-file | OPENAI_MTLS_CLIENT_CERT_FILE, OPENAI_MTLS_CLIENT_KEY_FILE | mTLS mútuo, que exige uma URL base HTTPS explícita |
Primeiros comandos do OpenAI CLI para executar
A forma do comando segue a API: openai <resource> [subresource...] <command> [flags...]. Estes são os comandos que ganham seu lugar em uma caixa de ferramentas.
Faça uma chamada à API Responses
openai responses create \
--model gpt-5.5 \
--input "Say this is a test"
Prompts longos não precisam de escape. Flags de entrada JSON leem de um arquivo com @path:
openai responses create --model gpt-5.5 --input @prompt.txt
Se você canalizar JSON ou YAML de uma fonte não confiável, defina OPENAI_UNTRUSTED_STDIN=1 para que essa entrada não possa acionar leituras de arquivos locais.
Faça upload e busque arquivos
openai files upload report.txt --purpose user_data
openai files get file-example
openai files download file-example --output downloaded-report.txt
Execute um batch
Coloque uma requisição por linha em requests.jsonl, cada uma com um custom_id único, e então:
openai files upload requests.jsonl --purpose batch
openai batches create --input-file-id file-example \
--endpoint /v1/responses --completion-window 24h
openai batches wait batch_example --output-dir ./results
batches wait faz polling até o batch terminar e salva os arquivos de resultado, o que elimina o loop de polling que você escreveria de outra forma. O guia de batch do projeto lista os limites atuais como 50.000 requisições e 200 MB por arquivo de entrada, com uma janela de conclusão de 24h. O preço de batch difere das chamadas síncronas; consulte nossa análise de preços da API OpenAI antes de enfileirar um job grande.
Conte tokens localmente, sem chave
O comando tokenizer roda totalmente offline: sem credenciais, sem rede, sem entrada salva.
!Saída de openai tokenizer count nos formatos text e JSON
A codificação padrão é o200k_base, e openai tokenizer encodings lista as outras (cl100k_base, além de duas legadas). O help é honesto sobre os limites: uma contagem de texto simples exclui a estrutura da requisição e entradas multimodais, então não é um valor de cobrança. Para uma contagem no lado do servidor, use openai responses input-tokens count.
Obtenha saída que um script consegue analisar
A saída padrão é texto legível, mesmo quando canalizada. Peça dados explicitamente:
openai models list --format jsonl | jq '.id'
openai files list --format json > files.json
openai files get file-example --transform filename --raw-output
--format aceita auto, text, json, jsonl, yaml, explore (um visualizador JSON interativo) e pretty. --transform extrai campos com a sintaxe GJSON, e o jq lida com qualquer coisa mais elaborada. Sempre verifique o status de saída antes de confiar em um arquivo redirecionado: uma requisição com falha pode deixar um arquivo parcial para trás.
Quando uma chamada se comporta mal, --debug adiciona o tempo HTTP por tentativa; limpe seus logs antes de compartilhá-los. Se você está recebendo 429s, nosso guia de limites de taxa da OpenAI explica os níveis.
OpenAI CLI vs Codex CLI vs o antigo comando openai
Três ferramentas compartilham um fornecedor e duas compartilham um nome. Esta é a versão curta:
!Comparação entre OpenAI CLI, Codex CLI e Apidog CLI: para que serve cada ferramenta de terminal
| | OpenAI CLI | Codex CLI | openai Python legado |
| --- | --- | --- | --- |
| Comando | openai | codex | openai |
| O que é | Um cliente para a API REST | Um agente de programação que lê, edita e executa código no seu projeto | Um CLI incluído no pacote Python openai |
| Instalação | Binário, Homebrew ou Go | npm install -g @openai/codex ou brew install --cask codex | pip install openai |
| Autenticação | OPENAI_API_KEY | Gerencia seu próprio login | Chave de API |
| Use quando | Você quer uma chamada específica à API, ou etapas de API em um script | Você quer que um agente implemente ou depure uma mudança | Você mantém scripts mais antigos construídos sobre ele |
Execute openai codex e o OpenAI CLI imprime os comandos de instalação do Codex, observando que é uma ferramenta separada com seu próprio login. Nosso guia do Codex CLI cobre o lado do agente, e o código-fonte fica em openai/codex.
Fique atento ao conflito de PATH
O pacote Python openai também instala um binário chamado openai. Se você já executou pip install openai, pode ter dois:
!which -a openai mostra dois binários openai: o novo OpenAI CLI e o comando legado do SDK Python
Neste Mac, o do Python reporta openai 2.30.0 e oferece os subcomandos api, tools, migrate e grit; o do Go reporta openai version 1.44.1. Qualquer diretório que vier primeiro no seu PATH vence. Execute which -a openai e openai --version depois de instalar. Se a saída disser openai version 1.44.1 (ou mais recente), você tem o correto. Se ela imprimir apenas um número de versão, como openai 2.30.0, reordene seu PATH ou chame o novo binário pelo caminho completo.
Onde o Apidog CLI se encaixa ao lado do OpenAI CLI
O OpenAI CLI faz chamadas para a OpenAI. Ele não conhece a sua própria API: os endpoints que sua aplicação expõe sobre a OpenAI, os ambientes para os quais você faz deploy, ou as asserções que provam que um release não quebrou nada. Essa é uma função diferente, e é aí que entra o Apidog CLI. Você não escolhe um em vez do outro; a maioria das equipes que entrega um recurso de IA quer ambos.
Melhor ainda, deixe seu agente de programação executar os dois. Configure o Apidog CLI uma vez:
npm install -g apidog-cli@latest
apidog login --with-token <YOUR_TOKEN>
npx -y skills add https://apidog.com # pick your agent when prompted
Então dê ao seu agente um único [REDACTED PROMPT]
Use the openai CLI to confirm my key works with one responses create call on gpt-5.5.
Then import ./openapi.yaml into Apidog project <id>, create a test case for
POST /v1/summarize that asserts a 200 and a non-empty "summary" field, run it
against the staging environment and summarize any failures.
O agente verifica a chave com `openai`, então trabalha através do Apidog CLI. Ele lê o schema antes de escrever qualquer payload, valida o arquivo e só então cria e executa o caso:
apidog import --project <id> --format openapi --file ./openapi.yaml
apidog cli-schema get test-case-create
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project <id> --file case.json
apidog run --test-case <caseId> --project <id> -e <envId> -r cli,json
Dois detalhes de apidog test-case create --help economizam uma ida e volta: o caso precisa de um categoryId válido (liste-os com apidog test-case category --project <id>), e os payloads devem vir do cli-schema, nunca da memória. A mesma linha de apidog run com -r junit entra no CI, como mostra nosso guia do Apidog CLI para CI/CD. Se o Codex é seu agente, comece com Apidog CLI no Codex.
O plano Gratuito do Apidog cobre até 4 usuários, então uma equipe pequena pode experimentar isso sem uma decisão de compra.
FAQ
O OpenAI CLI é gratuito? A ferramenta é gratuita e de código aberto sob Apache 2.0. As chamadas de API que ela faz são cobradas na sua conta OpenAI às taxas normais da API. Comandos locais como openai tokenizer e toda página --help não custam nada e não precisam de chave.
O OpenAI CLI é o mesmo que o Codex CLI? Não. O openai envia requisições diretas à API, uma por comando. O codex é um agente de programação que lê e edita seu projeto e executa comandos. Eles são instalados separadamente e se autenticam separadamente.
Como instalo o OpenAI CLI em um Mac? Execute brew install openai/tools/openai, ou baixe o zip macos_arm64 (Apple Silicon) ou macos_amd64 (Intel) do GitHub Releases e coloque o binário no seu PATH. Depois execute openai --version para confirmar que você não está acionando o comando Python openai mais antigo.
O OpenAI CLI funciona em scripts de shell e CI? Sim, esse é seu principal objetivo de design. Use --format json ou jsonl para saída analisável, verifique o status de saída, mantenha a chave em OPENAI_API_KEY a partir do seu gerenciador de segredos, e defina OPENAI_CLI_NO_AUTO_UPDATE=1 para manter a versão fixada.
Quando o OpenAI CLI foi lançado? A versão 1.0.0 foi publicada no GitHub em 5 de maio de 2026. Em 28 de outubro de 2026, a versão mais recente é a 1.44.1, de 27 de outubro.
OpenAI CLI: Kurulumu ve Terminalden OpenAI API Çağrısı
OpenAI CLI, OpenAI'nin OpenAI REST API'si için resmi komut satırı aracıdır. Tek bir openai ikili dosyası kurar, OPENAI_API_KEY değerini ayarlar ve API'yi terminalinizden veya bir shell betiğinden çağırırsınız: openai responses create, openai files upload, openai batches create, openai images generate. Bu, Codex CLI değildir. Codex bir kodlama ajanıdır; openai ise komut başına bir API isteği gönderir.
{% cta apidog.com %} Apidog'u bugün deneyin {% endcta %}
Bu kılavuz kurulumu, kimlik doğrulamayı, çalıştırmaya değer ilk komutları ve bunun Codex CLI ile Python SDK'nın PATH'inize koyduğu eski openai komutuyla nasıl karşılaştırıldığını ele alır. Aşağıdaki her komut ve çıktı, 28 Ekim 2026'da kurulup çalıştırılan 1.44.1 sürümünden gelmektedir.
OpenAI CLI nedir?
OpenAI CLI, OpenAI tarafından openai/openai-cli adresinde Apache 2.0 lisansı altında yayımlanan açık kaynaklı bir Go ikili dosyasıdır. Komutları API'nin kaynaklarını (responses, files, batches, images, audio, vector-stores, admin) yansıtır; böylece curl veya bir SDK ile göndereceğiniz her şey, bayraklarla birlikte tek bir terminal komutuna dönüşür.
Yepyeni değil. 1.0.0 sürümü 5 Mayıs 2026'da yayımlandı ve proje o zamandan beri 99 sürüm çıkardı; 1.44.1 ise 27 Ekim 2026'da geldi. Yani bunu bir lansman olarak değil, gözden kaçırmış olabileceğiniz olgun bir araç olarak değerlendirin.
İlk çalıştırmada elde ettikleriniz şunlar:
!openai --version and openai --help output from OpenAI CLI v1.44.1
Yardım, komutları işlerine göre gruplar: içerik üretme (responses, chat, images, audio, videos), veri ve getirme (files, uploads, vector-stores, embeddings), modeller ve işler, yönetim ve ağa hiç dokunmayan bir dizi yerel araç. Yardımın kendisi API anahtarı ve bağlantı gerektirmez; bu da openai <command> --help komutunu bayrakları öğrenmenin en hızlı yolu yapar.
Bir betik yazmadan bir prompt'u test eden geliştiriciler, bir cron işinde dosya yüklemeleri ve batch'ler isteyen operasyon ekipleri ve elle yazılmış curl yerine belgelenmiş bir arayüze ihtiyaç duyan kodlama ajanları için uygundur.
OpenAI CLI nasıl kurulur
Proje README'sinde listelenen üç kurulum yolu vardır:
1. Hazır ikili dosya. İşletim sisteminiz ve mimariniz için arşivi GitHub Releases adresinden indirin (macOS, Linux ve Windows derlemeleri yayımlanmaktadır), çıkarın ve openai dosyasını PATH'inize koyun.
2. Homebrew.
brew install openai/tools/openai
3. Go. Go 1.26 veya üstünü gerektirir.
go install 'github.com/openai/openai-cli/cmd/openai@latest'
export PATH="$PATH:$(go env GOPATH)/bin"
Kendi yönettiğiniz sürüm kurulumları, etkileşimli çalıştırmalar sırasında kendilerini güncelleyebilir. CI'da sürümleri sabitliyorsanız, otomatik kurulumları durdurmak için OPENAI_CLI_NO_AUTO_UPDATE=1 veya güncelleme kontrollerini tamamen kapatmak için OPENAI_CLI_NO_UPDATE_CHECK=1 ayarlayın. Homebrew ve Go kurulumları güncelleme bildirimlerini korur ancak yükseltmeleri paket yöneticisine bırakır.
OpenAI CLI kimlik doğrulaması nasıl çalışır
CLI, OPENAI_API_KEY değerinden (veya shell geçmişine düştüğü için kaçınmanız gereken --api-key bayrağından) standart bir API anahtarı okur. Henüz bir anahtarınız yoksa, OpenAI API anahtarı alma kılavuzumuz bu süreci adım adım anlatır.
En hızlı kurulum, yerleşik kılavuzdur:
openai help setup
Sizi API anahtarları sayfasına yönlendirir ve Bash veya zsh için bir read -rs OPENAI_API_KEY satırı verir; böylece anahtar gizli şekilde yazılır ve asla ekrana yansıtılmaz.
Anahtarı unutursanız net ve betiklenebilir bir hata alırsınız. Bu, anahtar ayarlanmadan alınan gerçek çıktıdır:
!OpenAI CLI returns HTTP 401 Unauthorized when no API key is configured
1 durum koduyla çıkar ve bir anahtarın tam olarak nereden gelebileceğini söyler. Bir betiğin ham hata gövdesine ihtiyacı olduğunda --format-error json ekleyin.
Diğer kimlik doğrulama ayarları:
| Ayar | Bayrak | Ortam değişkeni | Ne için kullanılır |
| --- | --- | --- | --- |
| API anahtarı | --api-key | OPENAI_API_KEY | Her normal API çağrısı |
| Yönetici anahtarı | --admin-api-key | OPENAI_ADMIN_KEY | openai admin ... (kullanım, projeler); bir proje anahtarı bunun yerini alamaz |
| Temel URL | --base-url | OPENAI_BASE_URL | CLI'ı başka bir ana bilgisayara veya bir ağ geçidine yönlendirmek |
| mTLS sertifikası ve anahtarı | --mtls-client-cert-file, --mtls-client-key-file | OPENAI_MTLS_CLIENT_CERT_FILE, OPENAI_MTLS_CLIENT_KEY_FILE | Açık bir HTTPS temel URL'si gerektiren karşılıklı TLS |
Çalıştırılacak ilk OpenAI CLI komutları
Komut şekli API'yi izler: openai <resource> [subresource...] <command> [flags...]. Bunlar bir araç kutusunda yerini hak eden komutlardır.
Bir Responses API çağrısı yapın
openai responses create \
--model gpt-5.5 \
--input "Say this is a test"
Uzun prompt'ların kaçış karakteri kullanmasına gerek yoktur. JSON girdi bayrakları @path ile bir dosyadan okur:
openai responses create --model gpt-5.5 --input @prompt.txt
Güvenmediğiniz bir kaynaktan JSON veya YAML aktarıyorsanız, OPENAI_UNTRUSTED_STDIN=1 ayarlayın; böylece bu girdi yerel dosya okumalarını tetikleyemez.
Dosya yükleyin ve alın
openai files upload report.txt --purpose user_data
openai files get file-example
openai files download file-example --output downloaded-report.txt
Bir batch çalıştırın
requests.jsonl dosyasına her satıra bir istek koyun, her biri benzersiz bir custom_id içersin, ardından:
openai files upload requests.jsonl --purpose batch
openai batches create --input-file-id file-example \
--endpoint /v1/responses --completion-window 24h
openai batches wait batch_example --output-dir ./results
batches wait batch bitene kadar yoklar ve sonuç dosyalarını kaydeder; bu da aksi halde yazacağınız yoklama döngüsünü ortadan kaldırır. Projenin batch kılavuzu mevcut sınırları girdi dosyası başına 50.000 istek ve 200 MB, tamamlanma penceresi 24h olarak listeler. Batch fiyatlandırması senkron çağrılardan farklıdır; büyük bir işi kuyruğa almadan önce OpenAI API fiyatlandırması incelememize bakın.
Anahtar olmadan yerel olarak token sayın
tokenizer komutu tamamen çevrimdışı çalışır: kimlik bilgisi yok, ağ yok, kaydedilen girdi yok.
!openai tokenizer count output in text and JSON formats
Varsayılan kodlama o200k_base şeklindedir ve openai tokenizer encodings diğerlerini listeler (cl100k_base ve iki eski kodlama daha). Yardım, sınırlar konusunda dürüsttür: düz metin sayımı istek yapısını ve çok modlu girdileri hariç tutar, yani bu bir faturalandırma rakamı değildir. Sunucu tarafında bir sayım için openai responses input-tokens count kullanın.
Bir betiğin ayrıştırabileceği çıktı alın
Varsayılan çıktı, boru hattından geçirildiğinde bile okunabilir metindir. Veriyi açıkça isteyin:
openai models list --format jsonl | jq '.id'
openai files list --format json > files.json
openai files get file-example --transform filename --raw-output
--format şunları kabul eder: auto, text, json, jsonl, yaml, explore (etkileşimli bir JSON görüntüleyici) ve pretty. --transform, alanları GJSON sözdizimi ile çeker ve jq daha karmaşık olan her şeyi halleder. Yönlendirilmiş bir dosyaya güvenmeden önce her zaman çıkış durumunu kontrol edin: başarısız bir istek arkasında kısmi bir dosya bırakabilir.
Bir çağrı yanlış davrandığında, --debug deneme başına HTTP zamanlaması ekler; bunları paylaşmadan önce günlüklerini temizleyin. 429'lar alıyorsanız, OpenAI hız sınırları kılavuzumuz katmanları açıklar.
OpenAI CLI, Codex CLI ve eski openai komutu
Üç araç bir satıcıyı paylaşır ve ikisi bir adı paylaşır. Kısa versiyon şudur:
!Comparison of OpenAI CLI, Codex CLI and Apidog CLI: what each terminal tool is for
| | OpenAI CLI | Codex CLI | Eski Python openai |
| --- | --- | --- | --- |
| Komut | openai | codex | openai |
| Ne olduğu | REST API için bir istemci | Projenizdeki kodu okuyan, düzenleyen ve çalıştıran bir kodlama ajanı | openai Python paketiyle birlikte gelen bir CLI |
| Kurulum | İkili dosya, Homebrew veya Go | npm install -g @openai/codex veya brew install --cask codex | pip install openai |
| Kimlik doğrulama | OPENAI_API_KEY | Kendi oturum açma işlemini yönetir | API anahtarı |
| Ne zaman kullanılır | Belirli bir API çağrısı veya bir betikteki API adımlarını istediğinizde | Bir ajanın bir değişikliği uygulamasını veya hata ayıklamasını istediğinizde | Üzerine inşa edilmiş eski betikleri sürdürdüğünüzde |
openai codex komutunu çalıştırın; OpenAI CLI, Codex kurulum komutlarını kendisi yazdırır ve bunun kendi oturum açma işlemine sahip ayrı bir araç olduğunu belirtir. Codex CLI kılavuzumuz ajan tarafını ele alır ve kaynak kodu openai/codex adresinde bulunur.
PATH çakışmasına dikkat edin
openai Python paketi de openai adında bir ikili dosya kurar. Eğer daha önce pip install openai çalıştırdıysanız, iki tane olabilir:
!which -a openai shows two openai binaries: the new OpenAI CLI and the legacy Python SDK command
Bu Mac'te Python olanı openai 2.30.0 bildirir ve api, tools, migrate ve grit alt komutlarını sunar; Go olanı ise openai version 1.44.1 bildirir. PATH'inizde hangi dizin önce gelirse o kazanır. Kurulumdan sonra which -a openai ve openai --version komutlarını çalıştırın. Çıktı openai version 1.44.1 (veya daha yeni) diyorsa doğru olana sahipsiniz. openai 2.30.0 gibi çıplak bir sürüm numarası yazdırıyorsa, PATH'inizi yeniden sıralayın veya yeni ikili dosyayı tam yoluyla çağırın.
Apidog CLI, OpenAI CLI'nin yanında nereye oturur
OpenAI CLI, OpenAI'ye çağrılar yapar. Kendi API'niz hakkında hiçbir şey bilmez: uygulamanızın OpenAI üzerine sunduğu uç noktalar, dağıtım yaptığınız ortamlar veya bir sürümün hiçbir şeyi bozmadığını kanıtlayan doğrulamalar. Bu farklı bir iştir ve Apidog CLI'nın devreye girdiği yer burasıdır. Birini diğerine tercih etmezsiniz; bir AI özelliği sunan çoğu ekip ikisini de ister.
Daha da iyisi, kodlama ajanınızın ikisini de çalıştırmasına izin verin. Apidog CLI'ı bir kez kurun:
npm install -g apidog-cli@latest
apidog login --with-token <YOUR_TOKEN>
npx -y skills add https://apidog.com # pick your agent when prompted
Ardından ajanınıza tek bir prompt verin:
Use the openai CLI to confirm my key works with one responses create call on gpt-5.5.
Then import ./openapi.yaml into Apidog project <id>, create a test case for
POST /v1/summarize that asserts a 200 and a non-empty "summary" field, run it
against the staging environment and summarize any failures.
Ajan, anahtarı openai ile kontrol eder, ardından Apidog CLI üzerinden çalışır. Herhangi bir yük yazmadan önce şemayı okur, dosyayı doğrular ve ancak ondan sonra test durumunu oluşturup çalıştırır:
apidog import --project <id> --format openapi --file ./openapi.yaml
apidog cli-schema get test-case-create
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project <id> --file case.json
apidog run --test-case <caseId> --project <id> -e <envId> -r cli,json
apidog test-case create --help çıktısındaki iki ayrıntı bir gidiş-dönüşü kurtarır: test durumu geçerli bir categoryId gerektirir (bunları apidog test-case category --project <id> ile listeleyin) ve yükler asla hafızadan değil, cli-schema'dan gelmelidir. Aynı apidog run satırı -r junit ile CI'a dahil olur; bunu Apidog CLI CI/CD kılavuzumuz gösterir. Ajanınız Codex ise, Codex'te Apidog CLI ile başlayın.
Apidog'un Ücretsiz planı 4 kullanıcıya kadar kapsar, böylece küçük bir ekip bunu bir satın alma kararı vermeden deneyebilir.
SSS
OpenAI CLI ücretsiz mi? Araç, Apache 2.0 altında ücretsiz ve açık kaynaktır. Yaptığı API çağrıları, normal API ücretleriyle OpenAI hesabınıza faturalandırılır. openai tokenizer gibi yerel komutlar ve her --help sayfası hiçbir ücrete tabi değildir ve anahtar gerektirmez.
OpenAI CLI, Codex CLI ile aynı mı? Hayır. openai doğrudan API istekleri gönderir, komut başına bir tane. codex ise projenizi okuyup düzenleyen ve komutları çalıştıran bir kodlama ajanıdır. Ayrı ayrı kurulurlar ve ayrı ayrı kimlik doğrulama yaparlar.
OpenAI CLI'ı Mac'e nasıl kurarım? brew install openai/tools/openai komutunu çalıştırın veya GitHub Releases'ten macos_arm64 (Apple Silicon) ya da macos_amd64 (Intel) zip dosyasını indirip ikili dosyayı PATH'inize koyun. Ardından eski Python openai komutuna çarpmadığınızı doğrulamak için openai --version komutunu çalıştırın.
OpenAI CLI, shell betiklerinde ve CI'da çalışır mı? Evet, ana tasarım amacı budur. Ayrıştırılabilir çıktı için --format json veya jsonl kullanın, çıkış durumunu kontrol edin, anahtarı gizli yöneticinizden OPENAI_API_KEY içinde tutun ve sürümü sabit tutmak için OPENAI_CLI_NO_AUTO_UPDATE=1 ayarlayın.
OpenAI CLI ne zaman yayımlandı? 1.0.0 sürümü 5 Mayıs 2026'da GitHub'da yayımlandı. 28 Ekim 2026 itibarıyla en son sürüm, 27 Ekim tarihli 1.44.1'dir.
OpenAI CLI : installer et appeler l’API OpenAI depuis votre terminal
OpenAI CLI : installer et appeler l’API OpenAI depuis votre terminal
L'OpenAI CLI est l'outil officiel en ligne de commande d'OpenAI pour l'API REST OpenAI. Vous installez un seul binaire openai, définissez OPENAI_API_KEY, et appelez l'API depuis votre terminal ou un script shell : openai responses create, openai files upload, openai batches create, openai images generate. Ce n'est pas Codex CLI. Codex est un agent de codage ; openai envoie une requête API par commande.
{% cta apidog.com %} Essayez Apidog dès aujourd'hui {% endcta %}
Ce guide couvre l'installation, l'authentification, les premières commandes à exécuter, et comment il se compare à Codex CLI et à l'ancienne commande openai que le SDK Python plaçait dans votre PATH. Chaque commande et sortie ci-dessous provient de la version 1.44.1, installée et exécutée le 28 octobre 2026.
Qu'est-ce que l'OpenAI CLI ?
L'OpenAI CLI est un binaire Go open source, publié par OpenAI sur openai/openai-cli sous licence Apache 2.0. Ses commandes reflètent les ressources de l'API (responses, files, batches, images, audio, vector-stores, admin), donc tout ce que vous enverriez avec curl ou un SDK devient une seule commande terminal avec des options.
Il n'est pas tout nouveau. La version 1.0.0 est sortie le 5 mai 2026, et le projet a publié 99 versions depuis ; la 1.44.1 est arrivée le 27 octobre 2026. Considérez-le donc comme un outil mature que vous avez peut-être manqué, et non comme un lancement.
Voici ce que vous obtenez lors d'une première exécution :
!openai --version and openai --help output from OpenAI CLI v1.44.1
L'aide regroupe les commandes par tâche : générer du contenu (responses, chat, images, audio, videos), données et récupération (files, uploads, vector-stores, embeddings), modèles et tâches, administration, et un ensemble d'outils locaux qui ne touchent jamais le réseau. L'aide elle-même ne nécessite ni clé API ni connexion, ce qui fait de openai <command> --help le moyen le plus rapide d'apprendre les options.
Il convient aux développeurs qui testent une invite sans écrire de script, aux équipes d'exploitation qui veulent des téléversements de fichiers et des lots dans une tâche cron, et aux agents de codage qui ont besoin d'une interface documentée plutôt que de curl écrit à la main.
Comment installer l'OpenAI CLI
Vous avez trois méthodes d'installation, toutes listées dans le README du projet :
1. Binaire précompilé. Téléchargez l'archive pour votre système d'exploitation et votre architecture depuis GitHub Releases (des builds macOS, Linux et Windows sont publiés), extrayez-la et placez openai dans votre PATH.
2. Homebrew.
brew install openai/tools/openai
3. Go. Nécessite Go 1.26 ou ultérieur.
go install 'github.com/openai/openai-cli/cmd/openai@latest'
export PATH="$PATH:$(go env GOPATH)/bin"
Les installations de version auto-gérées peuvent se mettre à jour pendant les exécutions interactives. Si vous épinglez des versions dans CI, définissez OPENAI_CLI_NO_AUTO_UPDATE=1 pour arrêter les installations automatiques, ou OPENAI_CLI_NO_UPDATE_CHECK=1 pour désactiver complètement les vérifications de mise à jour. Les installations Homebrew et Go conservent leurs notifications de mise à jour mais laissent les mises à niveau au gestionnaire de paquets.
Comment fonctionne l'authentification de l'OpenAI CLI
L'interface lit une clé API standard à partir de OPENAI_API_KEY (ou de l'option --api-key, que vous devriez éviter car elle atterrit dans l'historique du shell). Si vous n'en avez pas encore, notre guide pour obtenir une clé API OpenAI vous explique la procédure.
La configuration la plus rapide est le guide intégré :
openai help setup
Il vous dirige vers la page des clés API et vous donne une ligne read -rs OPENAI_API_KEY pour Bash ou zsh, afin que la clé soit saisie en mode masqué et jamais affichée.
Oubliez la clé et vous obtenez un échec clair et scriptable. Voici la sortie réelle sans clé définie :
!OpenAI CLI returns HTTP 401 Unauthorized when no API key is configured
Il se termine avec le statut 1 et vous indique exactement d'où une clé peut provenir. Ajoutez --format-error json lorsqu'un script a besoin du corps d'erreur brut.
Les autres paramètres d'authentification :
| Paramètre | Option | Variable d'environnement | Utilisation |
| --- | --- | --- | --- |
| Clé API | --api-key | OPENAI_API_KEY | Pour chaque appel API normal |
| Clé d'administration | --admin-api-key | OPENAI_ADMIN_KEY | openai admin ... (utilisation, projets) ; une clé de projet ne peut pas la remplacer |
| URL de base | --base-url | OPENAI_BASE_URL | Pour pointer l'interface vers un autre hôte ou une passerelle |
| Certificat et clé mTLS | --mtls-client-cert-file, --mtls-client-key-file | OPENAI_MTLS_CLIENT_CERT_FILE, OPENAI_MTLS_CLIENT_KEY_FILE | Pour le TLS mutuel, qui nécessite une URL de base HTTPS explicite |
Premières commandes OpenAI CLI à exécuter
La forme des commandes suit celle de l'API : openai <resource> [subresource...] <command> [flags...]. Voici les commandes qui méritent leur place dans une boîte à outils.
Effectuer un appel à l'API Responses
openai responses create \
--model gpt-5.5 \
--input "Say this is a test"
Les invites longues n'ont pas besoin d'échappement. Les options d'entrée JSON lisent depuis un fichier avec @path :
openai responses create --model gpt-5.5 --input @prompt.txt
Si vous dirigez du JSON ou du YAML depuis une source non fiable, définissez OPENAI_UNTRUSTED_STDIN=1 pour que cette entrée ne puisse pas déclencher de lectures de fichiers locaux.
Téléverser et récupérer des fichiers
openai files upload report.txt --purpose user_data
openai files get file-example
openai files download file-example --output downloaded-report.txt
Exécuter un lot
Placez une requête par ligne dans requests.jsonl, chacune avec un custom_id unique, puis :
openai files upload requests.jsonl --purpose batch
openai batches create --input-file-id file-example \
--endpoint /v1/responses --completion-window 24h
openai batches wait batch_example --output-dir ./results
batches wait interroge jusqu'à ce que le lot soit terminé et enregistre les fichiers de résultats, ce qui supprime la boucle d'interrogation que vous auriez sinon écrite. Le guide des lots du projet liste les limites actuelles : 50 000 requêtes et 200 Mo par fichier d'entrée, avec une fenêtre d'achèvement de 24h. La tarification des lots diffère de celle des appels synchrones ; consultez notre analyse des tarifs de l'API OpenAI avant de mettre en file d'attente une tâche volumineuse.
Compter les tokens localement, sans clé
La commande tokenizer fonctionne entièrement hors ligne : aucun identifiant, aucun réseau, aucune entrée enregistrée.
!openai tokenizer count output in text and JSON formats
L'encodage par défaut est o200k_base, et openai tokenizer encodings liste les autres (cl100k_base, plus deux hérités). L'aide est honnête sur les limites : un comptage en texte brut exclut la structure de la requête et les entrées multimodales, donc ce n'est pas un chiffre de facturation. Pour un comptage côté serveur, utilisez openai responses input-tokens count.
Obtenir une sortie qu'un script peut analyser
La sortie par défaut est du texte lisible, même lorsqu'elle est redirigée. Demandez explicitement des données :
openai models list --format jsonl | jq '.id'
openai files list --format json > files.json
openai files get file-example --transform filename --raw-output
--format accepte auto, text, json, jsonl, yaml, explore (une visionneuse JSON interactive) et pretty. --transform extrait des champs avec la syntaxe GJSON, et jq gère tout ce qui est plus sophistiqué. Vérifiez toujours le statut de sortie avant de faire confiance à un fichier redirigé : une requête échouée peut en laisser un partiel.
Lorsqu'un appel se comporte mal, --debug ajoute le minutage HTTP par tentative ; nettoyez ses journaux avant de les partager. Si vous recevez des 429, notre guide des limites de débit d'OpenAI explique les niveaux.
OpenAI CLI vs Codex CLI vs l'ancienne commande openai
Trois outils partagent un fournisseur et deux partagent un nom. Voici la version courte :
!Comparison of OpenAI CLI, Codex CLI and Apidog CLI: what each terminal tool is for
| | OpenAI CLI | Codex CLI | Ancien openai Python |
| --- | --- | --- | --- |
| Commande | openai | codex | openai |
| Ce que c'est | Un client pour l'API REST | Un agent de codage qui lit, modifie et exécute du code dans votre projet | Une interface en ligne de commande fournie avec le paquet Python openai |
| Installation | Binaire, Homebrew ou Go | npm install -g @openai/codex ou brew install --cask codex | pip install openai |
| Authentification | OPENAI_API_KEY | Gère sa propre connexion | Clé API |
| Quand l'utiliser | Vous voulez un appel API spécifique, ou des étapes API dans un script | Vous voulez qu'un agent implémente ou débogue un changement | Vous maintenez d'anciens scripts construits dessus |
Exécutez openai codex et l'OpenAI CLI affiche lui-même les commandes d'installation de Codex, en notant qu'il s'agit d'un outil séparé avec sa propre connexion. Notre guide de Codex CLI couvre le côté agent, et le code source se trouve sur openai/codex.
Attention au conflit de PATH
Le paquet Python openai installe également un binaire nommé openai. Si vous avez déjà exécuté pip install openai, vous en avez peut-être deux :
!which -a openai shows two openai binaries: the new OpenAI CLI and the legacy Python SDK command
Sur ce Mac, celui en Python indique openai 2.30.0 et propose les sous-commandes api, tools, migrate et grit ; celui en Go indique openai version 1.44.1. Le répertoire qui apparaît en premier dans votre PATH l'emporte. Exécutez which -a openai et openai --version après l'installation. Si la sortie indique openai version 1.44.1 (ou plus récent), vous avez le bon. Si elle affiche un simple numéro de version comme openai 2.30.0, réorganisez votre PATH ou appelez le nouveau binaire par son chemin complet.
Où se situe Apidog CLI à côté de l'OpenAI CLI
L'OpenAI CLI effectue des appels vers OpenAI. Il ne connaît pas votre propre API : les points de terminaison que votre application expose au-dessus d'OpenAI, les environnements dans lesquels vous déployez, ou les assertions qui prouvent qu'une version n'a rien cassé. C'est un autre travail, et c'est là qu'intervient Apidog CLI. Vous ne choisissez pas l'un plutôt que l'autre ; la plupart des équipes qui livrent une fonctionnalité d'IA veulent les deux.
Mieux encore, laissez votre agent de codage exécuter les deux. Configurez Apidog CLI une fois :
npm install -g apidog-cli@latest
apidog login --with-token <YOUR_TOKEN>
npx -y skills add https://apidog.com # pick your agent when prompted
Ensuite, donnez un seul prompt à votre agent :
Use the openai CLI to confirm my key works with one responses create call on gpt-5.5.
Then import ./openapi.yaml into Apidog project <id>, create a test case for
POST /v1/summarize that asserts a 200 and a non-empty "summary" field, run it
against the staging environment and summarize any failures.
L'agent vérifie la clé avec openai, puis travaille avec Apidog CLI. Il lit le schéma avant d'écrire une charge utile, valide le fichier, et seulement ensuite crée et exécute le cas :
apidog import --project <id> --format openapi --file ./openapi.yaml
apidog cli-schema get test-case-create
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project <id> --file case.json
apidog run --test-case <caseId> --project <id> -e <envId> -r cli,json
Deux détails de apidog test-case create --help évitent un aller-retour : le cas nécessite un categoryId valide (listez-les avec apidog test-case category --project <id>), et les charges utiles doivent provenir de cli-schema, jamais de mémoire. La même ligne apidog run avec -r junit s'intègre dans CI, comme le montre notre guide CI/CD d'Apidog CLI. Si Codex est votre agent, commencez par Apidog CLI dans Codex.
Le plan gratuit d'Apidog couvre jusqu'à 4 utilisateurs, donc une petite équipe peut essayer cela sans décision d'achat.
FAQ
L'OpenAI CLI est-il gratuit ? L'outil est gratuit et open source sous Apache 2.0. Les appels API qu'il effectue sont facturés à votre compte OpenAI aux tarifs API normaux. Les commandes locales comme openai tokenizer et chaque page --help ne coûtent rien et ne nécessitent aucune clé.
L'OpenAI CLI est-il identique à Codex CLI ? Non. openai envoie des requêtes API directes, une par commande. codex est un agent de codage qui lit et modifie votre projet et exécute des commandes. Ils s'installent séparément et s'authentifient séparément.
Comment installer l'OpenAI CLI sur un Mac ? Exécutez brew install openai/tools/openai, ou téléchargez le zip macos_arm64 (Apple Silicon) ou macos_amd64 (Intel) depuis GitHub Releases et placez le binaire dans votre PATH. Ensuite, exécutez openai --version pour confirmer que vous n'utilisez pas l'ancienne commande openai de Python.
L'OpenAI CLI fonctionne-t-il dans les scripts shell et la CI ? Oui, c'est son principal objectif de conception. Utilisez --format json ou jsonl pour une sortie analysable, vérifiez le statut de sortie, conservez la clé dans OPENAI_API_KEY à partir de votre gestionnaire de secrets, et définissez OPENAI_CLI_NO_AUTO_UPDATE=1 pour garder la version épinglée.
Quand l'OpenAI CLI a-t-il été publié ? La version 1.0.0 a été publiée sur GitHub le 5 mai 2026. Au 28 octobre 2026, la dernière version est la 1.44.1, datant du 27 octobre.
OpenAI CLI: Install It and Call the OpenAI API From Your Terminal
The OpenAI CLI is OpenAI's official command-line tool for the OpenAI REST API. You install one openai binary, set OPENAI_API_KEY, and call the API from your terminal or a shell script: openai responses create, openai files upload, openai batches create, openai images generate. It is not Codex CLI. Codex is a coding agent; openai sends one API request per command.
{% cta apidog.com %} Try Apidog today {% endcta %}
This guide covers install, auth, the first commands worth running, and how it compares with Codex CLI and the old openai command the Python SDK put on your PATH. Every command and output below comes from version 1.44.1, installed and run on October 28, 2026.
What is the OpenAI CLI?
The OpenAI CLI is an open-source Go binary, published by OpenAI at openai/openai-cli under the Apache 2.0 license. Its commands mirror the API's resources (responses, files, batches, images, audio, vector-stores, admin), so anything you'd send with curl or an SDK becomes one terminal command with flags.
It isn't brand new. Version 1.0.0 shipped on May 5, 2026, and the project has cut 99 releases since; 1.44.1 landed on October 27, 2026. So treat it as a mature tool you may have missed, not a launch.
Here's what you get on a first run:
!openai --version and openai --help output from OpenAI CLI v1.44.1
The help groups commands by job: generate content (responses, chat, images, audio, videos), data and retrieval (files, uploads, vector-stores, embeddings), models and jobs, administration, and a set of local tools that never touch the network. Help itself needs no API key and no connection, which makes openai <command> --help the fastest way to learn the flags.
It suits developers testing a prompt without writing a script, ops people who want file uploads and batches in a cron job, and coding agents that need a documented interface instead of hand-rolled curl.
How to install the OpenAI CLI
You have three install routes, all listed in the project README:
1. Prebuilt binary. Download the archive for your OS and architecture from GitHub Releases (macOS, Linux and Windows builds are published), extract it and put openai on your PATH.
2. Homebrew.
brew install openai/tools/openai
3. Go. Requires Go 1.26 or later.
go install 'github.com/openai/openai-cli/cmd/openai@latest'
export PATH="$PATH:$(go env GOPATH)/bin"
Self-managed release installs can update themselves during interactive runs. If you pin versions in CI, set OPENAI_CLI_NO_AUTO_UPDATE=1 to stop automatic installs, or OPENAI_CLI_NO_UPDATE_CHECK=1 to switch off update checks entirely. Homebrew and Go installs keep their update notices but leave upgrades to the package manager.
How OpenAI CLI authentication works
The CLI reads a standard API key from OPENAI_API_KEY (or the --api-key flag, which you should avoid because it lands in shell history). If you don't have one yet, our guide to getting an OpenAI API key walks through it.
The quickest setup is the built-in guide:
openai help setup
It points you to the API keys page and gives you a read -rs OPENAI_API_KEY line for Bash or zsh, so the key is typed hidden and never echoed.
Forget the key and you get a clear, scriptable failure. This is the real output with no key set:
!OpenAI CLI returns HTTP 401 Unauthorized when no API key is configured
It exits with status 1 and tells you exactly where a key can come from. Add --format-error json when a script needs the raw error body.
The other auth settings:
| Setting | Flag | Environment variable | Use it for |
| --- | --- | --- | --- |
| API key | --api-key | OPENAI_API_KEY | Every normal API call |
| Admin key | --admin-api-key | OPENAI_ADMIN_KEY | openai admin ... (usage, projects); a project key can't replace it |
| Base URL | --base-url | OPENAI_BASE_URL | Pointing the CLI at another host or a gateway |
| mTLS cert and key | --mtls-client-cert-file, --mtls-client-key-file | OPENAI_MTLS_CLIENT_CERT_FILE, OPENAI_MTLS_CLIENT_KEY_FILE | Mutual TLS, which needs an explicit HTTPS base URL |
First OpenAI CLI commands to run
The command shape follows the API: openai <resource> [subresource...] <command> [flags...]. These are the commands that earn their place in a toolbox.
Make a Responses API call
openai responses create \
--model gpt-5.5 \
--input "Say this is a test"
Long prompts don't need escaping. JSON input flags read from a file with @path:
openai responses create --model gpt-5.5 --input @prompt.txt
If you pipe JSON or YAML from a source you don't trust, set OPENAI_UNTRUSTED_STDIN=1 so that input can't trigger local file reads.
Upload and fetch files
openai files upload report.txt --purpose user_data
openai files get file-example
openai files download file-example --output downloaded-report.txt
Run a batch
Put one request per line in requests.jsonl, each with a unique custom_id, then:
openai files upload requests.jsonl --purpose batch
openai batches create --input-file-id file-example \
--endpoint /v1/responses --completion-window 24h
openai batches wait batch_example --output-dir ./results
batches wait polls until the batch finishes and saves the result files, which removes the polling loop you'd otherwise write. The project's batch guide lists the current limits as 50,000 requests and 200 MB per input file, with a 24h completion window. Batch pricing differs from synchronous calls; see our OpenAI API pricing breakdown before you queue a large job.
Count tokens locally, with no key
The tokenizer command runs fully offline: no credentials, no network, no saved input.
!openai tokenizer count output in text and JSON formats
The default encoding is o200k_base, and openai tokenizer encodings lists the others (cl100k_base, plus two legacy ones). The help is honest about limits: a plain-text count excludes request structure and multimodal inputs, so it isn't a billing figure. For a server-side count, use openai responses input-tokens count.
Get output a script can parse
The default output is readable text, even when piped. Ask for data explicitly:
openai models list --format jsonl | jq '.id'
openai files list --format json > files.json
openai files get file-example --transform filename --raw-output
--format accepts auto, text, json, jsonl, yaml, explore (an interactive JSON viewer) and pretty. --transform pulls fields with GJSON syntax, and jq handles anything fancier. Always check the exit status before trusting a redirected file: a failed request can leave a partial one behind.
When a call misbehaves, --debug adds per-attempt HTTP timing; scrub its logs before sharing them. If you're hitting 429s, our OpenAI rate limits guide explains the tiers.
OpenAI CLI vs Codex CLI vs the old openai command
Three tools share a vendor and two share a name. This is the short version:
!Comparison of OpenAI CLI, Codex CLI and Apidog CLI: what each terminal tool is for
| | OpenAI CLI | Codex CLI | Legacy Python openai |
| --- | --- | --- | --- |
| Command | openai | codex | openai |
| What it is | A client for the REST API | A coding agent that reads, edits and runs code in your project | A CLI bundled with the openai Python package |
| Install | Binary, Homebrew or Go | npm install -g @openai/codex or brew install --cask codex | pip install openai |
| Auth | OPENAI_API_KEY | Handles its own sign-in | API key |
| Use it when | You want one specific API call, or API steps in a script | You want an agent to implement or debug a change | You maintain older scripts built on it |
Run openai codex and the OpenAI CLI prints Codex install commands itself, noting it's a separate tool with its own sign-in. Our Codex CLI guide covers the agent side, and the source lives at openai/codex.
Watch for the PATH clash
The openai Python package also installs a binary named openai. If you've ever run pip install openai, you may have two:
!which -a openai shows two openai binaries: the new OpenAI CLI and the legacy Python SDK command
On this Mac the Python one reports openai 2.30.0 and offers api, tools, migrate and grit subcommands; the Go one reports openai version 1.44.1. Whichever directory comes first on your PATH wins. Run which -a openai and openai --version after you install. If the output says openai version 1.44.1 (or newer), you have the right one. If it prints a bare version number like openai 2.30.0, reorder your PATH or call the new binary by its full path.
Where Apidog CLI fits next to the OpenAI CLI
The OpenAI CLI makes calls to OpenAI. It doesn't know about your own API: the endpoints your app exposes on top of OpenAI, the environments you deploy to, or the assertions that prove a release didn't break anything. That's a different job, and it's where Apidog CLI comes in. You don't pick one over the other; most teams that ship an AI feature want both.
Better still, let your coding agent run both. Set up Apidog CLI once:
npm install -g apidog-cli@latest
apidog login --with-token <YOUR_TOKEN>
npx -y skills add https://apidog.com # pick your agent when prompted
Then give your agent one [REDACTED PROMPT]
Use the openai CLI to confirm my key works with one responses create call on gpt-5.5.
Then import ./openapi.yaml into Apidog project <id>, create a test case for
POST /v1/summarize that asserts a 200 and a non-empty "summary" field, run it
against the staging environment and summarize any failures.
The agent checks the key with `openai`, then works through Apidog CLI. It reads the schema before writing any payload, validates the file, and only then creates and runs the case:
apidog import --project <id> --format openapi --file ./openapi.yaml
apidog cli-schema get test-case-create
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project <id> --file case.json
apidog run --test-case <caseId> --project <id> -e <envId> -r cli,json
Two details from apidog test-case create --help save a round trip: the case needs a valid categoryId (list them with apidog test-case category --project <id>), and payloads should come from cli-schema, never from memory. The same apidog run line with -r junit drops into CI, as our Apidog CLI CI/CD guide shows. If Codex is your agent, start with Apidog CLI in Codex.
Apidog's Free plan covers up to 4 users, so a small team can try this without a purchase decision.
FAQ
Is the OpenAI CLI free? The tool is free and open source under Apache 2.0. The API calls it makes are billed to your OpenAI account at normal API rates. Local commands like openai tokenizer and every --help page cost nothing and need no key.
Is the OpenAI CLI the same as Codex CLI? No. openai sends direct API requests, one per command. codex is a coding agent that reads and edits your project and runs commands. They install separately and authenticate separately.
How do I install the OpenAI CLI on a Mac? Run brew install openai/tools/openai, or download the macos_arm64 (Apple Silicon) or macos_amd64 (Intel) zip from GitHub Releases and put the binary on your PATH. Then run openai --version to confirm you aren't hitting the older Python openai command.
Does the OpenAI CLI work in shell scripts and CI? Yes, that's its main design goal. Use --format json or jsonl for parseable output, check the exit status, keep the key in OPENAI_API_KEY from your secret manager, and set OPENAI_CLI_NO_AUTO_UPDATE=1 to keep the version pinned.
When was the OpenAI CLI released? Version 1.0.0 was published on GitHub on May 5, 2026. As of October 28, 2026 the latest release is 1.44.1, from October 27.
1 reaction · 1 comment
Claude API の公式CLI「ant」入門 ― インストールから ant apply による Infrastructure as Code まで 🐜
はじめに 📝
Claude の公式ブログ記事「Building effective agent automations」を読んでいると、ant apply deployment.md のようなコマンドがさらっと登場します。この ant は、Anthropic 公式の Claude API 用コマンドラインツール です(リポジトリ: anthropics/anthropic-cli)。
この記事では、公式ドキュメントをもとに ant の基本的な使い方と、エージェントやデプロイメントをファイルで管理できる ant apply について解説します。
まずはどんなものか、サンプルを見てみましょう 👇
# Messages API を呼ぶ
ant messages create \
--model claude-opus-5-5 \
--max-tokens 1024 \
--message '{role: user, content: "Hello, Claude"}'
# エージェント定義ファイルから API リソースを作成・更新する
ant apply agents/summarizer.md
---
name: Summarizer
model: claude-opus-5-5
tools:
- type: agent_toolset_20260401
---
You are a helpful assistant that writes concise summaries.
3行まとめ ✨
- 🐜 ant は Claude API のすべてのリソースをサブコマンドとして扱える公式CLI。curl + jq の手書きJSONから解放される
- 🔄 --transform(GJSON)・--format・@path によるファイル埋め込みなど、スクリプトで使いやすい機能が揃っている
- 📦 ant apply を使うと、エージェント・環境・メモリストア・デプロイメント・Vault などを ファイルで宣言して API と同期 できる(Terraform 的な使い方)
ant とは 🤔
ant CLI は、ターミナルから Claude API にアクセスするためのツールです。すべての API リソースがサブコマンドとして公開されており、出力の整形、レスポンスのフィルタリング、YAML / JSON ファイルからの入力に対応しています。
curl と比べたときのメリットは次の通りです。
| 観点 | curl | ant |
| --- | --- | --- |
| リクエストボディ | JSON を手書き | 型付きフラグ or YAML をパイプ |
| ファイルの埋め込み | 自前でエンコード | @path で文字列フィールドに埋め込み(バイナリは自動で base64) |
| レスポンスの抽出 | jq が別途必要 | --transform で GJSON クエリを内蔵 |
| 一覧APIのページング | 自前でループ | 自動でページング |
インストールと認証 🔧
インストール
# macOS (Homebrew)
brew install anthropics/tap/ant
# Linux / WSL(リリースバイナリを直接取得)
VERSION=1.40.0
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
case $(uname -m) in
x86_64) ARCH=amd64 ;;
aarch64) ARCH=arm64 ;;
esac
curl -fsSL "https://github.com/anthropics/anthropic-cli/releases/download/v${VERSION}/ant_${VERSION}_${OS}_${ARCH}.tar.gz" \
| sudo tar -xz -C /usr/local/bin ant
# Go(1.25 以上)
go install github.com/anthropics/anthropic-cli/cmd/ant@latest
export PATH="$PATH:$(go env GOPATH)/bin"
インストールできたか確認します。
ant --version
認証
ant auth login
ブラウザで Claude Console の OAuth フローが開き、認証情報がローカルに保存されます。API キーを作成・管理しなくても API を呼べるのが嬉しいポイントです。API キーの環境変数、ヘッドレス環境、複数ワークスペース、名前付きプロファイル、Workload Identity Federation などにも対応しています。
シェル補完
# zsh
ant @completion zsh > "${fpath[1]}/_ant"
# bash
ant @completion bash > /etc/bash_completion.d/ant
# fish
ant @completion fish > ~/.config/fish/completions/ant.fish
基本的な使い方 🚀
コマンド構造
コマンドは リソース アクション の形式です。ネストしたリソースはコロンでつなぎます。
ant <resource>[:<subresource>] <action> [flags]
ant models list
ant messages create --model claude-opus-5-5 --max-tokens 1024 ...
ant beta:agents retrieve --agent-id agent_01...
ant beta:sessions:events list --session-id session_01...
💡 エージェント・セッション・デプロイメント・環境などのベータ版リソースは beta: プレフィックスの下にあります。必要な anthropic-beta ヘッダーは自動で付与されるので、自分で指定する必要はありません。
出力フォーマット --format
auto / json / jsonl / yaml / pretty / raw / explore から選べます。
ant models retrieve --model-id claude-opus-5-5 --format yaml
- 作成・更新系コマンドのデフォルトは auto(JSON を整形表示)
- 一覧・取得系コマンドは、ターミナルではインタラクティブエクスプローラー、パイプ時は整形 JSON がデフォルト
- エクスプローラーは矢印キーで展開/折りたたみ、/ で検索、q で終了
ant models list --format explore
--transform で GJSON による抽出 🔍
--transform には GJSON パス を指定します。一覧系ではエンベロープではなく各要素に対して適用される点がポイントです。
ant beta:agents list \
--transform "{id,name,model}" \
--format jsonl
作成したリソースの ID をシェル変数に入れたいときは、--raw-output(-r)と組み合わせます。jq -r と同じく、文字列をクォートなしで出力します。
AGENT_ID=$(ant beta:agents create \
--name "My Agent" \
--model '{id: claude-opus-5-5}' \
--transform id --raw-output)
printf '%s\n' "$AGENT_ID"
⚠️ --raw-output と --format raw は別物です。--format raw はレスポンスの生の JSON をそのまま出力し、自動ページングも行いません。
リクエストボディの渡し方 📨
データの形に応じて3つの方法を使い分けます。
① フラグ:スカラー値や短い構造化データ向け。構造化フィールドは YAML 風のゆるい記法でも厳密な JSON でも書けます。
ant beta:sessions create \
--agent '{type: agent, id: agent_011CYm1BLqPXpQRk5khsSXrs, version: 1}' \
--environment-id env_01595EKxaaTTGwwY3kyXdtbs \
--title "CLI docs test session"
--tool のように繰り返し指定できるフラグは配列になります。
ant beta:agents create \
--name "Research Agent" \
--model '{id: claude-opus-5-5}' \
--tool '{type: agent_toolset_20260401}' \
--tool '{type: custom, name: search_docs, input_schema: {type: object, properties: {query: {type: string}}}}'
② 標準入力:ネストが深い・複数行のボディ向け。フラグと併用した場合はフラグが優先されます。
ant beta:agents create <<'YAML'
name: Research Agent
model: claude-opus-5-5
system: |
You are a research assistant. Cite sources for every claim.
tools:
- type: agent_toolset_20260401
YAML
③ @ によるファイル参照:ファイルの内容を文字列フィールドに埋め込みます。
ant beta:agents create \
--name "Researcher" --model '{id: claude-opus-5-5}' \
--system @./prompts/researcher.txt
PDF のようなバイナリも、ファイル種別を判定して自動で base64 エンコードしてくれます。
ant messages create \
--model claude-opus-5-5 \
--max-tokens 1024 \
--message '{role: user, content: [
{type: document, source: {type: base64, media_type: application/pdf, data: "@./scan.pdf"}},
{type: text, text: "Extract the text from this scanned document."}
]}' \
--transform 'content.#(type=="text").text' --raw-output
エンコードを明示したい場合は @file://(プレーンテキスト)/ @data://(base64)を使います。先頭の @ を文字として送りたいときは \@username のようにエスケープします。
デバッグ 🐛
--debug を付けると、実際の HTTP リクエスト/レスポンスが stderr に出力されます(API キーはマスクされます)。
ant --debug beta:agents list
ant apply:リソースをコードで管理する 📦
ここからが冒頭のブログ記事で使われていた機能です。ant apply(CLI 1.30.0 以上が必要)は、エージェント・環境・スキル・メモリストア・デプロイメント・Vault をファイルから作成・更新します。リソース定義をリポジトリに置き、コードと同じレビューフローで変更できるようになります。
最初のエージェントを apply する
agents/ 配下に Markdown でエージェントを書いて apply します。フロントマターが設定、本文がシステムプロンプトになります。
ant apply agents/summarizer.md
ターミナルでは実行計画(plan)が表示され、承認を求められます。
± Name Plan
+ ./agents/summarizer.md create
Resources + 1 to create
Apply these changes? (y)es / (n)o / (d)etails y
- d で新規リソースのフィールドや、更新時のフィールド単位の差分を確認できる
- --dry-run で詳細な計画を表示するだけで終了する
- ファイルを編集して再度 ant apply すると、計画が create ではなく update になる
claude-lock.json をコミットする 🔒
初回の ant apply は、実行したディレクトリに claude-lock.json(ロックファイル) を書き出します。各ファイルが作成したリソースの ID と、組織・ワークスペースの情報が記録されます。
{
"version": 1,
"origin": {
"base_url": "https://api.anthropic.com",
"organization_id": "1b0c2a4d-6c1f-4f0e-9a57-2e8d1c3b4a5f",
"workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
},
"resources": {
"./agents/summarizer.md": {
"kind": "agent",
"id": "agent_011CYm1BLqPXpQRk5khsSXrs",
"version": "1",
"hash": "d23251c8d99b3613a64f3f8d87f5fad4",
"remote_hash": "1b771bee5bdbf600a5ad972fdac32d94"
}
}
}
これをファイルと一緒にコミットしておくことで、次回の実行(手元でも CI でも)が同じリソースを更新するようになります。2つのハッシュで「ファイルが編集された」「ファイル外(Console など)でリソースが変更された」を検知します。リポジトリのルートで実行するのがおすすめです。
プロジェクトとして育てる 🌱
各リソースはディレクトリで種類を判別します。
| リソース | 置き場所・形式 |
| --- | --- |
| エージェント | agents/ の Markdown(本文が system) |
| 環境 | environments/ の YAML |
| メモリストア | memory_stores/ の YAML |
| デプロイメント | deployments/ の Markdown(本文が各セッションの開始メッセージ) |
| スキル | SKILL.md を含むディレクトリ(慣例で skills/ 配下) |
| Vault | vaults/ の YAML(display_name と metadata のみ。CLI 1.34.0 以上) |
ポイントは リソース同士を相対パスで参照できることです。API が ID を期待する場所にファイルパスを書くと、ant apply が依存関係の順に作成して実際の ID を埋めてくれます。
---
name: Nightly review
agent: ../agents/reviewer.md # the API's agent field: sent as {type: agent, id, version}
environment_id: ../environments/cloud.yaml # sent as the environment's ID
resources:
- path: ../memory_stores/review-notes.yaml
access: read_write
schedule:
type: cron
expression: "0 3 * * *"
timezone: America/Los_Angeles
---
Review any open pull requests. Start with the oldest.
ディレクトリごとまとめて apply できます。
ant apply .
種類の判定は、①ファイル内のトップレベル type フィールド → ②直上のディレクトリ名 → ③ファイル名の先頭(例: environment_staging.md)の順に行われます。どれにも当てはまらない README や CI 設定などはスキップされます(Vault だけはファイル名からは判定されないので、vaults/ に置くか type: vault を付けます)。
編集・削除時の挙動 ✏️
- 引数なしの ant apply はロックファイルが追跡しているファイルをすべて同期
- ファイルからフィールドを消すと、API がクリア可能なフィールドならリソース側でもクリアされる
- Console などファイル外で変更されたリソースがあると refusing to apply で停止 → --force で上書き
- ファイルを削除してもリソースは残る(警告のみ)→ --prune でアーカイブ/削除
- Console や ant beta:agents create で作ったリソースは取り込めない(同じ内容のファイルを apply すると2つ目が作られる)。ただし Console の Export as code でダウンロードしたものは claude-lock.json 付きなので更新できる
CI で使う 🤖
ターミナルがない環境では確認プロンプトを出せないため、フラグが必要です。
- マージ後のデフォルトブランチで ant apply --yes .(ディレクトリを明示しないと新規ファイルがスキップされる)
- プルリクエストでは ant apply --dry-run . で計画をレビュアーに表示
- 途中で失敗しても claude-lock.json はジョブの最後にコミットする(部分的な apply でも作成済みのものは記録されるため)
- ロックファイルにロック機構はないので、apply は同時に1つだけ実行する
- 認証は保存済み API キーより Workload Identity Federation を推奨
| フラグ | 効果 |
| --- | --- |
| --dry-run | 計画を表示して終了(ロックファイルも書かない) |
| --yes | 確認なしで適用(ターミナルなしでは必須) |
| --force | ファイル外で変更されたリソースも上書き |
| --prune | ファイルから消えたリソースを削除 |
| --upgrade | GitHub URL で参照しているスキルを再解決 |
| --lock-file <path> | 使用するロックファイルを指定 |
| --verbose, -v | 変更のないリソースや全フィールドも表示 |
ブログ記事での使われ方 🗞️
冒頭の「Building effective agent automations」では、デイリーブリーフエージェントを次のように構築・運用していました。
ant apply vault.yaml # 認証情報を入れる Vault を作成
ant apply deployment.md # スケジュール実行の定義を作成・更新
ant beta:deployments run --deployment-id <id> # 手動でテスト実行
agent.md / deployment.md / environment.yaml / memory_store_*.yaml / vault.yaml をリポジトリで管理し、claude-lock.json でリソース ID を追跡する、まさに ant apply の典型的な構成になっています。
まとめ 🎯
- ant は Claude API の公式CLIで、curl + jq よりも短く安全に API を叩ける
- --format / --transform / --raw-output / @path を覚えるとシェルスクリプトとの相性が抜群
- ant apply でエージェントやデプロイメントをコードとしてレビュー・バージョン管理でき、CI からの自動反映も可能
まずは brew install anthropics/tap/ant → ant auth login → ant models list で触ってみて、次に手元のエージェントを agents/ に Markdown で書いて ant apply --dry-run . してみるのがおすすめです 🚀
参考リンク 🔗
- CLI quickstart(公式ドキュメント)
- Using the CLI(公式ドキュメント)
- Manage resources as code with ant apply(公式ドキュメント)
- CLI scripting and automation(公式ドキュメント)
- anthropics/anthropic-cli(GitHub)
- Building effective agent automations(Claude Blog)
- GJSON Path Syntax
1 like
Mentions
OpenAI CLI 설치하고 터미널에서 OpenAI API 호출하기 OpenAI CLI는 OpenAI REST API를 위한 OpenAI의 공식 명령줄 도구입니다. openai 바이너리 하나를 설치하고 OPENAI_API_KEY를 설정한 뒤 터미널이나 셸 스크립트에서 API를 호출하면 됩니다. openai responses create, openai files upload, openai batches create, openai images generate 같은 식입니다. 이것은 Codex CLI가 아닙니다. Codex는 코딩 에이전트이고, openai는 명령 하나당 API 요청 하나를 보냅니다. {% cta apidog.com %} 지금 Apidog 사용해 보기 {% endcta %} 이 가이드는 설치, 인증, 가장 먼저 실행해볼 만한 명령, 그리고 Codex CLI 및 Python SDK가 PATH에 남겨둔 예전 openai 명령과의 비교를 다룹니다. 아래의 모든 명령과 출력은 2026년 10월 28일에 설치하고 실행한 버전 1.44.1에서 가져온 것입니다. OpenAI CLI란 무엇인가? OpenAI CLI는 OpenAI가 openai/openai-cli에서 Apache 2.0 라이선스로 공개한 오픈소스 Go 바이너리입니다. 명령이 API의 리소스(responses, files, batches, images, audio, vector-stores, admin)를 그대로 반영하기 때문에, curl이나 SDK로 보내던 모든 것이 플래그를 붙인 터미널 명령 하나가 됩니다. 완전히 새로운 것은 아닙니다. 버전 1.0.0이 2026년 5월 5일에 출시되었고, 그 이후 프로젝트는 99개의 릴리스를 배포했습니다. 1.44.1은 2026년 10월 27일에 나왔습니다. 그러니 출시 소식이 아니라, 놓치고 있었을 수도 있는 성숙한 도구로 보시면 됩니다. 처음 실행했을 때 보게 되는 것은 다음과 같습니다: !openai --version and openai --help output from OpenAI CLI v1.44.1 도움말은 명령을 용도별로 묶어 보여줍니다: 콘텐츠 생성(responses, chat, images, audio, videos), 데이터 및 검색(files, uploads, vector-stores, embeddings), 모델과 작업, 관리, 그리고 네트워크를 전혀 사용하지 않는 로컬 도구 모음입니다. 도움말 자체는 API 키도, 연결도 필요 없으므로 openai <command> --help가 플래그를 익히는 가장 빠른 방법입니다. 스크립트를 작성하지 않고 프롬프트를 테스트하려는 개발자, 파일 업로드와 배치를 cron 작업에 넣고 싶은 운영 담당자, 직접 짠 curl 대신 문서화된 인터페이스가 필요한 코딩 에이전트에게 잘 맞습니다. OpenAI CLI 설치 방법 설치 경로는 세 가지이며, 모두 프로젝트 README에 나와 있습니다: 1. 미리 빌드된 바이너리. GitHub Releases에서 사용 중인 OS와 아키텍처에 맞는 아카이브를 내려받아(macOS, Linux, Windows 빌드가 게시됩니다) 압축을 풀고 openai를 PATH에 넣습니다. 2. Homebrew. brew install openai/tools/openai 3. Go. Go 1.26 이상이 필요합니다. go install 'github.com/openai/openai-cli/cmd/openai@latest' export PATH="$PATH:$(go env GOPATH)/bin" 직접 관리하는 릴리스 설치본은 대화형 실행 중에 스스로 업데이트할 수 있습니다. CI에서 버전을 고정한다면 OPENAI_CLI_NO_AUTO_UPDATE=1로 자동 설치를 막거나, OPENAI_CLI_NO_UPDATE_CHECK=1로 업데이트 확인 자체를 끄면 됩니다. Homebrew와 Go 설치는 업데이트 알림은 유지하되 업그레이드는 패키지 관리자에 맡깁니다. OpenAI CLI 인증 방식 CLI는 OPENAI_API_KEY에서 표준 API 키를 읽습니다(또는 --api-key 플래그인데, 셸 히스토리에 남기 때문에 피하는 게 좋습니다). 아직 키가 없다면, OpenAI API 키 발급받기 가이드에서 자세히 다룹니다. 가장 빠른 설정 방법은 내장 가이드입니다: openai help setup API 키 페이지로 안내하고, Bash나 zsh용 read -rs OPENAI_API_KEY 줄을 알려주므로 키가 숨겨진 채로 입력되고 절대 화면에 표시되지 않습니다. 키를 빠뜨리면 명확하고 스크립트에서 처리 가능한 실패를 만납니다. 다음은 키를 설정하지 않았을 때의 실제 출력입니다: !OpenAI CLI returns HTTP 401 Unauthorized when no API key is configured 상태 코드 1로 종료하면서 키가 어디서 올 수 있는지 정확히 알려줍니다. 스크립트가 원시 오류 본문을 필요로 한다면 --format-error json을 추가하세요. 나머지 인증 설정은 다음과 같습니다: | 설정 | 플래그 | 환경 변수 | 사용 용도 | | --- | --- | --- | --- | | API 키 | --api-key | OPENAI_API_KEY | 모든 일반 API 호출 | | 관리자 키 | --admin-api-key | OPENAI_ADMIN_KEY | openai admin ...(사용량, 프로젝트). 프로젝트 키로는 대체할 수 없습니다 | | Base URL | --base-url | OPENAI_BASE_URL | CLI를 다른 호스트나 게이트웨이로 지정 | | mTLS 인증서 및 키 | --mtls-client-cert-file, --mtls-client-key-file | OPENAI_MTLS_CLIENT_CERT_FILE, OPENAI_MTLS_CLIENT_KEY_FILE | 상호 TLS. 명시적인 HTTPS base URL이 필요합니다 | 먼저 실행해볼 OpenAI CLI 명령 명령 형태는 API를 따릅니다: openai <resource> [subresource...] <command> [flags...]. 다음은 도구함에 자리할 만한 명령들입니다. Responses API 호출하기 openai responses create \ --model gpt-5.5 \ --input "Say this is a test" 긴 프롬프트도 이스케이프할 필요가 없습니다. JSON 입력 플래그는 @path로 파일에서 읽습니다: openai responses create --model gpt-5.5 --input @prompt.txt 신뢰할 수 없는 출처에서 JSON이나 YAML을 파이프로 넘긴다면, 그 입력이 로컬 파일 읽기를 유발할 수 없도록 OPENAI_UNTRUSTED_STDIN=1을 설정하세요. 파일 업로드 및 가져오기 openai files upload report.txt --purpose user_data openai files get file-example openai files download file-example --output downloaded-report.txt 배치 실행하기 requests.jsonl에 요청을 한 줄에 하나씩, 각각 고유한 custom_id와 함께 넣은 다음: openai files upload requests.jsonl --purpose batch openai batches create --input-file-id file-example \ --endpoint /v1/responses --completion-window 24h openai batches wait batch_example --output-dir ./results batches wait은 배치가 끝날 때까지 폴링하고 결과 파일을 저장하므로, 따로 작성해야 했을 폴링 루프를 없애줍니다. 프로젝트의 배치 가이드에 따르면 현재 한도는 입력 파일당 50,000건 요청과 200 MB이며, 완료 기한은 24h입니다. 배치 가격은 동기 호출과 다르므로, 대규모 작업을 큐에 넣기 전에 OpenAI API 가격 정리를 확인하세요. 키 없이 로컬에서 토큰 세기 tokenizer 명령은 완전히 오프라인으로 동작합니다: 자격 증명도, 네트워크도, 저장되는 입력도 없습니다. !openai tokenizer count output in text and JSON formats 기본 인코딩은 o200k_base이고, openai tokenizer encodings는 나머지(cl100k_base와 두 개의 레거시 인코딩)를 나열합니다. 도움말은 한계를 솔직하게 밝히고 있습니다. 순수 텍스트 개수는 요청 구조와 멀티모달 입력을 제외하므로 청구 금액이 아닙니다. 서버 측 개수는 openai responses input-tokens count를 사용하세요. 스크립트가 파싱할 수 있는 출력 얻기 기본 출력은 파이프로 넘겨도 사람이 읽을 수 있는 텍스트입니다. 데이터를 명시적으로 요청하세요: openai models list --format jsonl | jq '.id' openai files list --format json > files.json openai files get file-example --transform filename --raw-output --format은 auto, text, json, jsonl, yaml, explore(대화형 JSON 뷰어), pretty를 받습니다. --transform은 GJSON 문법으로 필드를 뽑아내고, 더 복잡한 것은 jq가 처리합니다. 리다이렉트된 파일을 신뢰하기 전에 항상 종료 상태를 확인하세요. 실패한 요청은 불완전한 파일을 남길 수 있습니다. 호출이 이상하게 동작하면 --debug가 시도별 HTTP 타이밍을 추가합니다. 로그를 공유하기 전에 민감 정보를 지우세요. 429를 맞고 있다면 OpenAI 속도 제한 가이드에서 티어를 설명합니다. OpenAI CLI vs Codex CLI vs 예전 openai 명령 세 도구가 같은 벤더를 공유하고, 그중 둘은 이름까지 공유합니다. 짧게 정리하면 다음과 같습니다: !Comparison of OpenAI CLI, Codex CLI and Apidog CLI: what each terminal tool is for | | OpenAI CLI | Codex CLI | 레거시 Python openai | | --- | --- | --- | --- | | 명령 | openai | codex | openai | | 정체 | REST API용 클라이언트 | 프로젝트의 코드를 읽고, 수정하고, 실행하는 코딩 에이전트 | openai Python 패키지에 포함된 CLI | | 설치 | 바이너리, Homebrew 또는 Go | npm install -g @openai/codex 또는 brew install --cask codex | pip install openai | | 인증 | OPENAI_API_KEY | 자체 로그인 처리 | API 키 | | 사용 시점 | 특정 API 호출 하나가 필요하거나, 스크립트에 API 단계를 넣고 싶을 때 | 에이전트가 변경 사항을 구현하거나 디버깅하길 원할 때 | 이를 기반으로 만든 오래된 스크립트를 유지보수할 때 | openai codex를 실행하면 OpenAI CLI가 Codex 설치 명령을 직접 출력하면서, 이것이 자체 로그인을 가진 별도 도구라고 알려줍니다. Codex CLI 가이드가 에이전트 쪽을 다루며, 소스는 openai/codex에 있습니다. PATH 충돌 주의하기 openai Python 패키지도 openai라는 이름의 바이너리를 설치합니다. pip install openai를 실행한 적이 있다면 두 개를 갖고 있을 수 있습니다: !which -a openai shows two openai binaries: the new OpenAI CLI and the legacy Python SDK command 이 Mac에서는 Python 쪽이 openai 2.30.0을 보고하고 api, tools, migrate, grit 하위 명령을 제공하며, Go 쪽은 openai version 1.44.1을 보고합니다. PATH에서 어느 디렉터리가 먼저 오는지가 승자를 정합니다. 설치 후 which -a openai와 openai --version을 실행해 보세요. 출력이 openai version 1.44.1(또는 그 이상)이면 올바른 것을 사용 중입니다. openai 2.30.0처럼 버전 숫자만 출력한다면 PATH 순서를 바꾸거나 새 바이너리를 전체 경로로 호출하세요. OpenAI CLI 옆에서 Apidog CLI가 하는 역할 OpenAI CLI는 OpenAI로 호출을 보냅니다. 여러분 자신의 API는 알지 못합니다. OpenAI 위에 여러분의 앱이 노출하는 엔드포인트, 배포하는 환경, 릴리스가 아무것도 망가뜨리지 않았음을 증명하는 검증 같은 것은 다루지 않습니다. 그것은 다른 일이고, 바로 그 지점에서 Apidog CLI가 등장합니다. 둘 중 하나를 고르는 것이 아니라, AI 기능을 출시하는 대부분의 팀은 둘 다 원합니다. 더 나아가, 코딩 에이전트가 둘 다 실행하게 할 수도 있습니다. Apidog CLI를 한 번 설정하세요: npm install -g apidog-cli@latest apidog login --with-token <YOUR_TOKEN> npx -y skills add https://apidog.com # pick your agent when prompted 그런 다음 에이전트에게 프롬프트 하나를 주세요: Use the openai CLI to confirm my key works with one responses create call on gpt-5.5. Then import ./openapi.yaml into Apidog project <id>, create a test case for POST /v1/summarize that asserts a 200 and a non-empty "summary" field, run it against the staging environment and summarize any failures. 에이전트는 openai로 키를 확인한 다음 Apidog CLI로 작업을 진행합니다. 페이로드를 작성하기 전에 스키마를 읽고, 파일을 검증한 뒤에야 테스트 케이스를 만들고 실행합니다: apidog import --project <id> --format openapi --file ./openapi.yaml apidog cli-schema get test-case-create apidog cli-schema validate test-case-create --file case.json apidog test-case create --project <id> --file case.json apidog run --test-case <caseId> --project <id> -e <envId> -r cli,json apidog test-case create --help에서 얻는 두 가지 세부 사항이 시행착오를 줄여줍니다. 케이스에는 유효한 categoryId가 필요하고(apidog test-case category --project <id>로 목록을 확인하세요), 페이로드는 기억에 의존하지 말고 반드시 cli-schema에서 가져와야 합니다. 같은 apidog run 줄에 -r junit을 붙이면 CI에 바로 들어가며, Apidog CLI CI/CD 가이드에서 확인할 수 있습니다. 에이전트로 Codex를 쓴다면 Codex에서의 Apidog CLI부터 시작하세요. Apidog의 무료 플랜은 최대 4명까지 지원하므로, 소규모 팀이라면 구매 결정 없이 시도해볼 수 있습니다. 자주 묻는 질문 OpenAI CLI는 무료인가요? 이 도구는 Apache 2.0에 따라 무료이고 오픈소스입니다. 도구가 보내는 API 호출은 일반 API 요금으로 여러분의 OpenAI 계정에 청구됩니다. openai tokenizer 같은 로컬 명령과 모든 --help 페이지는 비용이 들지 않고 키도 필요 없습니다. OpenAI CLI는 Codex CLI와 같은 건가요? 아닙니다. openai는 명령 하나당 하나씩, 직접 API 요청을 보냅니다. codex는 프로젝트를 읽고 수정하며 명령을 실행하는 코딩 에이전트입니다. 둘은 따로 설치되고 따로 인증합니다. Mac에서 OpenAI CLI를 설치하려면 어떻게 하나요? brew install openai/tools/openai를 실행하거나, GitHub Releases에서 macos_arm64(Apple Silicon) 또는 macos_amd64(Intel) zip을 내려받아 바이너리를 PATH에 넣으세요. 그런 다음 openai --version을 실행해 예전 Python openai 명령을 실행하고 있지 않은지 확인하세요. OpenAI CLI는 셸 스크립트와 CI에서 동작하나요? 네, 그게 주된 설계 목표입니다. 파싱 가능한 출력을 위해 --format json 또는 jsonl을 사용하고, 종료 상태를 확인하고, 키는 시크릿 관리자에서 OPENAI_API_KEY로 가져오고, 버전을 고정하려면 OPENAI_CLI_NO_AUTO_UPDATE=1을 설정하세요. OpenAI CLI는 언제 출시되었나요? 버전 1.0.0이 2026년 5월 5일 GitHub에 게시되었습니다. 2026년 10월 28일 기준 최신 릴리스는 10월 27일에 나온 1.44.1입니다.
OpenAI CLI: Como Instalar e Chamar a API da OpenAI no Terminal OpenAI CLI: Como Instalar e Chamar a API da OpenAI no Terminal O OpenAI CLI é a ferramenta de linha de comando oficial da OpenAI para a API REST da OpenAI. Você instala um único binário openai, define OPENAI_API_KEY e chama a API a partir do seu terminal ou de um script de shell: openai responses create, openai files upload, openai batches create, openai images generate. Ele não é o Codex CLI. O Codex é um agente de programação; o openai envia uma requisição de API por comando. {% cta apidog.com %} Experimente o Apidog hoje {% endcta %} Este guia aborda instalação, autenticação, os primeiros comandos que vale a pena executar e como ele se compara com o Codex CLI e com o antigo comando openai que o SDK Python colocava no seu PATH. Todos os comandos e saídas abaixo vêm da versão 1.44.1, instalada e executada em 28 de outubro de 2026. O que é o OpenAI CLI? O OpenAI CLI é um binário Go de código aberto, publicado pela OpenAI em openai/openai-cli sob a licença Apache 2.0. Seus comandos espelham os recursos da API (responses, files, batches, images, audio, vector-stores, admin), então qualquer coisa que você enviaria com curl ou um SDK se torna um único comando de terminal com flags. Ele não é novidade. A versão 1.0.0 foi lançada em 5 de maio de 2026, e o projeto já publicou 99 releases desde então; a 1.44.1 saiu em 27 de outubro de 2026. Portanto, trate-o como uma ferramenta madura que você pode ter deixado passar, não como um lançamento. Veja o que você obtém na primeira execução: !Saída de openai --version e openai --help do OpenAI CLI v1.44.1 O help agrupa os comandos por função: gerar conteúdo (responses, chat, images, audio, videos), dados e recuperação (files, uploads, vector-stores, embeddings), modelos e jobs, administração e um conjunto de ferramentas locais que nunca acessam a rede. O próprio help não precisa de chave de API nem de conexão, o que faz de openai <command> --help a forma mais rápida de aprender as flags. Ele é indicado para desenvolvedores testando um prompt sem escrever um script, profissionais de operações que querem uploads de arquivos e batches em um cron job, e agentes de programação que precisam de uma interface documentada em vez de curl feito à mão. Como instalar o OpenAI CLI Você tem três rotas de instalação, todas listadas no README do projeto: 1. Binário pré-compilado. Baixe o arquivo para seu SO e arquitetura em GitHub Releases (builds para macOS, Linux e Windows são publicados), extraia-o e coloque openai no seu PATH. 2. Homebrew. brew install openai/tools/openai 3. Go. Requer Go 1.26 ou posterior. go install 'github.com/openai/openai-cli/cmd/openai@latest' export PATH="$PATH:$(go env GOPATH)/bin" Instalações de release autogerenciadas podem se atualizar durante execuções interativas. Se você fixa versões em CI, defina OPENAI_CLI_NO_AUTO_UPDATE=1 para impedir instalações automáticas, ou OPENAI_CLI_NO_UPDATE_CHECK=1 para desativar completamente as verificações de atualização. Instalações via Homebrew e Go mantêm seus avisos de atualização, mas deixam as atualizações para o gerenciador de pacotes. Como funciona a autenticação do OpenAI CLI O CLI lê uma chave de API padrão de OPENAI_API_KEY (ou da flag --api-key, que você deve evitar porque ela fica no histórico do shell). Se você ainda não tem uma, nosso guia sobre como obter uma chave de API da OpenAI mostra o passo a passo. A configuração mais rápida é o guia integrado: openai help setup Ele direciona você para a página de chaves de API e fornece uma linha read -rs OPENAI_API_KEY para Bash ou zsh, para que a chave seja digitada oculta e nunca seja exibida. Esqueça a chave e você receberá uma falha clara e scriptável. Esta é a saída real sem nenhuma chave definida: !O OpenAI CLI retorna HTTP 401 Unauthorized quando nenhuma chave de API está configurada Ele sai com status 1 e informa exatamente de onde uma chave pode vir. Adicione --format-error json quando um script precisar do corpo bruto do erro. As outras configurações de autenticação: | Configuração | Flag | Variável de ambiente | Use para | | --- | --- | --- | --- | | Chave de API | --api-key | OPENAI_API_KEY | Toda chamada normal à API | | Chave de administrador | --admin-api-key | OPENAI_ADMIN_KEY | openai admin ... (uso, projetos); uma chave de projeto não pode substituí-la | | URL base | --base-url | OPENAI_BASE_URL | Apontar o CLI para outro host ou um gateway | | Certificado e chave mTLS | --mtls-client-cert-file, --mtls-client-key-file | OPENAI_MTLS_CLIENT_CERT_FILE, OPENAI_MTLS_CLIENT_KEY_FILE | mTLS mútuo, que exige uma URL base HTTPS explícita | Primeiros comandos do OpenAI CLI para executar A forma do comando segue a API: openai <resource> [subresource...] <command> [flags...]. Estes são os comandos que ganham seu lugar em uma caixa de ferramentas. Faça uma chamada à API Responses openai responses create \ --model gpt-5.5 \ --input "Say this is a test" Prompts longos não precisam de escape. Flags de entrada JSON leem de um arquivo com @path: openai responses create --model gpt-5.5 --input @prompt.txt Se você canalizar JSON ou YAML de uma fonte não confiável, defina OPENAI_UNTRUSTED_STDIN=1 para que essa entrada não possa acionar leituras de arquivos locais. Faça upload e busque arquivos openai files upload report.txt --purpose user_data openai files get file-example openai files download file-example --output downloaded-report.txt Execute um batch Coloque uma requisição por linha em requests.jsonl, cada uma com um custom_id único, e então: openai files upload requests.jsonl --purpose batch openai batches create --input-file-id file-example \ --endpoint /v1/responses --completion-window 24h openai batches wait batch_example --output-dir ./results batches wait faz polling até o batch terminar e salva os arquivos de resultado, o que elimina o loop de polling que você escreveria de outra forma. O guia de batch do projeto lista os limites atuais como 50.000 requisições e 200 MB por arquivo de entrada, com uma janela de conclusão de 24h. O preço de batch difere das chamadas síncronas; consulte nossa análise de preços da API OpenAI antes de enfileirar um job grande. Conte tokens localmente, sem chave O comando tokenizer roda totalmente offline: sem credenciais, sem rede, sem entrada salva. !Saída de openai tokenizer count nos formatos text e JSON A codificação padrão é o200k_base, e openai tokenizer encodings lista as outras (cl100k_base, além de duas legadas). O help é honesto sobre os limites: uma contagem de texto simples exclui a estrutura da requisição e entradas multimodais, então não é um valor de cobrança. Para uma contagem no lado do servidor, use openai responses input-tokens count. Obtenha saída que um script consegue analisar A saída padrão é texto legível, mesmo quando canalizada. Peça dados explicitamente: openai models list --format jsonl | jq '.id' openai files list --format json > files.json openai files get file-example --transform filename --raw-output --format aceita auto, text, json, jsonl, yaml, explore (um visualizador JSON interativo) e pretty. --transform extrai campos com a sintaxe GJSON, e o jq lida com qualquer coisa mais elaborada. Sempre verifique o status de saída antes de confiar em um arquivo redirecionado: uma requisição com falha pode deixar um arquivo parcial para trás. Quando uma chamada se comporta mal, --debug adiciona o tempo HTTP por tentativa; limpe seus logs antes de compartilhá-los. Se você está recebendo 429s, nosso guia de limites de taxa da OpenAI explica os níveis. OpenAI CLI vs Codex CLI vs o antigo comando openai Três ferramentas compartilham um fornecedor e duas compartilham um nome. Esta é a versão curta: !Comparação entre OpenAI CLI, Codex CLI e Apidog CLI: para que serve cada ferramenta de terminal | | OpenAI CLI | Codex CLI | openai Python legado | | --- | --- | --- | --- | | Comando | openai | codex | openai | | O que é | Um cliente para a API REST | Um agente de programação que lê, edita e executa código no seu projeto | Um CLI incluído no pacote Python openai | | Instalação | Binário, Homebrew ou Go | npm install -g @openai/codex ou brew install --cask codex | pip install openai | | Autenticação | OPENAI_API_KEY | Gerencia seu próprio login | Chave de API | | Use quando | Você quer uma chamada específica à API, ou etapas de API em um script | Você quer que um agente implemente ou depure uma mudança | Você mantém scripts mais antigos construídos sobre ele | Execute openai codex e o OpenAI CLI imprime os comandos de instalação do Codex, observando que é uma ferramenta separada com seu próprio login. Nosso guia do Codex CLI cobre o lado do agente, e o código-fonte fica em openai/codex. Fique atento ao conflito de PATH O pacote Python openai também instala um binário chamado openai. Se você já executou pip install openai, pode ter dois: !which -a openai mostra dois binários openai: o novo OpenAI CLI e o comando legado do SDK Python Neste Mac, o do Python reporta openai 2.30.0 e oferece os subcomandos api, tools, migrate e grit; o do Go reporta openai version 1.44.1. Qualquer diretório que vier primeiro no seu PATH vence. Execute which -a openai e openai --version depois de instalar. Se a saída disser openai version 1.44.1 (ou mais recente), você tem o correto. Se ela imprimir apenas um número de versão, como openai 2.30.0, reordene seu PATH ou chame o novo binário pelo caminho completo. Onde o Apidog CLI se encaixa ao lado do OpenAI CLI O OpenAI CLI faz chamadas para a OpenAI. Ele não conhece a sua própria API: os endpoints que sua aplicação expõe sobre a OpenAI, os ambientes para os quais você faz deploy, ou as asserções que provam que um release não quebrou nada. Essa é uma função diferente, e é aí que entra o Apidog CLI. Você não escolhe um em vez do outro; a maioria das equipes que entrega um recurso de IA quer ambos. Melhor ainda, deixe seu agente de programação executar os dois. Configure o Apidog CLI uma vez: npm install -g apidog-cli@latest apidog login --with-token <YOUR_TOKEN> npx -y skills add https://apidog.com # pick your agent when prompted Então dê ao seu agente um único [REDACTED PROMPT] Use the openai CLI to confirm my key works with one responses create call on gpt-5.5. Then import ./openapi.yaml into Apidog project <id>, create a test case for POST /v1/summarize that asserts a 200 and a non-empty "summary" field, run it against the staging environment and summarize any failures. O agente verifica a chave com `openai`, então trabalha através do Apidog CLI. Ele lê o schema antes de escrever qualquer payload, valida o arquivo e só então cria e executa o caso: apidog import --project <id> --format openapi --file ./openapi.yaml apidog cli-schema get test-case-create apidog cli-schema validate test-case-create --file case.json apidog test-case create --project <id> --file case.json apidog run --test-case <caseId> --project <id> -e <envId> -r cli,json Dois detalhes de apidog test-case create --help economizam uma ida e volta: o caso precisa de um categoryId válido (liste-os com apidog test-case category --project <id>), e os payloads devem vir do cli-schema, nunca da memória. A mesma linha de apidog run com -r junit entra no CI, como mostra nosso guia do Apidog CLI para CI/CD. Se o Codex é seu agente, comece com Apidog CLI no Codex. O plano Gratuito do Apidog cobre até 4 usuários, então uma equipe pequena pode experimentar isso sem uma decisão de compra. FAQ O OpenAI CLI é gratuito? A ferramenta é gratuita e de código aberto sob Apache 2.0. As chamadas de API que ela faz são cobradas na sua conta OpenAI às taxas normais da API. Comandos locais como openai tokenizer e toda página --help não custam nada e não precisam de chave. O OpenAI CLI é o mesmo que o Codex CLI? Não. O openai envia requisições diretas à API, uma por comando. O codex é um agente de programação que lê e edita seu projeto e executa comandos. Eles são instalados separadamente e se autenticam separadamente. Como instalo o OpenAI CLI em um Mac? Execute brew install openai/tools/openai, ou baixe o zip macos_arm64 (Apple Silicon) ou macos_amd64 (Intel) do GitHub Releases e coloque o binário no seu PATH. Depois execute openai --version para confirmar que você não está acionando o comando Python openai mais antigo. O OpenAI CLI funciona em scripts de shell e CI? Sim, esse é seu principal objetivo de design. Use --format json ou jsonl para saída analisável, verifique o status de saída, mantenha a chave em OPENAI_API_KEY a partir do seu gerenciador de segredos, e defina OPENAI_CLI_NO_AUTO_UPDATE=1 para manter a versão fixada. Quando o OpenAI CLI foi lançado? A versão 1.0.0 foi publicada no GitHub em 5 de maio de 2026. Em 28 de outubro de 2026, a versão mais recente é a 1.44.1, de 27 de outubro.
OpenAI CLI: Kurulumu ve Terminalden OpenAI API Çağrısı OpenAI CLI, OpenAI'nin OpenAI REST API'si için resmi komut satırı aracıdır. Tek bir openai ikili dosyası kurar, OPENAI_API_KEY değerini ayarlar ve API'yi terminalinizden veya bir shell betiğinden çağırırsınız: openai responses create, openai files upload, openai batches create, openai images generate. Bu, Codex CLI değildir. Codex bir kodlama ajanıdır; openai ise komut başına bir API isteği gönderir. {% cta apidog.com %} Apidog'u bugün deneyin {% endcta %} Bu kılavuz kurulumu, kimlik doğrulamayı, çalıştırmaya değer ilk komutları ve bunun Codex CLI ile Python SDK'nın PATH'inize koyduğu eski openai komutuyla nasıl karşılaştırıldığını ele alır. Aşağıdaki her komut ve çıktı, 28 Ekim 2026'da kurulup çalıştırılan 1.44.1 sürümünden gelmektedir. OpenAI CLI nedir? OpenAI CLI, OpenAI tarafından openai/openai-cli adresinde Apache 2.0 lisansı altında yayımlanan açık kaynaklı bir Go ikili dosyasıdır. Komutları API'nin kaynaklarını (responses, files, batches, images, audio, vector-stores, admin) yansıtır; böylece curl veya bir SDK ile göndereceğiniz her şey, bayraklarla birlikte tek bir terminal komutuna dönüşür. Yepyeni değil. 1.0.0 sürümü 5 Mayıs 2026'da yayımlandı ve proje o zamandan beri 99 sürüm çıkardı; 1.44.1 ise 27 Ekim 2026'da geldi. Yani bunu bir lansman olarak değil, gözden kaçırmış olabileceğiniz olgun bir araç olarak değerlendirin. İlk çalıştırmada elde ettikleriniz şunlar: !openai --version and openai --help output from OpenAI CLI v1.44.1 Yardım, komutları işlerine göre gruplar: içerik üretme (responses, chat, images, audio, videos), veri ve getirme (files, uploads, vector-stores, embeddings), modeller ve işler, yönetim ve ağa hiç dokunmayan bir dizi yerel araç. Yardımın kendisi API anahtarı ve bağlantı gerektirmez; bu da openai <command> --help komutunu bayrakları öğrenmenin en hızlı yolu yapar. Bir betik yazmadan bir prompt'u test eden geliştiriciler, bir cron işinde dosya yüklemeleri ve batch'ler isteyen operasyon ekipleri ve elle yazılmış curl yerine belgelenmiş bir arayüze ihtiyaç duyan kodlama ajanları için uygundur. OpenAI CLI nasıl kurulur Proje README'sinde listelenen üç kurulum yolu vardır: 1. Hazır ikili dosya. İşletim sisteminiz ve mimariniz için arşivi GitHub Releases adresinden indirin (macOS, Linux ve Windows derlemeleri yayımlanmaktadır), çıkarın ve openai dosyasını PATH'inize koyun. 2. Homebrew. brew install openai/tools/openai 3. Go. Go 1.26 veya üstünü gerektirir. go install 'github.com/openai/openai-cli/cmd/openai@latest' export PATH="$PATH:$(go env GOPATH)/bin" Kendi yönettiğiniz sürüm kurulumları, etkileşimli çalıştırmalar sırasında kendilerini güncelleyebilir. CI'da sürümleri sabitliyorsanız, otomatik kurulumları durdurmak için OPENAI_CLI_NO_AUTO_UPDATE=1 veya güncelleme kontrollerini tamamen kapatmak için OPENAI_CLI_NO_UPDATE_CHECK=1 ayarlayın. Homebrew ve Go kurulumları güncelleme bildirimlerini korur ancak yükseltmeleri paket yöneticisine bırakır. OpenAI CLI kimlik doğrulaması nasıl çalışır CLI, OPENAI_API_KEY değerinden (veya shell geçmişine düştüğü için kaçınmanız gereken --api-key bayrağından) standart bir API anahtarı okur. Henüz bir anahtarınız yoksa, OpenAI API anahtarı alma kılavuzumuz bu süreci adım adım anlatır. En hızlı kurulum, yerleşik kılavuzdur: openai help setup Sizi API anahtarları sayfasına yönlendirir ve Bash veya zsh için bir read -rs OPENAI_API_KEY satırı verir; böylece anahtar gizli şekilde yazılır ve asla ekrana yansıtılmaz. Anahtarı unutursanız net ve betiklenebilir bir hata alırsınız. Bu, anahtar ayarlanmadan alınan gerçek çıktıdır: !OpenAI CLI returns HTTP 401 Unauthorized when no API key is configured 1 durum koduyla çıkar ve bir anahtarın tam olarak nereden gelebileceğini söyler. Bir betiğin ham hata gövdesine ihtiyacı olduğunda --format-error json ekleyin. Diğer kimlik doğrulama ayarları: | Ayar | Bayrak | Ortam değişkeni | Ne için kullanılır | | --- | --- | --- | --- | | API anahtarı | --api-key | OPENAI_API_KEY | Her normal API çağrısı | | Yönetici anahtarı | --admin-api-key | OPENAI_ADMIN_KEY | openai admin ... (kullanım, projeler); bir proje anahtarı bunun yerini alamaz | | Temel URL | --base-url | OPENAI_BASE_URL | CLI'ı başka bir ana bilgisayara veya bir ağ geçidine yönlendirmek | | mTLS sertifikası ve anahtarı | --mtls-client-cert-file, --mtls-client-key-file | OPENAI_MTLS_CLIENT_CERT_FILE, OPENAI_MTLS_CLIENT_KEY_FILE | Açık bir HTTPS temel URL'si gerektiren karşılıklı TLS | Çalıştırılacak ilk OpenAI CLI komutları Komut şekli API'yi izler: openai <resource> [subresource...] <command> [flags...]. Bunlar bir araç kutusunda yerini hak eden komutlardır. Bir Responses API çağrısı yapın openai responses create \ --model gpt-5.5 \ --input "Say this is a test" Uzun prompt'ların kaçış karakteri kullanmasına gerek yoktur. JSON girdi bayrakları @path ile bir dosyadan okur: openai responses create --model gpt-5.5 --input @prompt.txt Güvenmediğiniz bir kaynaktan JSON veya YAML aktarıyorsanız, OPENAI_UNTRUSTED_STDIN=1 ayarlayın; böylece bu girdi yerel dosya okumalarını tetikleyemez. Dosya yükleyin ve alın openai files upload report.txt --purpose user_data openai files get file-example openai files download file-example --output downloaded-report.txt Bir batch çalıştırın requests.jsonl dosyasına her satıra bir istek koyun, her biri benzersiz bir custom_id içersin, ardından: openai files upload requests.jsonl --purpose batch openai batches create --input-file-id file-example \ --endpoint /v1/responses --completion-window 24h openai batches wait batch_example --output-dir ./results batches wait batch bitene kadar yoklar ve sonuç dosyalarını kaydeder; bu da aksi halde yazacağınız yoklama döngüsünü ortadan kaldırır. Projenin batch kılavuzu mevcut sınırları girdi dosyası başına 50.000 istek ve 200 MB, tamamlanma penceresi 24h olarak listeler. Batch fiyatlandırması senkron çağrılardan farklıdır; büyük bir işi kuyruğa almadan önce OpenAI API fiyatlandırması incelememize bakın. Anahtar olmadan yerel olarak token sayın tokenizer komutu tamamen çevrimdışı çalışır: kimlik bilgisi yok, ağ yok, kaydedilen girdi yok. !openai tokenizer count output in text and JSON formats Varsayılan kodlama o200k_base şeklindedir ve openai tokenizer encodings diğerlerini listeler (cl100k_base ve iki eski kodlama daha). Yardım, sınırlar konusunda dürüsttür: düz metin sayımı istek yapısını ve çok modlu girdileri hariç tutar, yani bu bir faturalandırma rakamı değildir. Sunucu tarafında bir sayım için openai responses input-tokens count kullanın. Bir betiğin ayrıştırabileceği çıktı alın Varsayılan çıktı, boru hattından geçirildiğinde bile okunabilir metindir. Veriyi açıkça isteyin: openai models list --format jsonl | jq '.id' openai files list --format json > files.json openai files get file-example --transform filename --raw-output --format şunları kabul eder: auto, text, json, jsonl, yaml, explore (etkileşimli bir JSON görüntüleyici) ve pretty. --transform, alanları GJSON sözdizimi ile çeker ve jq daha karmaşık olan her şeyi halleder. Yönlendirilmiş bir dosyaya güvenmeden önce her zaman çıkış durumunu kontrol edin: başarısız bir istek arkasında kısmi bir dosya bırakabilir. Bir çağrı yanlış davrandığında, --debug deneme başına HTTP zamanlaması ekler; bunları paylaşmadan önce günlüklerini temizleyin. 429'lar alıyorsanız, OpenAI hız sınırları kılavuzumuz katmanları açıklar. OpenAI CLI, Codex CLI ve eski openai komutu Üç araç bir satıcıyı paylaşır ve ikisi bir adı paylaşır. Kısa versiyon şudur: !Comparison of OpenAI CLI, Codex CLI and Apidog CLI: what each terminal tool is for | | OpenAI CLI | Codex CLI | Eski Python openai | | --- | --- | --- | --- | | Komut | openai | codex | openai | | Ne olduğu | REST API için bir istemci | Projenizdeki kodu okuyan, düzenleyen ve çalıştıran bir kodlama ajanı | openai Python paketiyle birlikte gelen bir CLI | | Kurulum | İkili dosya, Homebrew veya Go | npm install -g @openai/codex veya brew install --cask codex | pip install openai | | Kimlik doğrulama | OPENAI_API_KEY | Kendi oturum açma işlemini yönetir | API anahtarı | | Ne zaman kullanılır | Belirli bir API çağrısı veya bir betikteki API adımlarını istediğinizde | Bir ajanın bir değişikliği uygulamasını veya hata ayıklamasını istediğinizde | Üzerine inşa edilmiş eski betikleri sürdürdüğünüzde | openai codex komutunu çalıştırın; OpenAI CLI, Codex kurulum komutlarını kendisi yazdırır ve bunun kendi oturum açma işlemine sahip ayrı bir araç olduğunu belirtir. Codex CLI kılavuzumuz ajan tarafını ele alır ve kaynak kodu openai/codex adresinde bulunur. PATH çakışmasına dikkat edin openai Python paketi de openai adında bir ikili dosya kurar. Eğer daha önce pip install openai çalıştırdıysanız, iki tane olabilir: !which -a openai shows two openai binaries: the new OpenAI CLI and the legacy Python SDK command Bu Mac'te Python olanı openai 2.30.0 bildirir ve api, tools, migrate ve grit alt komutlarını sunar; Go olanı ise openai version 1.44.1 bildirir. PATH'inizde hangi dizin önce gelirse o kazanır. Kurulumdan sonra which -a openai ve openai --version komutlarını çalıştırın. Çıktı openai version 1.44.1 (veya daha yeni) diyorsa doğru olana sahipsiniz. openai 2.30.0 gibi çıplak bir sürüm numarası yazdırıyorsa, PATH'inizi yeniden sıralayın veya yeni ikili dosyayı tam yoluyla çağırın. Apidog CLI, OpenAI CLI'nin yanında nereye oturur OpenAI CLI, OpenAI'ye çağrılar yapar. Kendi API'niz hakkında hiçbir şey bilmez: uygulamanızın OpenAI üzerine sunduğu uç noktalar, dağıtım yaptığınız ortamlar veya bir sürümün hiçbir şeyi bozmadığını kanıtlayan doğrulamalar. Bu farklı bir iştir ve Apidog CLI'nın devreye girdiği yer burasıdır. Birini diğerine tercih etmezsiniz; bir AI özelliği sunan çoğu ekip ikisini de ister. Daha da iyisi, kodlama ajanınızın ikisini de çalıştırmasına izin verin. Apidog CLI'ı bir kez kurun: npm install -g apidog-cli@latest apidog login --with-token <YOUR_TOKEN> npx -y skills add https://apidog.com # pick your agent when prompted Ardından ajanınıza tek bir prompt verin: Use the openai CLI to confirm my key works with one responses create call on gpt-5.5. Then import ./openapi.yaml into Apidog project <id>, create a test case for POST /v1/summarize that asserts a 200 and a non-empty "summary" field, run it against the staging environment and summarize any failures. Ajan, anahtarı openai ile kontrol eder, ardından Apidog CLI üzerinden çalışır. Herhangi bir yük yazmadan önce şemayı okur, dosyayı doğrular ve ancak ondan sonra test durumunu oluşturup çalıştırır: apidog import --project <id> --format openapi --file ./openapi.yaml apidog cli-schema get test-case-create apidog cli-schema validate test-case-create --file case.json apidog test-case create --project <id> --file case.json apidog run --test-case <caseId> --project <id> -e <envId> -r cli,json apidog test-case create --help çıktısındaki iki ayrıntı bir gidiş-dönüşü kurtarır: test durumu geçerli bir categoryId gerektirir (bunları apidog test-case category --project <id> ile listeleyin) ve yükler asla hafızadan değil, cli-schema'dan gelmelidir. Aynı apidog run satırı -r junit ile CI'a dahil olur; bunu Apidog CLI CI/CD kılavuzumuz gösterir. Ajanınız Codex ise, Codex'te Apidog CLI ile başlayın. Apidog'un Ücretsiz planı 4 kullanıcıya kadar kapsar, böylece küçük bir ekip bunu bir satın alma kararı vermeden deneyebilir. SSS OpenAI CLI ücretsiz mi? Araç, Apache 2.0 altında ücretsiz ve açık kaynaktır. Yaptığı API çağrıları, normal API ücretleriyle OpenAI hesabınıza faturalandırılır. openai tokenizer gibi yerel komutlar ve her --help sayfası hiçbir ücrete tabi değildir ve anahtar gerektirmez. OpenAI CLI, Codex CLI ile aynı mı? Hayır. openai doğrudan API istekleri gönderir, komut başına bir tane. codex ise projenizi okuyup düzenleyen ve komutları çalıştıran bir kodlama ajanıdır. Ayrı ayrı kurulurlar ve ayrı ayrı kimlik doğrulama yaparlar. OpenAI CLI'ı Mac'e nasıl kurarım? brew install openai/tools/openai komutunu çalıştırın veya GitHub Releases'ten macos_arm64 (Apple Silicon) ya da macos_amd64 (Intel) zip dosyasını indirip ikili dosyayı PATH'inize koyun. Ardından eski Python openai komutuna çarpmadığınızı doğrulamak için openai --version komutunu çalıştırın. OpenAI CLI, shell betiklerinde ve CI'da çalışır mı? Evet, ana tasarım amacı budur. Ayrıştırılabilir çıktı için --format json veya jsonl kullanın, çıkış durumunu kontrol edin, anahtarı gizli yöneticinizden OPENAI_API_KEY içinde tutun ve sürümü sabit tutmak için OPENAI_CLI_NO_AUTO_UPDATE=1 ayarlayın. OpenAI CLI ne zaman yayımlandı? 1.0.0 sürümü 5 Mayıs 2026'da GitHub'da yayımlandı. 28 Ekim 2026 itibarıyla en son sürüm, 27 Ekim tarihli 1.44.1'dir.
OpenAI CLI : installer et appeler l’API OpenAI depuis votre terminal OpenAI CLI : installer et appeler l’API OpenAI depuis votre terminal L'OpenAI CLI est l'outil officiel en ligne de commande d'OpenAI pour l'API REST OpenAI. Vous installez un seul binaire openai, définissez OPENAI_API_KEY, et appelez l'API depuis votre terminal ou un script shell : openai responses create, openai files upload, openai batches create, openai images generate. Ce n'est pas Codex CLI. Codex est un agent de codage ; openai envoie une requête API par commande. {% cta apidog.com %} Essayez Apidog dès aujourd'hui {% endcta %} Ce guide couvre l'installation, l'authentification, les premières commandes à exécuter, et comment il se compare à Codex CLI et à l'ancienne commande openai que le SDK Python plaçait dans votre PATH. Chaque commande et sortie ci-dessous provient de la version 1.44.1, installée et exécutée le 28 octobre 2026. Qu'est-ce que l'OpenAI CLI ? L'OpenAI CLI est un binaire Go open source, publié par OpenAI sur openai/openai-cli sous licence Apache 2.0. Ses commandes reflètent les ressources de l'API (responses, files, batches, images, audio, vector-stores, admin), donc tout ce que vous enverriez avec curl ou un SDK devient une seule commande terminal avec des options. Il n'est pas tout nouveau. La version 1.0.0 est sortie le 5 mai 2026, et le projet a publié 99 versions depuis ; la 1.44.1 est arrivée le 27 octobre 2026. Considérez-le donc comme un outil mature que vous avez peut-être manqué, et non comme un lancement. Voici ce que vous obtenez lors d'une première exécution : !openai --version and openai --help output from OpenAI CLI v1.44.1 L'aide regroupe les commandes par tâche : générer du contenu (responses, chat, images, audio, videos), données et récupération (files, uploads, vector-stores, embeddings), modèles et tâches, administration, et un ensemble d'outils locaux qui ne touchent jamais le réseau. L'aide elle-même ne nécessite ni clé API ni connexion, ce qui fait de openai <command> --help le moyen le plus rapide d'apprendre les options. Il convient aux développeurs qui testent une invite sans écrire de script, aux équipes d'exploitation qui veulent des téléversements de fichiers et des lots dans une tâche cron, et aux agents de codage qui ont besoin d'une interface documentée plutôt que de curl écrit à la main. Comment installer l'OpenAI CLI Vous avez trois méthodes d'installation, toutes listées dans le README du projet : 1. Binaire précompilé. Téléchargez l'archive pour votre système d'exploitation et votre architecture depuis GitHub Releases (des builds macOS, Linux et Windows sont publiés), extrayez-la et placez openai dans votre PATH. 2. Homebrew. brew install openai/tools/openai 3. Go. Nécessite Go 1.26 ou ultérieur. go install 'github.com/openai/openai-cli/cmd/openai@latest' export PATH="$PATH:$(go env GOPATH)/bin" Les installations de version auto-gérées peuvent se mettre à jour pendant les exécutions interactives. Si vous épinglez des versions dans CI, définissez OPENAI_CLI_NO_AUTO_UPDATE=1 pour arrêter les installations automatiques, ou OPENAI_CLI_NO_UPDATE_CHECK=1 pour désactiver complètement les vérifications de mise à jour. Les installations Homebrew et Go conservent leurs notifications de mise à jour mais laissent les mises à niveau au gestionnaire de paquets. Comment fonctionne l'authentification de l'OpenAI CLI L'interface lit une clé API standard à partir de OPENAI_API_KEY (ou de l'option --api-key, que vous devriez éviter car elle atterrit dans l'historique du shell). Si vous n'en avez pas encore, notre guide pour obtenir une clé API OpenAI vous explique la procédure. La configuration la plus rapide est le guide intégré : openai help setup Il vous dirige vers la page des clés API et vous donne une ligne read -rs OPENAI_API_KEY pour Bash ou zsh, afin que la clé soit saisie en mode masqué et jamais affichée. Oubliez la clé et vous obtenez un échec clair et scriptable. Voici la sortie réelle sans clé définie : !OpenAI CLI returns HTTP 401 Unauthorized when no API key is configured Il se termine avec le statut 1 et vous indique exactement d'où une clé peut provenir. Ajoutez --format-error json lorsqu'un script a besoin du corps d'erreur brut. Les autres paramètres d'authentification : | Paramètre | Option | Variable d'environnement | Utilisation | | --- | --- | --- | --- | | Clé API | --api-key | OPENAI_API_KEY | Pour chaque appel API normal | | Clé d'administration | --admin-api-key | OPENAI_ADMIN_KEY | openai admin ... (utilisation, projets) ; une clé de projet ne peut pas la remplacer | | URL de base | --base-url | OPENAI_BASE_URL | Pour pointer l'interface vers un autre hôte ou une passerelle | | Certificat et clé mTLS | --mtls-client-cert-file, --mtls-client-key-file | OPENAI_MTLS_CLIENT_CERT_FILE, OPENAI_MTLS_CLIENT_KEY_FILE | Pour le TLS mutuel, qui nécessite une URL de base HTTPS explicite | Premières commandes OpenAI CLI à exécuter La forme des commandes suit celle de l'API : openai <resource> [subresource...] <command> [flags...]. Voici les commandes qui méritent leur place dans une boîte à outils. Effectuer un appel à l'API Responses openai responses create \ --model gpt-5.5 \ --input "Say this is a test" Les invites longues n'ont pas besoin d'échappement. Les options d'entrée JSON lisent depuis un fichier avec @path : openai responses create --model gpt-5.5 --input @prompt.txt Si vous dirigez du JSON ou du YAML depuis une source non fiable, définissez OPENAI_UNTRUSTED_STDIN=1 pour que cette entrée ne puisse pas déclencher de lectures de fichiers locaux. Téléverser et récupérer des fichiers openai files upload report.txt --purpose user_data openai files get file-example openai files download file-example --output downloaded-report.txt Exécuter un lot Placez une requête par ligne dans requests.jsonl, chacune avec un custom_id unique, puis : openai files upload requests.jsonl --purpose batch openai batches create --input-file-id file-example \ --endpoint /v1/responses --completion-window 24h openai batches wait batch_example --output-dir ./results batches wait interroge jusqu'à ce que le lot soit terminé et enregistre les fichiers de résultats, ce qui supprime la boucle d'interrogation que vous auriez sinon écrite. Le guide des lots du projet liste les limites actuelles : 50 000 requêtes et 200 Mo par fichier d'entrée, avec une fenêtre d'achèvement de 24h. La tarification des lots diffère de celle des appels synchrones ; consultez notre analyse des tarifs de l'API OpenAI avant de mettre en file d'attente une tâche volumineuse. Compter les tokens localement, sans clé La commande tokenizer fonctionne entièrement hors ligne : aucun identifiant, aucun réseau, aucune entrée enregistrée. !openai tokenizer count output in text and JSON formats L'encodage par défaut est o200k_base, et openai tokenizer encodings liste les autres (cl100k_base, plus deux hérités). L'aide est honnête sur les limites : un comptage en texte brut exclut la structure de la requête et les entrées multimodales, donc ce n'est pas un chiffre de facturation. Pour un comptage côté serveur, utilisez openai responses input-tokens count. Obtenir une sortie qu'un script peut analyser La sortie par défaut est du texte lisible, même lorsqu'elle est redirigée. Demandez explicitement des données : openai models list --format jsonl | jq '.id' openai files list --format json > files.json openai files get file-example --transform filename --raw-output --format accepte auto, text, json, jsonl, yaml, explore (une visionneuse JSON interactive) et pretty. --transform extrait des champs avec la syntaxe GJSON, et jq gère tout ce qui est plus sophistiqué. Vérifiez toujours le statut de sortie avant de faire confiance à un fichier redirigé : une requête échouée peut en laisser un partiel. Lorsqu'un appel se comporte mal, --debug ajoute le minutage HTTP par tentative ; nettoyez ses journaux avant de les partager. Si vous recevez des 429, notre guide des limites de débit d'OpenAI explique les niveaux. OpenAI CLI vs Codex CLI vs l'ancienne commande openai Trois outils partagent un fournisseur et deux partagent un nom. Voici la version courte : !Comparison of OpenAI CLI, Codex CLI and Apidog CLI: what each terminal tool is for | | OpenAI CLI | Codex CLI | Ancien openai Python | | --- | --- | --- | --- | | Commande | openai | codex | openai | | Ce que c'est | Un client pour l'API REST | Un agent de codage qui lit, modifie et exécute du code dans votre projet | Une interface en ligne de commande fournie avec le paquet Python openai | | Installation | Binaire, Homebrew ou Go | npm install -g @openai/codex ou brew install --cask codex | pip install openai | | Authentification | OPENAI_API_KEY | Gère sa propre connexion | Clé API | | Quand l'utiliser | Vous voulez un appel API spécifique, ou des étapes API dans un script | Vous voulez qu'un agent implémente ou débogue un changement | Vous maintenez d'anciens scripts construits dessus | Exécutez openai codex et l'OpenAI CLI affiche lui-même les commandes d'installation de Codex, en notant qu'il s'agit d'un outil séparé avec sa propre connexion. Notre guide de Codex CLI couvre le côté agent, et le code source se trouve sur openai/codex. Attention au conflit de PATH Le paquet Python openai installe également un binaire nommé openai. Si vous avez déjà exécuté pip install openai, vous en avez peut-être deux : !which -a openai shows two openai binaries: the new OpenAI CLI and the legacy Python SDK command Sur ce Mac, celui en Python indique openai 2.30.0 et propose les sous-commandes api, tools, migrate et grit ; celui en Go indique openai version 1.44.1. Le répertoire qui apparaît en premier dans votre PATH l'emporte. Exécutez which -a openai et openai --version après l'installation. Si la sortie indique openai version 1.44.1 (ou plus récent), vous avez le bon. Si elle affiche un simple numéro de version comme openai 2.30.0, réorganisez votre PATH ou appelez le nouveau binaire par son chemin complet. Où se situe Apidog CLI à côté de l'OpenAI CLI L'OpenAI CLI effectue des appels vers OpenAI. Il ne connaît pas votre propre API : les points de terminaison que votre application expose au-dessus d'OpenAI, les environnements dans lesquels vous déployez, ou les assertions qui prouvent qu'une version n'a rien cassé. C'est un autre travail, et c'est là qu'intervient Apidog CLI. Vous ne choisissez pas l'un plutôt que l'autre ; la plupart des équipes qui livrent une fonctionnalité d'IA veulent les deux. Mieux encore, laissez votre agent de codage exécuter les deux. Configurez Apidog CLI une fois : npm install -g apidog-cli@latest apidog login --with-token <YOUR_TOKEN> npx -y skills add https://apidog.com # pick your agent when prompted Ensuite, donnez un seul prompt à votre agent : Use the openai CLI to confirm my key works with one responses create call on gpt-5.5. Then import ./openapi.yaml into Apidog project <id>, create a test case for POST /v1/summarize that asserts a 200 and a non-empty "summary" field, run it against the staging environment and summarize any failures. L'agent vérifie la clé avec openai, puis travaille avec Apidog CLI. Il lit le schéma avant d'écrire une charge utile, valide le fichier, et seulement ensuite crée et exécute le cas : apidog import --project <id> --format openapi --file ./openapi.yaml apidog cli-schema get test-case-create apidog cli-schema validate test-case-create --file case.json apidog test-case create --project <id> --file case.json apidog run --test-case <caseId> --project <id> -e <envId> -r cli,json Deux détails de apidog test-case create --help évitent un aller-retour : le cas nécessite un categoryId valide (listez-les avec apidog test-case category --project <id>), et les charges utiles doivent provenir de cli-schema, jamais de mémoire. La même ligne apidog run avec -r junit s'intègre dans CI, comme le montre notre guide CI/CD d'Apidog CLI. Si Codex est votre agent, commencez par Apidog CLI dans Codex. Le plan gratuit d'Apidog couvre jusqu'à 4 utilisateurs, donc une petite équipe peut essayer cela sans décision d'achat. FAQ L'OpenAI CLI est-il gratuit ? L'outil est gratuit et open source sous Apache 2.0. Les appels API qu'il effectue sont facturés à votre compte OpenAI aux tarifs API normaux. Les commandes locales comme openai tokenizer et chaque page --help ne coûtent rien et ne nécessitent aucune clé. L'OpenAI CLI est-il identique à Codex CLI ? Non. openai envoie des requêtes API directes, une par commande. codex est un agent de codage qui lit et modifie votre projet et exécute des commandes. Ils s'installent séparément et s'authentifient séparément. Comment installer l'OpenAI CLI sur un Mac ? Exécutez brew install openai/tools/openai, ou téléchargez le zip macos_arm64 (Apple Silicon) ou macos_amd64 (Intel) depuis GitHub Releases et placez le binaire dans votre PATH. Ensuite, exécutez openai --version pour confirmer que vous n'utilisez pas l'ancienne commande openai de Python. L'OpenAI CLI fonctionne-t-il dans les scripts shell et la CI ? Oui, c'est son principal objectif de conception. Utilisez --format json ou jsonl pour une sortie analysable, vérifiez le statut de sortie, conservez la clé dans OPENAI_API_KEY à partir de votre gestionnaire de secrets, et définissez OPENAI_CLI_NO_AUTO_UPDATE=1 pour garder la version épinglée. Quand l'OpenAI CLI a-t-il été publié ? La version 1.0.0 a été publiée sur GitHub le 5 mai 2026. Au 28 octobre 2026, la dernière version est la 1.44.1, datant du 27 octobre.
OpenAI CLI: Install It and Call the OpenAI API From Your Terminal The OpenAI CLI is OpenAI's official command-line tool for the OpenAI REST API. You install one openai binary, set OPENAI_API_KEY, and call the API from your terminal or a shell script: openai responses create, openai files upload, openai batches create, openai images generate. It is not Codex CLI. Codex is a coding agent; openai sends one API request per command. {% cta apidog.com %} Try Apidog today {% endcta %} This guide covers install, auth, the first commands worth running, and how it compares with Codex CLI and the old openai command the Python SDK put on your PATH. Every command and output below comes from version 1.44.1, installed and run on October 28, 2026. What is the OpenAI CLI? The OpenAI CLI is an open-source Go binary, published by OpenAI at openai/openai-cli under the Apache 2.0 license. Its commands mirror the API's resources (responses, files, batches, images, audio, vector-stores, admin), so anything you'd send with curl or an SDK becomes one terminal command with flags. It isn't brand new. Version 1.0.0 shipped on May 5, 2026, and the project has cut 99 releases since; 1.44.1 landed on October 27, 2026. So treat it as a mature tool you may have missed, not a launch. Here's what you get on a first run: !openai --version and openai --help output from OpenAI CLI v1.44.1 The help groups commands by job: generate content (responses, chat, images, audio, videos), data and retrieval (files, uploads, vector-stores, embeddings), models and jobs, administration, and a set of local tools that never touch the network. Help itself needs no API key and no connection, which makes openai <command> --help the fastest way to learn the flags. It suits developers testing a prompt without writing a script, ops people who want file uploads and batches in a cron job, and coding agents that need a documented interface instead of hand-rolled curl. How to install the OpenAI CLI You have three install routes, all listed in the project README: 1. Prebuilt binary. Download the archive for your OS and architecture from GitHub Releases (macOS, Linux and Windows builds are published), extract it and put openai on your PATH. 2. Homebrew. brew install openai/tools/openai 3. Go. Requires Go 1.26 or later. go install 'github.com/openai/openai-cli/cmd/openai@latest' export PATH="$PATH:$(go env GOPATH)/bin" Self-managed release installs can update themselves during interactive runs. If you pin versions in CI, set OPENAI_CLI_NO_AUTO_UPDATE=1 to stop automatic installs, or OPENAI_CLI_NO_UPDATE_CHECK=1 to switch off update checks entirely. Homebrew and Go installs keep their update notices but leave upgrades to the package manager. How OpenAI CLI authentication works The CLI reads a standard API key from OPENAI_API_KEY (or the --api-key flag, which you should avoid because it lands in shell history). If you don't have one yet, our guide to getting an OpenAI API key walks through it. The quickest setup is the built-in guide: openai help setup It points you to the API keys page and gives you a read -rs OPENAI_API_KEY line for Bash or zsh, so the key is typed hidden and never echoed. Forget the key and you get a clear, scriptable failure. This is the real output with no key set: !OpenAI CLI returns HTTP 401 Unauthorized when no API key is configured It exits with status 1 and tells you exactly where a key can come from. Add --format-error json when a script needs the raw error body. The other auth settings: | Setting | Flag | Environment variable | Use it for | | --- | --- | --- | --- | | API key | --api-key | OPENAI_API_KEY | Every normal API call | | Admin key | --admin-api-key | OPENAI_ADMIN_KEY | openai admin ... (usage, projects); a project key can't replace it | | Base URL | --base-url | OPENAI_BASE_URL | Pointing the CLI at another host or a gateway | | mTLS cert and key | --mtls-client-cert-file, --mtls-client-key-file | OPENAI_MTLS_CLIENT_CERT_FILE, OPENAI_MTLS_CLIENT_KEY_FILE | Mutual TLS, which needs an explicit HTTPS base URL | First OpenAI CLI commands to run The command shape follows the API: openai <resource> [subresource...] <command> [flags...]. These are the commands that earn their place in a toolbox. Make a Responses API call openai responses create \ --model gpt-5.5 \ --input "Say this is a test" Long prompts don't need escaping. JSON input flags read from a file with @path: openai responses create --model gpt-5.5 --input @prompt.txt If you pipe JSON or YAML from a source you don't trust, set OPENAI_UNTRUSTED_STDIN=1 so that input can't trigger local file reads. Upload and fetch files openai files upload report.txt --purpose user_data openai files get file-example openai files download file-example --output downloaded-report.txt Run a batch Put one request per line in requests.jsonl, each with a unique custom_id, then: openai files upload requests.jsonl --purpose batch openai batches create --input-file-id file-example \ --endpoint /v1/responses --completion-window 24h openai batches wait batch_example --output-dir ./results batches wait polls until the batch finishes and saves the result files, which removes the polling loop you'd otherwise write. The project's batch guide lists the current limits as 50,000 requests and 200 MB per input file, with a 24h completion window. Batch pricing differs from synchronous calls; see our OpenAI API pricing breakdown before you queue a large job. Count tokens locally, with no key The tokenizer command runs fully offline: no credentials, no network, no saved input. !openai tokenizer count output in text and JSON formats The default encoding is o200k_base, and openai tokenizer encodings lists the others (cl100k_base, plus two legacy ones). The help is honest about limits: a plain-text count excludes request structure and multimodal inputs, so it isn't a billing figure. For a server-side count, use openai responses input-tokens count. Get output a script can parse The default output is readable text, even when piped. Ask for data explicitly: openai models list --format jsonl | jq '.id' openai files list --format json > files.json openai files get file-example --transform filename --raw-output --format accepts auto, text, json, jsonl, yaml, explore (an interactive JSON viewer) and pretty. --transform pulls fields with GJSON syntax, and jq handles anything fancier. Always check the exit status before trusting a redirected file: a failed request can leave a partial one behind. When a call misbehaves, --debug adds per-attempt HTTP timing; scrub its logs before sharing them. If you're hitting 429s, our OpenAI rate limits guide explains the tiers. OpenAI CLI vs Codex CLI vs the old openai command Three tools share a vendor and two share a name. This is the short version: !Comparison of OpenAI CLI, Codex CLI and Apidog CLI: what each terminal tool is for | | OpenAI CLI | Codex CLI | Legacy Python openai | | --- | --- | --- | --- | | Command | openai | codex | openai | | What it is | A client for the REST API | A coding agent that reads, edits and runs code in your project | A CLI bundled with the openai Python package | | Install | Binary, Homebrew or Go | npm install -g @openai/codex or brew install --cask codex | pip install openai | | Auth | OPENAI_API_KEY | Handles its own sign-in | API key | | Use it when | You want one specific API call, or API steps in a script | You want an agent to implement or debug a change | You maintain older scripts built on it | Run openai codex and the OpenAI CLI prints Codex install commands itself, noting it's a separate tool with its own sign-in. Our Codex CLI guide covers the agent side, and the source lives at openai/codex. Watch for the PATH clash The openai Python package also installs a binary named openai. If you've ever run pip install openai, you may have two: !which -a openai shows two openai binaries: the new OpenAI CLI and the legacy Python SDK command On this Mac the Python one reports openai 2.30.0 and offers api, tools, migrate and grit subcommands; the Go one reports openai version 1.44.1. Whichever directory comes first on your PATH wins. Run which -a openai and openai --version after you install. If the output says openai version 1.44.1 (or newer), you have the right one. If it prints a bare version number like openai 2.30.0, reorder your PATH or call the new binary by its full path. Where Apidog CLI fits next to the OpenAI CLI The OpenAI CLI makes calls to OpenAI. It doesn't know about your own API: the endpoints your app exposes on top of OpenAI, the environments you deploy to, or the assertions that prove a release didn't break anything. That's a different job, and it's where Apidog CLI comes in. You don't pick one over the other; most teams that ship an AI feature want both. Better still, let your coding agent run both. Set up Apidog CLI once: npm install -g apidog-cli@latest apidog login --with-token <YOUR_TOKEN> npx -y skills add https://apidog.com # pick your agent when prompted Then give your agent one [REDACTED PROMPT] Use the openai CLI to confirm my key works with one responses create call on gpt-5.5. Then import ./openapi.yaml into Apidog project <id>, create a test case for POST /v1/summarize that asserts a 200 and a non-empty "summary" field, run it against the staging environment and summarize any failures. The agent checks the key with `openai`, then works through Apidog CLI. It reads the schema before writing any payload, validates the file, and only then creates and runs the case: apidog import --project <id> --format openapi --file ./openapi.yaml apidog cli-schema get test-case-create apidog cli-schema validate test-case-create --file case.json apidog test-case create --project <id> --file case.json apidog run --test-case <caseId> --project <id> -e <envId> -r cli,json Two details from apidog test-case create --help save a round trip: the case needs a valid categoryId (list them with apidog test-case category --project <id>), and payloads should come from cli-schema, never from memory. The same apidog run line with -r junit drops into CI, as our Apidog CLI CI/CD guide shows. If Codex is your agent, start with Apidog CLI in Codex. Apidog's Free plan covers up to 4 users, so a small team can try this without a purchase decision. FAQ Is the OpenAI CLI free? The tool is free and open source under Apache 2.0. The API calls it makes are billed to your OpenAI account at normal API rates. Local commands like openai tokenizer and every --help page cost nothing and need no key. Is the OpenAI CLI the same as Codex CLI? No. openai sends direct API requests, one per command. codex is a coding agent that reads and edits your project and runs commands. They install separately and authenticate separately. How do I install the OpenAI CLI on a Mac? Run brew install openai/tools/openai, or download the macos_arm64 (Apple Silicon) or macos_amd64 (Intel) zip from GitHub Releases and put the binary on your PATH. Then run openai --version to confirm you aren't hitting the older Python openai command. Does the OpenAI CLI work in shell scripts and CI? Yes, that's its main design goal. Use --format json or jsonl for parseable output, check the exit status, keep the key in OPENAI_API_KEY from your secret manager, and set OPENAI_CLI_NO_AUTO_UPDATE=1 to keep the version pinned. When was the OpenAI CLI released? Version 1.0.0 was published on GitHub on May 5, 2026. As of October 28, 2026 the latest release is 1.44.1, from October 27.
Claude API の公式CLI「ant」入門 ― インストールから ant apply による Infrastructure as Code まで 🐜 はじめに 📝 Claude の公式ブログ記事「Building effective agent automations」を読んでいると、ant apply deployment.md のようなコマンドがさらっと登場します。この ant は、Anthropic 公式の Claude API 用コマンドラインツール です(リポジトリ: anthropics/anthropic-cli)。 この記事では、公式ドキュメントをもとに ant の基本的な使い方と、エージェントやデプロイメントをファイルで管理できる ant apply について解説します。 まずはどんなものか、サンプルを見てみましょう 👇 # Messages API を呼ぶ ant messages create \ --model claude-opus-5-5 \ --max-tokens 1024 \ --message '{role: user, content: "Hello, Claude"}' # エージェント定義ファイルから API リソースを作成・更新する ant apply agents/summarizer.md --- name: Summarizer model: claude-opus-5-5 tools: - type: agent_toolset_20260401 --- You are a helpful assistant that writes concise summaries. 3行まとめ ✨ - 🐜 ant は Claude API のすべてのリソースをサブコマンドとして扱える公式CLI。curl + jq の手書きJSONから解放される - 🔄 --transform(GJSON)・--format・@path によるファイル埋め込みなど、スクリプトで使いやすい機能が揃っている - 📦 ant apply を使うと、エージェント・環境・メモリストア・デプロイメント・Vault などを ファイルで宣言して API と同期 できる(Terraform 的な使い方) ant とは 🤔 ant CLI は、ターミナルから Claude API にアクセスするためのツールです。すべての API リソースがサブコマンドとして公開されており、出力の整形、レスポンスのフィルタリング、YAML / JSON ファイルからの入力に対応しています。 curl と比べたときのメリットは次の通りです。 | 観点 | curl | ant | | --- | --- | --- | | リクエストボディ | JSON を手書き | 型付きフラグ or YAML をパイプ | | ファイルの埋め込み | 自前でエンコード | @path で文字列フィールドに埋め込み(バイナリは自動で base64) | | レスポンスの抽出 | jq が別途必要 | --transform で GJSON クエリを内蔵 | | 一覧APIのページング | 自前でループ | 自動でページング | インストールと認証 🔧 インストール # macOS (Homebrew) brew install anthropics/tap/ant # Linux / WSL(リリースバイナリを直接取得) VERSION=1.40.0 OS=$(uname -s | tr '[:upper:]' '[:lower:]') case $(uname -m) in x86_64) ARCH=amd64 ;; aarch64) ARCH=arm64 ;; esac curl -fsSL "https://github.com/anthropics/anthropic-cli/releases/download/v${VERSION}/ant_${VERSION}_${OS}_${ARCH}.tar.gz" \ | sudo tar -xz -C /usr/local/bin ant # Go(1.25 以上) go install github.com/anthropics/anthropic-cli/cmd/ant@latest export PATH="$PATH:$(go env GOPATH)/bin" インストールできたか確認します。 ant --version 認証 ant auth login ブラウザで Claude Console の OAuth フローが開き、認証情報がローカルに保存されます。API キーを作成・管理しなくても API を呼べるのが嬉しいポイントです。API キーの環境変数、ヘッドレス環境、複数ワークスペース、名前付きプロファイル、Workload Identity Federation などにも対応しています。 シェル補完 # zsh ant @completion zsh > "${fpath[1]}/_ant" # bash ant @completion bash > /etc/bash_completion.d/ant # fish ant @completion fish > ~/.config/fish/completions/ant.fish 基本的な使い方 🚀 コマンド構造 コマンドは リソース アクション の形式です。ネストしたリソースはコロンでつなぎます。 ant <resource>[:<subresource>] <action> [flags] ant models list ant messages create --model claude-opus-5-5 --max-tokens 1024 ... ant beta:agents retrieve --agent-id agent_01... ant beta:sessions:events list --session-id session_01... 💡 エージェント・セッション・デプロイメント・環境などのベータ版リソースは beta: プレフィックスの下にあります。必要な anthropic-beta ヘッダーは自動で付与されるので、自分で指定する必要はありません。 出力フォーマット --format auto / json / jsonl / yaml / pretty / raw / explore から選べます。 ant models retrieve --model-id claude-opus-5-5 --format yaml - 作成・更新系コマンドのデフォルトは auto(JSON を整形表示) - 一覧・取得系コマンドは、ターミナルではインタラクティブエクスプローラー、パイプ時は整形 JSON がデフォルト - エクスプローラーは矢印キーで展開/折りたたみ、/ で検索、q で終了 ant models list --format explore --transform で GJSON による抽出 🔍 --transform には GJSON パス を指定します。一覧系ではエンベロープではなく各要素に対して適用される点がポイントです。 ant beta:agents list \ --transform "{id,name,model}" \ --format jsonl 作成したリソースの ID をシェル変数に入れたいときは、--raw-output(-r)と組み合わせます。jq -r と同じく、文字列をクォートなしで出力します。 AGENT_ID=$(ant beta:agents create \ --name "My Agent" \ --model '{id: claude-opus-5-5}' \ --transform id --raw-output) printf '%s\n' "$AGENT_ID" ⚠️ --raw-output と --format raw は別物です。--format raw はレスポンスの生の JSON をそのまま出力し、自動ページングも行いません。 リクエストボディの渡し方 📨 データの形に応じて3つの方法を使い分けます。 ① フラグ:スカラー値や短い構造化データ向け。構造化フィールドは YAML 風のゆるい記法でも厳密な JSON でも書けます。 ant beta:sessions create \ --agent '{type: agent, id: agent_011CYm1BLqPXpQRk5khsSXrs, version: 1}' \ --environment-id env_01595EKxaaTTGwwY3kyXdtbs \ --title "CLI docs test session" --tool のように繰り返し指定できるフラグは配列になります。 ant beta:agents create \ --name "Research Agent" \ --model '{id: claude-opus-5-5}' \ --tool '{type: agent_toolset_20260401}' \ --tool '{type: custom, name: search_docs, input_schema: {type: object, properties: {query: {type: string}}}}' ② 標準入力:ネストが深い・複数行のボディ向け。フラグと併用した場合はフラグが優先されます。 ant beta:agents create <<'YAML' name: Research Agent model: claude-opus-5-5 system: | You are a research assistant. Cite sources for every claim. tools: - type: agent_toolset_20260401 YAML ③ @ によるファイル参照:ファイルの内容を文字列フィールドに埋め込みます。 ant beta:agents create \ --name "Researcher" --model '{id: claude-opus-5-5}' \ --system @./prompts/researcher.txt PDF のようなバイナリも、ファイル種別を判定して自動で base64 エンコードしてくれます。 ant messages create \ --model claude-opus-5-5 \ --max-tokens 1024 \ --message '{role: user, content: [ {type: document, source: {type: base64, media_type: application/pdf, data: "@./scan.pdf"}}, {type: text, text: "Extract the text from this scanned document."} ]}' \ --transform 'content.#(type=="text").text' --raw-output エンコードを明示したい場合は @file://(プレーンテキスト)/ @data://(base64)を使います。先頭の @ を文字として送りたいときは \@username のようにエスケープします。 デバッグ 🐛 --debug を付けると、実際の HTTP リクエスト/レスポンスが stderr に出力されます(API キーはマスクされます)。 ant --debug beta:agents list ant apply:リソースをコードで管理する 📦 ここからが冒頭のブログ記事で使われていた機能です。ant apply(CLI 1.30.0 以上が必要)は、エージェント・環境・スキル・メモリストア・デプロイメント・Vault をファイルから作成・更新します。リソース定義をリポジトリに置き、コードと同じレビューフローで変更できるようになります。 最初のエージェントを apply する agents/ 配下に Markdown でエージェントを書いて apply します。フロントマターが設定、本文がシステムプロンプトになります。 ant apply agents/summarizer.md ターミナルでは実行計画(plan)が表示され、承認を求められます。 ± Name Plan + ./agents/summarizer.md create Resources + 1 to create Apply these changes? (y)es / (n)o / (d)etails y - d で新規リソースのフィールドや、更新時のフィールド単位の差分を確認できる - --dry-run で詳細な計画を表示するだけで終了する - ファイルを編集して再度 ant apply すると、計画が create ではなく update になる claude-lock.json をコミットする 🔒 初回の ant apply は、実行したディレクトリに claude-lock.json(ロックファイル) を書き出します。各ファイルが作成したリソースの ID と、組織・ワークスペースの情報が記録されます。 { "version": 1, "origin": { "base_url": "https://api.anthropic.com", "organization_id": "1b0c2a4d-6c1f-4f0e-9a57-2e8d1c3b4a5f", "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" }, "resources": { "./agents/summarizer.md": { "kind": "agent", "id": "agent_011CYm1BLqPXpQRk5khsSXrs", "version": "1", "hash": "d23251c8d99b3613a64f3f8d87f5fad4", "remote_hash": "1b771bee5bdbf600a5ad972fdac32d94" } } } これをファイルと一緒にコミットしておくことで、次回の実行(手元でも CI でも)が同じリソースを更新するようになります。2つのハッシュで「ファイルが編集された」「ファイル外(Console など)でリソースが変更された」を検知します。リポジトリのルートで実行するのがおすすめです。 プロジェクトとして育てる 🌱 各リソースはディレクトリで種類を判別します。 | リソース | 置き場所・形式 | | --- | --- | | エージェント | agents/ の Markdown(本文が system) | | 環境 | environments/ の YAML | | メモリストア | memory_stores/ の YAML | | デプロイメント | deployments/ の Markdown(本文が各セッションの開始メッセージ) | | スキル | SKILL.md を含むディレクトリ(慣例で skills/ 配下) | | Vault | vaults/ の YAML(display_name と metadata のみ。CLI 1.34.0 以上) | ポイントは リソース同士を相対パスで参照できることです。API が ID を期待する場所にファイルパスを書くと、ant apply が依存関係の順に作成して実際の ID を埋めてくれます。 --- name: Nightly review agent: ../agents/reviewer.md # the API's agent field: sent as {type: agent, id, version} environment_id: ../environments/cloud.yaml # sent as the environment's ID resources: - path: ../memory_stores/review-notes.yaml access: read_write schedule: type: cron expression: "0 3 * * *" timezone: America/Los_Angeles --- Review any open pull requests. Start with the oldest. ディレクトリごとまとめて apply できます。 ant apply . 種類の判定は、①ファイル内のトップレベル type フィールド → ②直上のディレクトリ名 → ③ファイル名の先頭(例: environment_staging.md)の順に行われます。どれにも当てはまらない README や CI 設定などはスキップされます(Vault だけはファイル名からは判定されないので、vaults/ に置くか type: vault を付けます)。 編集・削除時の挙動 ✏️ - 引数なしの ant apply はロックファイルが追跡しているファイルをすべて同期 - ファイルからフィールドを消すと、API がクリア可能なフィールドならリソース側でもクリアされる - Console などファイル外で変更されたリソースがあると refusing to apply で停止 → --force で上書き - ファイルを削除してもリソースは残る(警告のみ)→ --prune でアーカイブ/削除 - Console や ant beta:agents create で作ったリソースは取り込めない(同じ内容のファイルを apply すると2つ目が作られる)。ただし Console の Export as code でダウンロードしたものは claude-lock.json 付きなので更新できる CI で使う 🤖 ターミナルがない環境では確認プロンプトを出せないため、フラグが必要です。 - マージ後のデフォルトブランチで ant apply --yes .(ディレクトリを明示しないと新規ファイルがスキップされる) - プルリクエストでは ant apply --dry-run . で計画をレビュアーに表示 - 途中で失敗しても claude-lock.json はジョブの最後にコミットする(部分的な apply でも作成済みのものは記録されるため) - ロックファイルにロック機構はないので、apply は同時に1つだけ実行する - 認証は保存済み API キーより Workload Identity Federation を推奨 | フラグ | 効果 | | --- | --- | | --dry-run | 計画を表示して終了(ロックファイルも書かない) | | --yes | 確認なしで適用(ターミナルなしでは必須) | | --force | ファイル外で変更されたリソースも上書き | | --prune | ファイルから消えたリソースを削除 | | --upgrade | GitHub URL で参照しているスキルを再解決 | | --lock-file <path> | 使用するロックファイルを指定 | | --verbose, -v | 変更のないリソースや全フィールドも表示 | ブログ記事での使われ方 🗞️ 冒頭の「Building effective agent automations」では、デイリーブリーフエージェントを次のように構築・運用していました。 ant apply vault.yaml # 認証情報を入れる Vault を作成 ant apply deployment.md # スケジュール実行の定義を作成・更新 ant beta:deployments run --deployment-id <id> # 手動でテスト実行 agent.md / deployment.md / environment.yaml / memory_store_*.yaml / vault.yaml をリポジトリで管理し、claude-lock.json でリソース ID を追跡する、まさに ant apply の典型的な構成になっています。 まとめ 🎯 - ant は Claude API の公式CLIで、curl + jq よりも短く安全に API を叩ける - --format / --transform / --raw-output / @path を覚えるとシェルスクリプトとの相性が抜群 - ant apply でエージェントやデプロイメントをコードとしてレビュー・バージョン管理でき、CI からの自動反映も可能 まずは brew install anthropics/tap/ant → ant auth login → ant models list で触ってみて、次に手元のエージェントを agents/ に Markdown で書いて ant apply --dry-run . してみるのがおすすめです 🚀 参考リンク 🔗 - CLI quickstart(公式ドキュメント) - Using the CLI(公式ドキュメント) - Manage resources as code with ant apply(公式ドキュメント) - CLI scripting and automation(公式ドキュメント) - anthropics/anthropic-cli(GitHub) - Building effective agent automations(Claude Blog) - GJSON Path Syntax