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) |