OpenCode CLI Skill
Use OpenCode CLI for headless LLM automation via subprocess invocation.
Table of Contents
- •Quick Start
- •Overview
- •Basic Usage
- •Model Format
- •Configuration
- •Reference Guides
- •Subprocess Invocation
- •Limitations vs Claude CLI
- •Environment Variables
- •Verify Setup
- •Best Practices
Quick Start
- •Install OpenCode CLI (see OpenCode documentation)
- •Set environment variables for the provider:
bash
export ANTHROPIC_API_KEY="sk-..." # For Anthropic # OR export GOOGLE_CLOUD_PROJECT="project-id" # For Vertex AI
- •Verify installation:
bash
opencode --version
- •Test with a simple prompt:
bash
opencode run --model google/gemini-2.5-pro "Hello, world"
Overview
OpenCode is a Go-based CLI that provides access to 75+ LLM providers through a unified interface. This skill focuses on the headless run command for automation and subprocess integration.
Basic Usage
Command Format
opencode run --model <provider/model> "<prompt>"
Key points:
- •Use
runsubcommand for headless (non-interactive) mode - •Model format is always
provider/model - •Prompt is a positional argument at the end
- •No stdin support (unlike Claude CLI's
-pflag)
Examples
# Using Anthropic Claude opencode run --model anthropic/claude-sonnet-4-20250514 "Explain this code" # Using Google Gemini opencode run --model google/gemini-2.5-pro "Review this architecture" # Using free Grok tier opencode run --model opencode/grok-code "Generate tests for this function"
Model Format
Models use the pattern provider/model-name:
| Provider | Example Model |
|---|---|
anthropic | anthropic/claude-sonnet-4-20250514 |
google | google/gemini-2.5-pro |
opencode | opencode/grok-code (free tier) |
openai | openai/gpt-4o |
google-vertex | google-vertex/gemini-2.5-pro |
Configuration
Config File Locations
- •Environment variable:
OPENCODE_CONFIGpath - •Project-level:
opencode.jsonin project root - •Global:
~/.config/opencode/opencode.json
Configs are merged (project overrides global).
Basic Configuration
{
"$schema": "https://opencode.ai/config.json",
"model": "anthropic/claude-sonnet-4-5",
"small_model": "anthropic/claude-haiku-4-5"
}
Authentication
Credentials stored in ~/.local/share/opencode/auth.json after running /connect in TUI mode, or configure via environment variables.
Reference Guides
Load the appropriate reference for detailed configuration:
| Task | Reference File |
|---|---|
| Setting up Google Vertex AI | vertex-ai-setup.md |
| Configuring providers (Anthropic, OpenAI, etc.) | provider-config.md |
| Cloud providers (Deepseek, Kimi, Mistral, etc.) | cloud-providers.md |
| Local models (Ollama, LM Studio) | local-models.md |
| MCP server configuration | mcp-servers.md |
| Subprocess integration patterns | integration-patterns.md |
Vertex AI Setup
See vertex-ai-setup.md for Vertex AI configuration including environment variables and service account setup.
Subprocess Invocation
Basic Pattern
import subprocess
result = subprocess.run(
["opencode", "run", "--model", "google/gemini-2.5-pro", prompt],
capture_output=True,
text=True,
timeout=600
)
output = result.stdout
Key Considerations
- •Stagger parallel calls - Add 5-10 second delays between parallel invocations to avoid cache race conditions
- •Implement fallback - Consider Claude CLI as fallback if OpenCode fails
- •Health check - Use
opencode --versionto verify availability - •Timeout handling - Set appropriate timeouts (default 600s for long generations)
See integration-patterns.md for complete patterns.
Limitations vs Claude CLI
| Feature | OpenCode | Claude CLI |
|---|---|---|
| Headless mode | run subcommand | -p flag with stdin |
| Hooks/settings | Not supported | --settings flag |
| Directory access | Not supported | --add-dir flag |
| Tool pre-approval | Not supported | --allowedTools flag |
| Prompt input | Positional argument | Stdin or -p |
Environment Variables
| Variable | Purpose |
|---|---|
OPENCODE_CONFIG | Custom config file path |
GOOGLE_CLOUD_PROJECT | GCP project for Vertex AI |
GOOGLE_APPLICATION_CREDENTIALS | Service account JSON path |
VERTEX_LOCATION | Vertex AI region |
Verify Setup
Complete this checklist to verify a working installation:
- •Check version - Confirm CLI is installed:
bash
opencode --version
- •Test default model - Verify basic connectivity:
bash
opencode run --model google/gemini-2.5-pro "Say hello"
- •Check configuration - Review active config:
bash
cat ~/.config/opencode/opencode.json
- •Verify MCP servers (if configured) - Test MCP connectivity by running a command that uses MCP tools
Best Practices
- •Use project-level config - Create
opencode.jsonfor project-specific settings - •Prefer environment variables - Use
{env:VAR_NAME}syntax in config for secrets - •Implement retries - Network failures are common; implement retry logic
- •Log output - Capture both stdout and stderr for debugging
- •Stagger parallel calls - Prevent cache race conditions with delays