a1a4824cd7
- Added comprehensive environment variables documentation including API keys for 11 new LLM providers (Groq, Cerebras, xAI, OpenRouter, Mistral, z.ai, MiniMax, OpenCode, Cursor, Vercel AI Gateway, Perplexity) and cloud provider configuration. - Expanded CLI help text with detailed API keys section documenting all supported LLM providers, cloud providers, search services, and model override configuration variables. - Fixed redundant fallback check in porting guide example by removing duplicate `Bun.env.HOME` reference.
258 lines
9.9 KiB
Markdown
258 lines
9.9 KiB
Markdown
# Environment Variables Reference
|
|
|
|
This document lists all environment variables used by the coding agent.
|
|
|
|
## API Keys
|
|
|
|
### Multi-Provider Support
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `OPENAI_API_KEY` | OpenAI API key for GPT models | - |
|
|
| `ANTHROPIC_API_KEY` | Anthropic API key for Claude models | - |
|
|
| `ANTHROPIC_OAUTH_TOKEN` | Anthropic OAuth token (takes precedence over `ANTHROPIC_API_KEY`) | - |
|
|
| `GOOGLE_API_KEY` | Google Gemini API key | - |
|
|
| `COPILOT_GITHUB_TOKEN` | GitHub Copilot personal access token | `$GH_TOKEN` or `$GITHUB_TOKEN` |
|
|
| `GH_TOKEN` | GitHub CLI token (fallback for Copilot) | - |
|
|
| `GITHUB_TOKEN` | GitHub token (fallback for Copilot and API access) | - |
|
|
| `EXA_API_KEY` | Exa search API key | - |
|
|
| `GROQ_API_KEY` | Groq API key for Llama and other models | - |
|
|
| `CEREBRAS_API_KEY` | Cerebras API key | - |
|
|
| `XAI_API_KEY` | xAI API key for Grok models | - |
|
|
| `OPENROUTER_API_KEY` | OpenRouter aggregated models API key | - |
|
|
| `MISTRAL_API_KEY` | Mistral AI API key | - |
|
|
| `ZAI_API_KEY` | z.ai API key (ZhipuAI/GLM models) | - |
|
|
| `MINIMAX_API_KEY` | MiniMax API key | - |
|
|
| `OPENCODE_API_KEY` | OpenCode API key | - |
|
|
| `CURSOR_ACCESS_TOKEN` | Cursor AI access token | - |
|
|
| `AI_GATEWAY_API_KEY` | Vercel AI Gateway API key | - |
|
|
| `PERPLEXITY_API_KEY` | Perplexity search API key | - |
|
|
|
|
### Provider-Specific Configuration
|
|
|
|
#### AWS Bedrock
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `AWS_REGION` | AWS region for Bedrock | `$AWS_DEFAULT_REGION` or `us-east-1` |
|
|
| `AWS_DEFAULT_REGION` | AWS default region | - |
|
|
| `AWS_PROFILE` | AWS CLI profile name | - |
|
|
| `AWS_ACCESS_KEY_ID` | AWS access key ID | - |
|
|
| `AWS_SECRET_ACCESS_KEY` | AWS secret access key | - |
|
|
| `AWS_BEARER_TOKEN_BEDROCK` | AWS bearer token for Bedrock | - |
|
|
| `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` | ECS container credentials URI | - |
|
|
| `AWS_CONTAINER_CREDENTIALS_FULL_URI` | ECS container credentials full URI | - |
|
|
| `AWS_WEB_IDENTITY_TOKEN_FILE` | Web identity token file path | - |
|
|
| `AWS_ROLE_ARN` | IAM role ARN for web identity | - |
|
|
|
|
#### Azure OpenAI
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `AZURE_OPENAI_API_KEY` | Azure OpenAI API key (required) | - |
|
|
| `AZURE_OPENAI_API_VERSION` | Azure OpenAI API version | `2024-10-01-preview` |
|
|
| `AZURE_OPENAI_BASE_URL` | Azure OpenAI base URL | Constructed from resource name |
|
|
| `AZURE_OPENAI_RESOURCE_NAME` | Azure OpenAI resource name | - |
|
|
| `AZURE_OPENAI_DEPLOYMENT_NAME_MAP` | JSON map of model IDs to deployment names | `{}` |
|
|
|
|
#### Google Cloud (Vertex AI)
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `GOOGLE_CLOUD_PROJECT` | Google Cloud project ID (required for Vertex AI) | `$GCLOUD_PROJECT` |
|
|
| `GCLOUD_PROJECT` | Google Cloud project ID (alternative) | - |
|
|
| `GOOGLE_CLOUD_PROJECT_ID` | Google Cloud project ID (used during OAuth discovery) | `$GOOGLE_CLOUD_PROJECT` |
|
|
| `GOOGLE_CLOUD_LOCATION` | Google Cloud location (required for Vertex AI) | - |
|
|
| `GOOGLE_APPLICATION_CREDENTIALS` | Path to Google service account JSON | - |
|
|
|
|
#### Anthropic Search & Custom Base URLs
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `ANTHROPIC_BASE_URL` | Custom Anthropic API base URL | - |
|
|
| `ANTHROPIC_SEARCH_API_KEY` | API key for Anthropic search (separate from main API) | - |
|
|
| `ANTHROPIC_SEARCH_BASE_URL` | Custom base URL for Anthropic search | - |
|
|
| `ANTHROPIC_SEARCH_MODEL` | Model to use for web search | `claude-sonnet-4` |
|
|
|
|
#### Kimi
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `KIMI_CODE_BASE_URL` | Kimi Code API base URL | `https://kimi.moonshot.cn` |
|
|
| `KIMI_CODE_OAUTH_HOST` | Kimi Code OAuth host | `$KIMI_OAUTH_HOST` or `https://kimi.moonshot.cn` |
|
|
| `KIMI_OAUTH_HOST` | Kimi OAuth host (fallback) | - |
|
|
|
|
## Model Configuration
|
|
|
|
### Model Role Overrides
|
|
|
|
Override model roles via environment variables (ephemeral, not persisted):
|
|
|
|
| Variable | Description | CLI Flag |
|
|
|----------|-------------|----------|
|
|
| `PI_SMOL_MODEL` | Fast model for lightweight tasks | `--smol` |
|
|
| `PI_SLOW_MODEL` | Reasoning model for thorough analysis | `--slow` |
|
|
| `PI_PLAN_MODEL` | Model for architectural planning | `--plan` |
|
|
|
|
## Agent Configuration
|
|
|
|
### Core Settings
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `PI_CODING_AGENT_DIR` | Directory for agent data (sessions, auth, cache) | `~/.omp/agent` |
|
|
| `PI_SUBPROCESS_CMD` | Custom command for spawning subagents | Auto-detected |
|
|
| `PI_NO_TITLE` | Disable automatic session title generation | `false` |
|
|
| `NULL_PROMPT` | Use empty system prompt (testing) | `false` |
|
|
| `PI_BLOCKED_AGENT` | Override agent type in task tool | - |
|
|
|
|
### Caching
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `PI_CACHE_RETENTION` | Prompt cache retention (`long` = 24h for OpenAI) | - |
|
|
|
|
## Python Configuration
|
|
|
|
### Python Kernel
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `VIRTUAL_ENV` | Python virtual environment path | Auto-detected (`.venv` or `venv`) |
|
|
| `PI_PY` | Python tool mode (`per-session`, `per-call`, `off`) | `per-session` |
|
|
| `PI_PYTHON_SKIP_CHECK` | Skip Python availability check (testing) | `false` |
|
|
|
|
### External Python Gateway
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `PI_PYTHON_GATEWAY_URL` | External Python gateway URL | - |
|
|
| `PI_PYTHON_GATEWAY_TOKEN` | Authentication token for gateway | - |
|
|
|
|
### Debugging
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `PI_PYTHON_IPC_TRACE` | Trace Python IPC messages (`1` = enabled) | `false` |
|
|
|
|
## Task & Subagent Configuration
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `PI_TASK_MAX_OUTPUT_BYTES` | Maximum output bytes per subagent | `500000` |
|
|
| `PI_TASK_MAX_OUTPUT_LINES` | Maximum output lines per subagent | `5000` |
|
|
|
|
## TUI & Terminal Configuration
|
|
|
|
### Terminal Capabilities
|
|
|
|
| Variable | Description | Auto-Detected |
|
|
|----------|-------------|---------------|
|
|
| `COLORTERM` | Terminal color support (`truecolor`, `24bit`) | Yes |
|
|
| `COLORFGBG` | Terminal foreground/background colors | Yes |
|
|
| `TERM` | Terminal type | Yes |
|
|
| `TERM_PROGRAM` | Terminal program name | Yes |
|
|
| `TERM_PROGRAM_VERSION` | Terminal program version | Yes |
|
|
| `TERMINAL_EMULATOR` | Terminal emulator name | Yes |
|
|
| `WT_SESSION` | Windows Terminal session ID | Yes |
|
|
|
|
### TUI Behavior
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `PI_NOTIFICATIONS` | Desktop notifications (`off`, `0`, `false` = disabled) | Enabled |
|
|
| `PI_TUI_WRITE_LOG` | Log all TUI write operations to file | - |
|
|
| `PI_HARDWARE_CURSOR` | Show hardware cursor (`1` = enabled) | `false` |
|
|
|
|
## Bash & Shell Configuration
|
|
|
|
### Shell Detection
|
|
|
|
| Variable | Description | Auto-Detected |
|
|
|----------|-------------|---------------|
|
|
| `SHELL` | User's default shell | Yes (Unix) |
|
|
| `ComSpec` | Command processor | Yes (Windows) |
|
|
|
|
### Editor
|
|
|
|
| Variable | Description | Fallback |
|
|
|----------|-------------|----------|
|
|
| `VISUAL` | Visual editor for external editing (Ctrl+G) | `$EDITOR` |
|
|
| `EDITOR` | Default text editor | - |
|
|
|
|
### Bash Tool Behavior
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `PI_BASH_NO_CI` | Don't set `CI=true` in bash environment | `$CLAUDE_BASH_NO_CI` |
|
|
| `CLAUDE_BASH_NO_CI` | Legacy name for `PI_BASH_NO_CI` | - |
|
|
| `PI_BASH_NO_LOGIN` | Don't use login shell for bash | `$CLAUDE_BASH_NO_LOGIN` |
|
|
| `CLAUDE_BASH_NO_LOGIN` | Legacy name for `PI_BASH_NO_LOGIN` | - |
|
|
| `PI_SHELL_PREFIX` | Prefix for bash commands | `$CLAUDE_CODE_SHELL_PREFIX` |
|
|
| `CLAUDE_CODE_SHELL_PREFIX` | Legacy name for `PI_SHELL_PREFIX` | - |
|
|
|
|
## Desktop Environment Detection
|
|
|
|
These are auto-detected for system prompt context:
|
|
|
|
| Variable | Purpose |
|
|
|----------|---------|
|
|
| `KDE_FULL_SESSION` | Detect KDE desktop |
|
|
| `XDG_CURRENT_DESKTOP` | Current desktop environment |
|
|
| `DESKTOP_SESSION` | Desktop session name |
|
|
| `XDG_SESSION_DESKTOP` | XDG desktop session |
|
|
| `GDMSESSION` | GDM session type |
|
|
| `WINDOWMANAGER` | Window manager name |
|
|
| `XDG_CONFIG_HOME` | User config directory |
|
|
| `APPDATA` | Windows app data directory |
|
|
| `HOME` | User home directory |
|
|
|
|
## LSP Configuration
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `PI_DISABLE_LSPMUX` | Disable lspmux integration (`1` = disabled) | `false` |
|
|
|
|
## Debugging & Development
|
|
|
|
### General Debugging
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `DEBUG` | Enable debug logging | `false` |
|
|
| `PI_DEV` | Development mode (verbose native addon loading) | `false` |
|
|
| `PI_TIMING` | Log tool factory and operation timings (`1` = enabled) | `false` |
|
|
|
|
### Startup Debugging
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `PI_DEBUG_STARTUP` | Print startup stage timings to stderr | `false` |
|
|
|
|
### Provider-Specific Debugging
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `DEBUG_CURSOR` | Cursor provider debug logging (`1` = basic, `2` or `verbose` = detailed) | `false` |
|
|
| `DEBUG_CURSOR_LOG` | Path to write Cursor debug log file | - |
|
|
| `PI_CODEX_DEBUG` | OpenAI Codex debug logging (`1` or `true` = enabled) | `false` |
|
|
|
|
## Commit Message Generation
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `PI_COMMIT_TEST_FALLBACK` | Force fallback commit generation (testing) | `false` |
|
|
| `PI_COMMIT_NO_FALLBACK` | Disable fallback commit generation | `false` |
|
|
| `PI_COMMIT_MAP_REDUCE` | Enable/disable map-reduce for large diffs (`false` = disabled) | Enabled |
|
|
|
|
## Testing & CI
|
|
|
|
These are auto-detected but documented for completeness:
|
|
|
|
| Variable | Description |
|
|
|----------|-------------|
|
|
| `BUN_ENV` | Bun environment (`test` skips certain checks) |
|
|
| `NODE_ENV` | Node environment (`test` skips certain checks) |
|
|
| `E2E` | Enable end-to-end tests (`1` or `true`) |
|
|
| `PI_NO_LOCAL_LLM` | Skip local LLM tests (Ollama, LM Studio) |
|