Skip to content

AI provider settings

Every setting below is read once at startup and requires a restart to change. Built-in defaults are overridden by nonempty environment values. For the first Pitot alpha, unset PITOT_ variables accept FANOUT_ equivalents with a names-only deprecation warning. Explicitly empty primary variables block fallback. Unknown PITOT_ names fail startup; platform-injected service names are tolerated. Vendor credentials and endpoints keep the vendor’s documented names.

Pitot also recognizes ANTHROPIC_API_KEY, ANTHROPIC_BASE_URL, OPENAI_API_KEY, and OPENAI_BASE_URL. Other vendor/tool variables are ignored; only the explicitly selected AI provider’s key and endpoint are used.

Environment variableTypeDefault
ANTHROPIC_API_KEY or ANTHROPIC_API_KEY_FILEstring · secret—
ANTHROPIC_BASE_URLstring—
OPENAI_API_KEY or OPENAI_API_KEY_FILEstring · secret—
OPENAI_BASE_URLstring—
PITOT_AI_MODELstring—
PITOT_AI_PROVIDERstring—

Required when PITOT_AI_PROVIDER is anthropic.

Defaults to https://api.anthropic.com. Pitot appends /v1/messages, preserving any gateway path prefix. Use an HTTP(S) base URL without embedded credentials, a query, or a fragment.

Required when PITOT_AI_PROVIDER is openai.

Defaults to https://api.openai.com/v1. Pitot appends /responses, preserving the API version and any gateway path prefix. Use an HTTP(S) base URL without embedded credentials, a query, or a fragment.

Overrides the provider’s default: claude-sonnet-5-5 for Anthropic and gpt-6.1-sol for OpenAI. The OpenAI provider expects a reasoning model supporting reasoning.encrypted_content for stateless Responses replay. A 400 rejecting encrypted content is reported as a server-side configuration error; choose a compatible reasoning model with PITOT_AI_MODEL.

Enables chat by selecting exactly anthropic or openai. Empty disables chat.