Configuration reference
providers key in ~/.flowly/config.json. You normally never edit this by hand β /provider, /model, and flowly setup byok write it for you β but here's the full shape.The providers block
Keys are camelCase on disk. A representative config:
{
"providers": {
"active": "openrouter", // explicit default ("" = use the cascade)
"flowly": { // Flowly Cloud (hosted credits)
"enabled": true, // on by default; auth comes from your account
"apiBase": "https://useflowlyapp.com/api/v1"
},
"openrouter": { // BYOK slots: apiKey (+ optional apiBase)
"apiKey": "sk-or-...",
"apiBase": "https://openrouter.ai/api/v1",
"fallbackKeys": []
},
"anthropic": { "apiKey": "" },
"openai": { "apiKey": "" },
"xai": { "apiKey": "", "apiBase": "https://api.x.ai/v1" },
"gemini": { "apiKey": "" },
"groq": { "apiKey": "" },
"zhipu": { "apiKey": "" },
"vllm": { "apiKey": "", "apiBase": "" }
},
"agents": {
"defaults": { "model": "moonshotai/kimi-k2.5" } // the active model id
}
}Field reference
providers.activeβ the explicit default provider slug. When set and usable it overrides the cascade. Empty string means βuse the priority cascade.β How the cascade works.providers.flowly.enabledβ turn Flowly Cloud on or off. There's noapiKeyhere; auth comes from your signed-in account.providers.<name>.apiKeyβ the BYOK API key for that provider.providers.<name>.apiBaseβ override the endpoint URL. Needed forvllmand custom / self-hosted endpoints; optional elsewhere.providers.<name>.fallbackKeysβ extra keys to rotate through when the primary one is rate-limited or failing.agents.defaults.modelβ the model id used for the next request. Short names (sonnet,opus) or full ids both work.
Selecting the model
The active model is a single value: agents.defaults.model. The easiest way to set it is /model, which writes a valid id for the active provider. Set by hand only if you know the exact id the provider expects:
{ "agents": { "defaults": { "model": "anthropic/claude-sonnet-4.6" } } }/model rather than carrying the old id over.Key rotation & fallbacks
For BYOK providers, fallbackKeys lets Flowly ride out rate limits and dead keys without dropping a request. The primaryapiKey is tried first; on failure Flowly moves to the next key in the list, and a failed key enters a short cooldown before it's retried.
{
"providers": {
"openrouter": {
"apiKey": "sk-or-primary",
"fallbackKeys": ["sk-or-backup-1", "sk-or-backup-2"]
}
}
}Custom endpoints (apiBase)
Set apiBase to route a provider through a custom URL β a self-hosted model server, an OpenAI-compatible proxy, or a regional gateway. The vllm slot exists specifically for this:
{
"providers": {
"active": "vllm",
"vllm": { "apiKey": "EMPTY", "apiBase": "http://localhost:8000/v1" }
},
"agents": { "defaults": { "model": "your-served-model-id" } }
}Where keys are stored
Provider API keys live in ~/.flowly/config.json on your own machine. Treat that file as a secret β it isn't synced anywhere by Flowly. Flowly Cloud needs no key at all; its auth is your signed-in account, stored separately in your credentials.
/whoami in the terminal chat shows the signed-in account and the resolved active provider β the quickest way to confirm your configuration is doing what you expect.