openai provider. This covers the standard OpenAI API as well as any OpenAI-compatible proxy or self-hosted endpoint (LiteLLM, a custom gateway, etc.) that speaks the Chat Completions API. Set three environment variables and you’re running.
Quick start
~/.cynative/config.yaml file is required.
YAML configuration
Use YAML when you need fields the environment-variable surface doesn’t cover, such asextra_headers, openai_config, or keys[] for multi-key load balancing.
openai_config fields
openai_config mirrors Bifrost’s schemas.OpenAIConfig directly. The most commonly used field:
For the complete set of
openai_config fields, see Bifrost’s schemas.OpenAIConfig.
Authentication
Cynative resolves the API key in this order:llm.api_keyin YAML (or theCYNATIVE_LLM_API_KEYenv var) — recommended for the simple case.llm.keys[]in YAML — for explicit Bifrost-shaped key configuration (multi-key load balancing, model filters, per-key weights, etc.).OPENAI_API_KEY— the canonical fallback, used when neitherllm.api_keynorllm.keys[]is set.
llm.api_key and llm.keys[] is rejected at startup with a clear error — pick one form.
Get an API key from platform.openai.com/api-keys.
Environment variable reference
o-series reasoning models
Cynative’sreasoning_effort and reasoning_max_tokens fields work with OpenAI’s o-series models (o1, o3, o4-mini, etc.). Set reasoning_effort to the desired level; Cynative maps it to OpenAI’s native effort knob:
reasoning_max_tokens is converted to an estimated effort level for OpenAI-style providers (it is not forwarded as a raw token count).
OpenAI-compatible endpoints and proxies
Many proxies and gateways speak the OpenAI Chat Completions API: LiteLLM, OpenRouter, vLLM with--api-key, custom gateways, etc. Point Cynative at them by overriding network_config.base_url:

