OpenAI CLI
OpenAI API용 공식 CLI
OpenAI가 REST API를 명령행에서 호출하는 공식 CLI를 공개했습니다. 리소스별 명령과 JSON 변환, 파일·이미지 처리, 셸 자동 완성 등을 제공하며 Codex와는 용도가 다릅니다. Go 1.26 이상 또는 Homebrew로 설치할 수 있습니다.
- 주제
에디터 노트
Codex와 OpenAI CLI의 차이는 댓글에서 가장 혼란스러운 지점입니다. 저장소 문서의 명령 구조와 출력 옵션을 보면 이 도구는 REST API 호출을 셸 작업에 연결하는 CLI이며, 대화형 코딩 에이전트와는 역할이 다릅니다. 댓글에서 나온 구독 한도 과금 여부는 자료가 답하지 않습니다. 직접 만들 수 있다는 지적도 맞지만, 파일 참조의 안전한 처리나 오류 형식, 이미지 저장 같은 세부 동작을 이미 제공한다는 점은 단순한 curl 래퍼와 구별됩니다. 유지보수 우려와 품질 비판은 댓글의 주장으로 남아 있으며, 본문만으로 제품의 안정성을 판단할 근거는 없습니다.
AI 요약
OpenAI CLI는 OpenAI REST API를 터미널에서 호출하는 공식 명령행 도구입니다. 명령은 openai <resource> [subresource...] <command> [flags...] 구조로 구성하며, 일반 API 요청에는 API 키를, 관리용 엔드포인트에는 관리자 API 키를 사용합니다. Codex처럼 대화형 코딩 에이전트가 아니라 API 요청을 명령행에서 실행하는 도구입니다.
설치와 도움말
Homebrew에서는 brew install openai/tools/openai로 설치합니다. Go를 이용해 직접 설치하거나 로컬에서 실행하려면 Go 1.26 이상이 필요합니다. go install 'github.com/openai/openai-cli/cmd/openai@latest'로 설치한 실행 파일은 기본적으로 $HOME/go/bin에 놓입니다. 명령을 찾지 못하면 Go 바이너리 경로를 셸의 PATH에 추가해야 합니다.
도움말은 API 키나 네트워크 연결 없이 확인할 수 있습니다. openai를 실행하면 명령 그룹을 둘러볼 수 있고, 각 명령에 --help를 붙이거나 openai help COMMAND를 실행하면 전체 옵션을 확인합니다. 기존의 콜론을 쓰는 명령 형식도 계속 지원합니다. 셸 자동 완성은 파일 경로 입력도 지원하며, 업데이트 뒤 자동 완성 스크립트를 다시 불러와야 새 동작이 적용됩니다. 예제나 복구 명령을 명령줄에 삽입하는 기능도 제공하며, Ctrl+X 다음 Tab으로 제안을 검색합니다.
출력과 API 데이터 처리
JSON 응답은 기본적으로 읽기 쉬운 텍스트로 출력합니다. 스크립트에서 API 데이터를 처리할 때는 --format json 또는 --format jsonl을 지정합니다. --transform과 GJSON 문법으로 성공 응답에서 필요한 값을 추출할 수 있으며, --format-error와 --transform-error로 오류 출력 형식과 추출 경로를 별도로 설정합니다. 기본 오류 요약은 거부된 값을 보여주지 않지만, 원본 API 오류를 출력하면 서버가 보낸 민감한 정보가 포함될 수 있습니다.
파일 업로드는 openai files upload 경로 --purpose user_data처럼 경로를 직접 받습니다. 다운로드 결과를 파일로 저장하거나 표준 출력으로 넘길 수 있습니다. JSON 입력 값에서 @파일 형식을 쓰면 로컬 파일 내용을 읽습니다. 텍스트 파일은 문자열로, 바이너리 파일은 Base64 문자열로 보내도록 파일 형식을 판별합니다. @file://과 @data://를 쓰면 전송 형식을 명시할 수 있습니다. 신뢰할 수 없는 표준 입력을 처리할 때 OPENAI_UNTRUSTED_STDIN=1을 설정하면 입력에 포함된 파일 참조를 로컬 파일 읽기로 해석하지 않습니다. 파일 업로드는 명령행 플래그로 명시해야 합니다.
이미지와 업데이트 확인
openai images generate는 생성 이미지를 기본적으로 ~/Downloads/gpt-images/에 저장하고 경로를 출력합니다. 모델을 지정하지 않고 저장할 때는 gpt-image-2.5-sunburst를 사용합니다. --output-dir로 저장 위치를 바꿀 수 있으며 기존 파일은 덮어쓰지 않습니다. --format json은 이미지를 저장하지 않고 API 데이터를 반환합니다. 저장된 이미지 미리 보기와 셸에서의 자동 이미지 표시 설정도 지원합니다.
대화형 터미널에서 인수 없이 openai를 실행하면 새 안정 버전을 확인합니다. 확인은 하루 최대 한 번이며 200밀리초를 넘기지 않고, 실패해도 조용히 지나갑니다. 도움말, 명령 실행, CI, 리디렉션된 입출력에서는 확인하지 않습니다. CLI가 자동으로 업데이트를 설치하지 않으며, 확인과 알림은 OPENAI_CLI_NO_UPDATE_CHECK=1로 끌 수 있습니다.
인증과 보안 설정
API 키는 OPENAI_API_KEY 또는 관리자용 OPENAI_ADMIN_KEY 환경 변수로 설정합니다. 사용자 지정 헤더는 OPENAI_CUSTOM_HEADERS에 한 줄에 하나씩 지정할 수 있고, 로그에서는 값이 가려집니다. 디버그 로그에는 HTTP 요청과 응답 본문이 들어갈 수 있습니다. mTLS는 베타 기능이며 인증서와 개인 키 파일을 함께 설정하고, --base-url 또는 OPENAI_BASE_URL로 mTLS 엔드포인트를 지정해야 합니다. 개인 키는 권한을 제한한 파일에 보관하도록 안내합니다.
Hacker News 반응
- @mi_lk — Codex 대신 이 도구를 언제 써야 하나요? 다른 도구나 에이전트가 호출하도록 만든 건가요?
- @imdsm — Codex는 에이전트 실행 환경이고 OpenAI CLI는 API 래퍼입니다.
- @theanonymousone — API 래퍼라면 curl과 무엇이 다른가요?
- @mohsen1 — GitHub CLI가 curl 요청을 직접 만드는 것보다 훨씬 편한 것처럼 이런 도구도 쓸모가 있습니다.
- @throw20261022 — OpenAI 도구에 너무 깊이 의존하지 마세요. 2년도 안 돼 거의 모든 것을 폐기하고, 때로는 공식 안내도 없이 없애곤 합니다. 품질과 버그 대응도 걱정스럽습니다.
- @albert_e — 이 도구의 사용량은 월정액 구독 한도에서 차감되나요, API 크레딧에서 차감되나요? Anthropic에도 비슷한 도구가 있나요?
- @walthamstow —
claude -p를 추가 사용량으로 과금하겠다는 계획을 발표했지만 실제로는 철회했습니다.
- @walthamstow —
- @bluegatty — 회사 규모에 비해 이 도구가 무엇이고 누구에게 유용한지 설명하는 한 문장조차 부족합니다.
- @Traster — OpenAI REST API용 CLI라는 설명이면 충분합니다. REST API를 쓸 사람이 아니라면 이 도구도 필요하지 않습니다.
- @Traster — OpenAI REST API에 접근할 수 있는 사람이라면 비슷한 도구를 직접 만드는 일은 간단합니다.
- @bluegatty — 대충 작동하는 도구를 만드는 일은 쉽지만, 그렇게 만든 것을 유지하고 개선하기는 어렵습니다.