Gemini API CLI(gemini-api)는 셸 액세스 권한이 있는 AI 에이전트를 위해 빌드된 스테이트리스(Stateless) 제로 종속 항목 명령줄 클라이언트입니다(스크립트 및 CI에서 사용 가능).
그러면 코딩 에이전트가 텍스트와 미디어를 생성하고, 파일을 분석하고, Gemini 관리형 에이전트에 작업을 위임할 수 있습니다. Antigravity, Claude Code, Codex, Cursor, OpenClaw, Hermes 또는 모든 셸 환경에서 작동합니다.
모든 기능은 Interactions API에서 표준 셸 명령어로 실행됩니다. 에이전트 하위 프로세스, 터미널 또는 CI 파이프라인에서 동일한 명령어를 실행합니다.
# 1. Install on macOS or Linux
curl -fsSL https://raw.githubusercontent.com/google-gemini/gemini-api-cli/main/scripts/install.sh | bash
# 2. Set your API key
export GEMINI_API_KEY="YOUR_API_KEY"
# 3. Generate media, analyze a file, or launch a background managed agent
gemini-api image "Minimalist isometric icon of a cloud database" --out ./assets/db-icon.jpg
gemini-api analyze -i ./docs/quarterly-report.pdf "Summarize the key findings in three bullets."
gemini-api agent run "Compare WebRTC SFU architectures and cite sources" \
--agent deep-research-preview-04-2026 \
--background \
--stream=false
적절한 Gemini 도구 선택하기
에이전트 또는 스크립트가 프로젝트에 SDK 코드를 추가하지 않고 셸에서 직접 Gemini를 호출해야 하는 경우 gemini-api를 사용합니다. Gemini를 애플리케이션에 빌드할 때는 SDK와 코딩 에이전트 설정을 사용합니다.
| 도구 | 기능 | 사용 시기 |
|---|---|---|
Gemini API CLI (gemini-api) |
모든 셸에서 Gemini 모델과 관리형 에이전트를 호출합니다. | 코딩 에이전트, 셸 스크립트 또는 CI 작업에서 생성형 미디어를 생성하거나, 파일을 분석하거나, 프로젝트 종속 항목 없이 백그라운드 연구 에이전트를 실행해야 합니다. |
| Google GenAI SDK | Gemini 클라이언트 라이브러리를 Python, TypeScript, JavaScript, Go, Java 또는 C# 코드로 가져옵니다. | 애플리케이션, 백엔드 서비스 또는 실시간 Live API 세션에 Gemini 기능을 빌드하는 경우 |
| Gemini Docs MCP 및 스킬 | 코딩 에이전트에 실시간 문서 검색 및 최신 SDK 규칙을 제공합니다. | 코딩 에이전트가 Google GenAI SDK를 가져오는 애플리케이션 코드를 작성하고 있습니다. |
작동 방식
원시 REST 호출과 대화형 CLI는 코딩 에이전트에서 문제를 일으키는 경우가 많습니다. Base64 미디어는 컨텍스트 창을 채우고, 대화형 프롬프트는 하위 프로세스를 차단하며, 오래된 학습 데이터는 할루시네이션 플래그를 유발합니다.
gemini-api는 네 가지 설계 선택을 통해 상담사에게 안정성을 제공합니다.
- 오프라인 스키마 조회:
--usage를 전달하여 명령어 트리(KDL)를 출력하거나--schema를 전달하여--body요청의 JSON 스키마를 출력합니다. - 디스크의 파일,
stdout의 경로: 미디어 및 스크립트 작성 명령어는 파일을 디스크에 쓰고 출력 경로만 출력하여 바이너리 데이터를 컨텍스트에서 제외합니다. - 드라이 런 및 구조화된 출력:
--dry-run는 입력을 검증하고 사용자 인증 정보를 수정하며 HTTP 요청을 오프라인으로 미리 봅니다. 기계 가독형 출력을 위해-o json,-o toon또는--jq를 전달합니다.--agent-mode를 추가하여stderr에서 구조화된 JSON 오류를 반환하고 종료 코드를 확인하여 실패를 처리합니다.--interactive를 전달하지 않으면 명령어가 프롬프트를 표시하지 않습니다. - 기본적으로 스테이트리스(Stateless): 명령어는 숨겨진 로컬 상태를 유지하지 않습니다.
--previous-interaction-id, 업로드된files/<id>URI 또는 백그라운드 상호작용 ID를 사용하여 여러 단계의 작업을 명시적으로 연결합니다.
-o json를 사용하면 미디어 명령어가 여전히 파일을 디스크에 쓰고 메타데이터를 stdout에 출력합니다.
{
"kind": "image",
"mime_type": "image/jpeg",
"path": "/path/to/project/assets/db-icon.jpg",
"response_id": "v1_...",
"size_bytes": 2914159,
"status": "completed"
}
시작하기
CLI를 설치하고, gemini-api를 PATH에 배치하고, GEMINI_API_KEY를 설정하고, 코딩 에이전트에 사용 규칙을 추가합니다.
1. 바이너리 설치
macOS 및 Linux
curl -fsSL https://raw.githubusercontent.com/google-gemini/gemini-api-cli/main/scripts/install.sh | bash
특정 출시 버전을 설치하려면 GEMINI_VERSION를 출시 태그로 설정합니다.
curl -fsSL https://raw.githubusercontent.com/google-gemini/gemini-api-cli/main/scripts/install.sh | GEMINI_VERSION=<release-tag> bash
Windows(PowerShell)
iwr -useb https://raw.githubusercontent.com/google-gemini/gemini-api-cli/main/scripts/install.ps1 | iex
Go
go install github.com/google-gemini/gemini-api-cli/cmd/gemini-api@latest
사전 빌드된 바이너리
GitHub 출시 버전에서 macOS, Linux, Windows용 버전이 지정된 보관 파일을 다운로드하고 gemini-api를 PATH에 배치합니다. 사전 빌드된 보관 파일을 사용하여 Docker 이미지 및 CI에서 정확한 버전을 고정합니다.
2. 인증 구성 및 확인
Google AI Studio에서 API 키를 만듭니다(API 키 참조). 셸 및 에이전트의 하위 프로세스 환경에서 GEMINI_API_KEY를 설정합니다.
export GEMINI_API_KEY="YOUR_API_KEY"
로컬 워크스테이션에서 OS 키체인 (macOS 키체인, Linux Secret Service 또는 Windows 인증 관리자)에 키를 저장할 수 있습니다. --no-keyring를 전달하여 키를 ~/.config/gemini-api/config.yaml에 저장합니다.
# Save to your OS keychain (or run gemini-api configure --interactive)
gemini-api configure --api-key "YOUR_API_KEY"
# Check the active credential source, then preview a request offline
gemini-api whoami
gemini-api generate "Confirm CLI setup in one sentence." --dry-run
3. 에이전트에 요청 사항 제공하기
코딩 에이전트가 gemini-api 사용 방법을 알 수 있도록 프로젝트의 AGENTS.md, CLAUDE.md, .cursorrules 또는 시스템 프롬프트에 이 스니펫을 추가합니다.
## Gemini API CLI (`gemini-api`)
You have access to `gemini-api` through the shell. Use it to generate text or media (images, speech, music, video), analyze documents and recordings, or run and manage Gemini managed agents.
1. Run `gemini-api --help` or `gemini-api --usage` to choose a command, and `gemini-api <command> --schema` before building a `--body` JSON payload.
2. Preview unfamiliar or complex calls offline with `--dry-run -o json`.
3. For a single JSON result or `--jq` filtering on `generate` or `agent run`, pass `--stream=false -o json`.
4. To chain multi-step workflows, capture the output paths that media and transcription commands print to stdout, and the `id` values returned by `generate` or `agent run`.
그런 다음 평소와 같이 코딩 에이전트에 프롬프트를 입력합니다.
Build a landing page for our developer tool. Use Gemini to generate a hero
illustration and a 15-second welcome voiceover, and start a background Deep
Research agent to compare competing CLI onboarding flows. Wire the assets and
findings into the page.
명령어
gemini-api --help를 실행하여 모든 명령어를 나열하거나 gemini-api explore를 실행하여 대화형으로 탐색합니다.
| 그룹 | 명령어 | 기능 |
|---|---|---|
| 만들기 | image |
이미지를 생성하거나 수정하고 (-i) JPEG 파일을 작성하고 경로를 출력합니다. |
| 만들기 | tts |
24kHz 모노 WAV 음성 (화자 1명 또는 2명)을 합성하고 출력 경로를 출력합니다. |
| 만들기 | music |
음악 트랙 또는 루프를 생성하고 오디오 파일을 작성하고 경로를 출력합니다. |
| 만들기 | video |
MP4 클립을 생성하거나 수정하고 완료될 때까지 기다립니다 (--async는 즉시 ID를 반환함). |
| 만들기 | generate |
텍스트를 생성하고 stdout에 스트리밍합니다(--stream=false는 하나의 완전한 결과를 반환함). |
| 이해 | analyze |
PDF, 이미지, 오디오, 동영상, CSV, 텍스트 파일 또는 공개 YouTube URL에 관한 질문에 답변합니다. |
| 이해 | transcribe |
화자 라벨이 지정되고 타임스탬프가 지정된 스크립트 (md, text, json 또는 srt)를 작성하고 출력 경로를 출력합니다. |
| 에이전트 관리 | agent |
관리형 에이전트 (run, status, cancel, delete-interaction)를 실행하고 커스텀 에이전트 정의 (create, list, get, delete)를 관리합니다. |
| 에이전트 관리 | environments, credentials, webhooks, triggers |
관리형 에이전트의 샌드박스 환경, 저장된 사용자 인증 정보, 웹훅 전송, 예약된 실행을 구성합니다. |
| 설정 및 파일 | configure, auth, whoami |
사용자 인증 정보 및 기본값을 구성하고 활성 인증 상태를 표시합니다. |
| 설정 및 파일 | files |
Files API에서 파일을 업로드, 나열, 검사, 삭제합니다. |
| 설정 및 파일 | models |
사용 가능한 모델을 나열합니다. |
워크플로
각 명령어는 기본적으로 작업에 적합한 모델을 사용합니다. 다른 모델을 선택하려면 --model (-m)을 전달합니다. gemini-api models를 실행하여 사용 가능한 옵션을 나열합니다.
이미지 생성 및 수정
웹 또는 모바일 UI를 빌드하는 에이전트는 Nano Banana를 사용하여 자리표시자, 아이콘, 히어로 이미지를 생성할 수 있습니다. 생성된 경로를 -i로 다시 전달하여 이미지를 수정합니다.
# Generate a 16:9 image at 2K resolution (512, 1K, 2K, or 4K) and capture its path
HERO_PATH=$(gemini-api image "Friendly robot mascot in a sunlit workshop, space on left for headline" \
--aspect-ratio 16:9 \
--image-size 2K \
--out ./public/images/hero.jpg)
# Edit the generated image
gemini-api image "Add a winter scarf and soft snowfall outside the window" \
-i "$HERO_PATH" \
--out ./public/images/hero-winter.jpg
-i를 여러 번 전달하여 캐릭터 및 스타일 가이드와 같은 참고 이미지를 결합합니다.
음성 합성
gemini-api tts는 UI 신호, 접근성 미리보기, 내레이션이 포함된 둘러보기를 위해 24kHz WAV 오디오를 합성합니다. 기본 음성은 Kore입니다. --voice를 사용하여 다른 음성을 선택하세요. 화자가 두 명인 대화의 경우 프롬프트에서 각 차례에 라벨을 지정하고 화자를 음성에 매핑합니다.
gemini-api tts "Build succeeded. All integration tests passed." \
--voice Aoede \
--out ./public/audio/build-ok.wav
gemini-api tts "Alice: Welcome to the release walkthrough! Bob: Let's look at what shipped today." \
--multi-speaker "Alice=Kore,Bob=Puck" \
--out ./public/audio/release-intro.wav
음악 및 동영상
Lyria로 나만의 트랙을 작곡하고 Gemini Omni로 MP4 클립을 생성하세요.
gemini-api music "Warm ambient synth and acoustic guitar background loop, 95 BPM" \
--out ./public/audio/bg-loop.mp3
gemini-api video "A drone shot of a mountain landscape at sunrise." \
--aspect-ratio 16:9 \
--resolution 1080p \
--out ./public/video/mountain-sunrise.mp4
기본적으로 video 명령어는 생성이 완료될 때까지 기다린 후 MP4 파일을 디스크에 씁니다. --async를 전달하여 상호작용 ID를 즉시 반환한 다음 나중에 gemini-api video --resume <id> --out <path>를 실행합니다. 기존 이미지에 애니메이션을 적용하려면 -i를 전달합니다.
텍스트 생성
gemini-api generate에서 stdout로 텍스트를 스트리밍합니다.
gemini-api generate "Write a one-paragraph welcome message for new users of a note-taking app."
--stdin를 추가하여 텍스트를 프롬프트에 파이프합니다. 이전 상호작용을 계속하려면 --previous-interaction-id를 전달합니다.
문서 분석 및 스크립트 작성
analyze는 PDF, 스프레드시트, 스크린샷, 오디오 및 동영상 파일, 공개 YouTube URL에 대한 질문에 답변합니다. transcribe는 형식화된 스크립트(md, text, json 또는 srt)를 디스크에 작성합니다.
gemini-api analyze -i ./docs/product-brief.pdf "List the open questions and who owns each one." > open-questions.md
gemini-api transcribe -i ./fixtures/customer-call.mp4 --format srt --out ./fixtures/customer-call.srt
-i를 analyze에 여러 번 전달하여 전후 스크린샷과 같은 파일을 비교합니다.
gemini-api는 최대 14MB (base64 인코딩 후 20MB)의 로컬 파일을 인라인으로 전송합니다.
큰 파일의 경우 files upload --wait를 사용하여 한 번 업로드하고 반환된 files/<id> URI를 재사용합니다.
FILE_URI=$(gemini-api files upload ./recordings/all-hands.mp4 --wait)
gemini-api analyze -i "$FILE_URI" "List action items with owners and timestamps."
gemini-api transcribe -i "$FILE_URI" --format json --out ./recordings/all-hands.json
에이전트 실행 및 관리
코딩 에이전트는 다단계 조사 또는 샌드박스 처리된 작업을 Deep Research 에이전트와 같은 Gemini 관리형 에이전트에 위임할 수 있습니다. 스트림을 열어 두는 대신 상호작용 ID를 즉시 가져오려면 --background --stream=false를 전달합니다.
# Launch a Deep Research job in the background and capture its interaction ID
RESEARCH_ID=$(gemini-api agent run "Compare open-source vector index benchmarks and cite primary papers." \
--agent deep-research-preview-04-2026 \
--background \
--stream=false \
--jq '.id')
# Check status or fetch the finished result while continuing other work
gemini-api agent status "$RESEARCH_ID" -o json
gemini-api agent cancel <id>를 실행하여 실행 중인 작업을 중지합니다. agent run를 사용하여 원격 샌드박스에서 Antigravity 에이전트를 실행하거나 agent create, list, get, delete를 사용하여 커스텀 에이전트를 관리할 수도 있습니다. 에이전트 샌드박스를 구성하려면 환경을 참고하세요.
커스텀 요청 본문
전용 플래그가 없는 옵션의 경우 --body (인라인 또는 @file.json)를 사용하여 원시 Interactions API JSON 페이로드를 전달합니다. --body를 전달하여 response_format 스키마, 함수 호출 도구, generation_config 또는 "store": false를 설정합니다. 먼저 gemini-api <command> --schema를 실행하여 유효한 필드를 확인합니다.
# Inspect the JSON Schema for the request body
gemini-api generate --schema > generate-schema.json
# Return schema-constrained JSON and skip storing the interaction
cat logs.txt | gemini-api generate "Extract every error message from these logs." \
--stdin \
--body '{
"response_format": {
"type": "text",
"mime_type": "application/json",
"schema": {
"type": "object",
"properties": {"errors": {"type": "array", "items": {"type": "string"}}},
"required": ["errors"]
}
},
"store": false
}'
--body는 명령어 플래그와 병합됩니다. 둘 다 동일한 키를 설정하면 명령어가 종료 코드 2과 함께 실패하므로 충돌하는 입력이 빠르게 실패합니다.
종료 코드
모든 명령어는 스크립트와 에이전트가 오류 텍스트를 파싱하지 않고도 실패를 처리할 수 있도록 유형이 지정된 종료 코드를 반환합니다. 예를 들어 3은 인증 문제를 나타내고 2은 잘못된 명령어 문법을 나타냅니다.
| 코드 | 의미 |
|---|---|
0 |
명령어가 성공했습니다. |
1 |
네트워크 오류, 비율 제한, 백그라운드 작업 실패와 같은 런타임 또는 API 오류 |
2 |
알 수 없는 플래그, 누락된 입력, 중복된 --body 키와 같은 사용 또는 검증 오류입니다. |
3 |
API 키 또는 토큰이 누락되었거나 잘못된 경우와 같은 인증 또는 승인 실패 |
gemini-api --help-global를 실행하여 모든 명령어(인증, 출력, 네트워크, 진단)에서 공유하는 전역 플래그를 나열합니다.
제한사항
- 스트리밍 명령어 (
generate및agent run)를-o json또는--jq와 결합하여 단일 JSON 응답 객체를 반환하려면--stream=false가 필요합니다. - 인라인
-i파일 입력은 원시 파일 데이터 14MB (base64 인코딩을 포함한 요청 페이로드 20MB)로 제한됩니다.gemini-api files upload를 사용하여 대용량 파일을 업로드합니다. Files API는 업로드된 파일을 48시간 후에 삭제합니다. gemini-api는 양방향 WebSocket이 아닌 표준 HTTP 요청, SSE 스트리밍, 비동기 폴링을 지원합니다. 실시간 음성 및 동영상 스트리밍의 경우 Google GenAI SDK와 함께 Live API를 사용합니다.