-
Notifications
You must be signed in to change notification settings - Fork 0
Providers
Phi Trần tuấn edited this page Jun 30, 2026
·
1 revision
Providers — Title: Providers
# Providers
12 providers are available out of the box. You can also add **any** OpenAI-compatible or Anthropic-format endpoint through the in-app setup wizard — no code changes needed.
## The 12 built-in providers
| # | Provider | Env Variable |
|---|---|---|
| 1 | Fireworks AI | `FIREWORKS_API_KEY` |
| 2 | Cohere | `COHERE_API_KEY` |
| 3 | Cerebras | `CEREBRAS_API_KEY` |
| 4 | Mistral AI | `MISTRAL_API_KEY` |
| 5 | NVIDIA NIM | `NVIDIA_API_KEY` |
| 6 | Command Code | `COMMANDCODE_API_KEY` |
| 7 | Xiaomi (MiMo) | `MIMO_API_KEY` |
| 8 | Qwen API (Singapore / DashScope) | `DASHSCOPE_API_KEY` |
| 9 | Mercury 2 (Inception Labs) | `INCEPTION_API_KEY` |
| 10 | Mara Cloud | `MARA_API_KEY` |
| 11 | Requesty AI | `REQUESTY_API_KEY` |
| 12 | AWS Bedrock (Converse API) | `AWS_BEDROCK_API_KEY` |
> Note: **MCP is only active with the `commandcode` provider** (the provider with the `mcp_capable` flag). See [[MCP Integration]].
## Switching provider / model
Use the `/model` command in the REPL to switch the active model. Full list at [[Slash Commands]].
## Adding a custom provider
A provider not in the list of 12 still works if it's compatible with one of these two shapes:
- **OpenAI-compatible** (standard chat-completions endpoint)
- **Anthropic-format** — set `format_anthropic=True` when configuring
This is done through an in-app **wizard** at runtime, no need to touch the source code (`02_provider.py` manages this registry).
## Why a multi-format engine
Internally, `fw.py` speaks only one language — OpenAI chat-completions format. Two adapter modules translate both ways to:
- **Anthropic Messages API** (`01c_anthropic.py`)
- **AWS Bedrock Converse** (`01b_aws.py`), including manual binary event-stream parsing for Bedrock
This means every tool, prompt, and the agent loop is written once and runs identically across all 12 providers — and on any custom provider you add later.
## API keys
- Set via the matching environment variable (table above) **before running**, or
- Use `/setkey` in the REPL to save/change a key (empty Enter clears the saved key), and `/deletekey` to remove it entirely.
➡️ More on key & provider commands: [[Slash Commands]] · [[Configuration]]