Environment Variables
Jawcode reads environment variables at startup to configure providers,
directory layout, model selection, and tool behavior. Variables prefixed
JWC_ are the canonical names; legacy GJC_ and
PI_ aliases are accepted for backward compatibility but
should not be used in new setups.
Core Provider Keys
At least one provider key is required. Jawcode auto-discovers which
providers are available based on which keys are set.
| Variable | Description | Default |
ANTHROPIC_API_KEY |
Anthropic Claude models (Sonnet, Opus, Haiku). |
none |
ANTHROPIC_OAUTH_TOKEN |
Anthropic OAuth token. Takes precedence over ANTHROPIC_API_KEY. |
none |
OPENAI_API_KEY |
OpenAI GPT / o-series models. |
none |
GEMINI_API_KEY |
Google Gemini models. |
none |
GITHUB_TOKEN |
GitHub Copilot models. Also accepted: GH_TOKEN,
COPILOT_GITHUB_TOKEN. |
none |
Additional LLM Providers
| Variable | Provider |
AZURE_OPENAI_API_KEY | Azure OpenAI |
GROQ_API_KEY | Groq |
CEREBRAS_API_KEY | Cerebras |
XAI_API_KEY | xAI Grok |
OPENROUTER_API_KEY | OpenRouter (aggregated) |
KILO_API_KEY | Kilo Gateway |
MISTRAL_API_KEY | Mistral |
ZAI_API_KEY | z.ai / ZhipuAI (GLM) |
MINIMAX_API_KEY | MiniMax |
OPENCODE_API_KEY | OpenCode Zen / Go |
CURSOR_ACCESS_TOKEN | Cursor AI |
AI_GATEWAY_API_KEY | Vercel AI Gateway |
Cloud Providers
| Variable | Description | Default |
AWS_PROFILE |
AWS Bedrock. Also accepts AWS_ACCESS_KEY_ID +
AWS_SECRET_ACCESS_KEY. |
none |
GOOGLE_CLOUD_PROJECT |
Google Vertex AI project ID. Requires GOOGLE_CLOUD_LOCATION. |
none |
GOOGLE_APPLICATION_CREDENTIALS |
Service account JSON path for Vertex AI. |
none |
Anthropic Foundry / mTLS
| Variable | Description |
CLAUDE_CODE_USE_FOUNDRY |
Enable Anthropic Foundry mode (Foundry endpoint + mTLS). |
FOUNDRY_BASE_URL |
Foundry base URL, e.g. https://<foundry-host>. |
ANTHROPIC_FOUNDRY_API_KEY |
Bearer token for Foundry mode. |
ANTHROPIC_CUSTOM_HEADERS |
Extra Foundry headers, e.g. "user-id: USERNAME". |
CLAUDE_CODE_CLIENT_CERT |
Client certificate PEM path or inline PEM for mTLS. |
CLAUDE_CODE_CLIENT_KEY |
Client private key PEM path or inline PEM for mTLS. |
NODE_EXTRA_CA_CERTS |
CA bundle path (or inline PEM) for server certificate validation. |
Search and Tool Providers
| Variable | Description |
EXA_API_KEY | Exa web search |
BRAVE_API_KEY | Brave web search |
PERPLEXITY_API_KEY | Perplexity web search (API key) |
PERPLEXITY_COOKIES | Perplexity web search (session cookie) |
TAVILY_API_KEY | Tavily web search |
ANTHROPIC_SEARCH_API_KEY | Anthropic search provider |
SEARXNG_ENDPOINT | Self-hosted SearXNG instance URL |
SEARXNG_TOKEN | SearXNG bearer auth token |
SEARXNG_BASIC_USERNAME | SearXNG HTTP Basic auth username |
SEARXNG_BASIC_PASSWORD | SearXNG HTTP Basic auth password |
SMITHERY_API_KEY | Smithery MCP marketplace API key |
Directory and Session Layout
Jawcode stores configuration, sessions, and caches under ~/.jwc/
by default. On Linux, XDG base directories are honored when set.
| Variable | Description | Default |
JWC_CONFIG_DIR |
Config directory name relative to home. Legacy aliases:
GJC_CONFIG_DIR, PI_CONFIG_DIR. |
.jwc |
JWC_CODING_AGENT_DIR |
Full path to agent session storage. Legacy: GJC_CODING_AGENT_DIR. |
~/.jwc/agent |
JWC_SESSION_ID |
Override the auto-generated session ID. Legacy: GJC_SESSION_ID. |
auto-generated |
JWC_PACKAGE_VERSION |
Override the version string shown by the CLI. |
from package.json |
JWC_PACKAGE_DIR |
Override package directory. Useful for Nix/Guix store paths. |
auto-detected |
XDG Base Directories (Linux)
When running on Linux, Jawcode maps its storage to XDG locations:
| Variable | Maps to | Default |
XDG_DATA_HOME |
Sessions, blobs, worktrees, stats |
~/.local/share |
XDG_STATE_HOME |
Logs, crash logs, terminal sessions |
~/.local/state |
XDG_CACHE_HOME |
Natives, GPU cache, Puppeteer data |
~/.cache |
Model Selection Overrides
| Variable | Description | CLI equivalent |
JWC_SMOL_MODEL |
Override the fast/small model for lightweight tasks. |
--smol |
JWC_SLOW_MODEL |
Override the slow/reasoning model for deep analysis. |
--slow |
JWC_PLAN_MODEL |
Override the planning model for orchestration. |
--plan |
Behavior Flags
| Variable | Description | Default |
JWC_BRAND_NAME |
Override display name shown in the TUI. Legacy: GJC_BRAND_NAME. |
jwc |
JWC_NO_PTY |
Disable PTY-based interactive bash execution. |
unset (PTY enabled) |
JWC_COMMIT_LANE |
Enable or disable the commit lane. Set to 0 or
false to disable. |
true |
JWC_LAUNCH_POLICY |
Launch policy for --tmux startup: tmux
or direct. |
tmux |
JWC_TMUX_SESSION |
Explicit tmux session name for --tmux startup. |
auto-generated |
Browser / Puppeteer
| Variable | Description |
PUPPETEER_EXECUTABLE_PATH |
Path to a Chrome/Chromium binary. Auto-detected if unset. |
PUPPETEER_PROXY |
HTTP proxy for browser traffic, e.g. http://127.0.0.1:8080. |
PUPPETEER_PROXY_BYPASS_LOOPBACK |
Set to true to route localhost traffic through the proxy. |
PUPPETEER_PROXY_IGNORE_CERT_ERRORS |
Set to true to ignore certificate errors (insecure). |
GitHub Integration
| Variable | Description |
GH_TOKEN / GITHUB_TOKEN |
Personal access token for GitHub API, PR creation, issue reads. |
GH_HOST |
GitHub Enterprise host, e.g. github.mycompany.com.
Default: github.com. |
GH_CONFIG_DIR |
Override the gh CLI config directory for auth token discovery. |
Example Setup
# ~/.bashrc or ~/.zshrc
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..."
export GEMINI_API_KEY="AIza..."
# Optional: point config to a custom location
export JWC_CONFIG_DIR=".my-jwc"
# Optional: override model selection
export JWC_SMOL_MODEL="anthropic/claude-sonnet-4-20250514"
export JWC_SLOW_MODEL="anthropic/claude-sonnet-4-20250514:high"
# Optional: self-hosted search
export SEARXNG_ENDPOINT="http://localhost:8888"
Run jwc --list-models to verify which providers are active
after setting your keys.