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.

VariableDescriptionDefault
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

VariableProvider
AZURE_OPENAI_API_KEYAzure OpenAI
GROQ_API_KEYGroq
CEREBRAS_API_KEYCerebras
XAI_API_KEYxAI Grok
OPENROUTER_API_KEYOpenRouter (aggregated)
KILO_API_KEYKilo Gateway
MISTRAL_API_KEYMistral
ZAI_API_KEYz.ai / ZhipuAI (GLM)
MINIMAX_API_KEYMiniMax
OPENCODE_API_KEYOpenCode Zen / Go
CURSOR_ACCESS_TOKENCursor AI
AI_GATEWAY_API_KEYVercel AI Gateway

Cloud Providers

VariableDescriptionDefault
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

VariableDescription
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

VariableDescription
EXA_API_KEYExa web search
BRAVE_API_KEYBrave web search
PERPLEXITY_API_KEYPerplexity web search (API key)
PERPLEXITY_COOKIESPerplexity web search (session cookie)
TAVILY_API_KEYTavily web search
ANTHROPIC_SEARCH_API_KEYAnthropic search provider
SEARXNG_ENDPOINTSelf-hosted SearXNG instance URL
SEARXNG_TOKENSearXNG bearer auth token
SEARXNG_BASIC_USERNAMESearXNG HTTP Basic auth username
SEARXNG_BASIC_PASSWORDSearXNG HTTP Basic auth password
SMITHERY_API_KEYSmithery 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.

VariableDescriptionDefault
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:

VariableMaps toDefault
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

VariableDescriptionCLI 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

VariableDescriptionDefault
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

VariableDescription
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

VariableDescription
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.