You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(provider): native Kimi OAuth + 5 API-key providers
Adds six built-in providers to the data-driven registry.
Native OAuth (like Claude/ChatGPT/Copilot):
- Kimi Code — RFC 8628 device-flow OAuth against auth.kimi.com,
access_token used directly as the API bearer (no proxy exchange),
refreshed via refresh_token. New provider/kimi/{kimi_oauth,provider},
KimiWaiting login state, KimiDeviceCodeReady/LoginDone msgs,
cmd::kimi_login_async, waiting panel, picker badge, and full
multi-account wiring in account_switch. Selection::is_kimi() +
LongLived::Kimi dispatch slot.
API-key OpenAI-compat rows (registry array 10 -> 16), each with a
dedicated Endpoint::from_spec arm:
- deepseek (api.deepseek.com, root path, DEEPSEEK_API_KEY)
- xai (api.x.ai/v1, XAI_API_KEY)
- mistral (api.mistral.ai/v1, MISTRAL_API_KEY)
- gemini (generativelanguage.googleapis.com/v1beta/openai,
GEMINI_API_KEY|GOOGLE_API_KEY|OPENAI_API_KEY)
- fireworks (api.fireworks.ai/inference/v1, FIREWORKS_API_KEY)
catalog.hpp capability inference now recognizes the deepseek-v4/
reasoner/chat, grok, gemini, and magistral families as native
tool-callers. Endpoints locked in openai_transport_test; Kimi wire
parsing/expiry in kimi_token_test. All six verified routing
end-to-end. 274/274 tests green.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,10 @@ All notable changes to agentty. Versions follow [SemVer](https://semver.org/).
4
4
5
5
## [Unreleased]
6
6
7
+
### Added
8
+
-**Four more built-in providers: xAI (Grok), Mistral, Google Gemini, and Fireworks** (`--provider xai|mistral|gemini|fireworks`, or pick in `^P`). All are API-key OpenAI-compat rows — set the provider's key (`XAI_API_KEY`, `MISTRAL_API_KEY`, `GEMINI_API_KEY`/`GOOGLE_API_KEY`, `FIREWORKS_API_KEY`), `-k`, or the in-app prompt. Each gets a dedicated `Endpoint::from_spec` arm for its host/path (Gemini's OpenAI shim nests under `/v1beta/openai`; Fireworks under `/inference/v1`); capability inference now recognizes the `grok`, `gemini`, and `magistral` families as native tool-callers. (`registry.hpp`, `openai/transport.cpp`, `catalog.hpp`; `openai_transport_test`.)
9
+
-**DeepSeek as a built-in provider (`--provider deepseek`, or pick it in `^P`).** Point agentty at DeepSeek's OpenAI-compatible API (`api.deepseek.com`) with a `DEEPSEEK_API_KEY` (or `-k`) — no new login flow, since DeepSeek issues static API keys, not developer OAuth. Its endpoints live at the root (no `/v1` prefix), so it gets a dedicated `Endpoint::from_spec` arm; the V4 model family (`deepseek-v4-pro`/`-flash`, `deepseek-chat`/`-reasoner`) is recognized as native tool-callers by the capability inference. (`include/agentty/provider/registry.hpp`, `src/provider/openai/transport.cpp`, `include/agentty/domain/catalog.hpp`; `openai_transport_test`.)
Copy file name to clipboardExpand all lines: README.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ Most terminal coding agents ship as a Node or Python app and send big chunks of
23
23
24
24
-**It's one native binary.** 16.7 MB, ~3 ms cold start, zero runtime dependencies — no Node, no Python, no `npm install`, no `node_modules`. Download and run.
25
25
-**It sends only the relevant code.** Built-in retrieval (hybrid BM25 + dense embeddings, code-aware chunking, GraphRAG) fetches just the slices that matter — often cutting context by 80%+ vs. whole-repo dumping.
26
-
-**It's not locked to one vendor.** Sign in with your Claude Pro/Max, or point it at OpenAI, Groq, OpenRouter, Cerebras, or a fully local Ollama model. Switch live with `^P`.
26
+
-**It's not locked to one vendor.** Sign in with your Claude Pro/Max, or point it at OpenAI, Groq, OpenRouter, Cerebras, DeepSeek, xAI (Grok), Mistral, Gemini, Fireworks, or a fully local Ollama model. Switch live with `^P`.
27
27
-**It's safe by default.** Shell and build commands run in a sandbox; air-gap an entire session over SSH with one command.
28
28
-**It's open source (MIT)** and runs inside Zed over ACP.
Copy file name to clipboardExpand all lines: docs/website/providers.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,6 +42,11 @@ Even a 1M window eventually fills on a long session. When it does, you can [fork
42
42
|`openrouter`| Any model via `openrouter.ai`|`OPENROUTER_API_KEY`|
43
43
|`together`| Open models on `together.ai`|`TOGETHER_API_KEY`|
44
44
|`cerebras`| Wafer-scale inference — very fast |`CEREBRAS_API_KEY`|
45
+
|`deepseek`| DeepSeek V4 on `api.deepseek.com`|`DEEPSEEK_API_KEY`|
46
+
|`xai`| xAI Grok models on `api.x.ai`|`XAI_API_KEY`|
47
+
|`mistral`| Mistral / Codestral / Magistral on `api.mistral.ai`|`MISTRAL_API_KEY`|
48
+
|`gemini`| Google Gemini via the OpenAI-compat API |`GEMINI_API_KEY`|
49
+
|`fireworks`| Open models on `fireworks.ai`|`FIREWORKS_API_KEY`|
45
50
|`ollama`| Local models at `localhost:11434`| None |
46
51
|`host:port`| Any raw OpenAI-compatible endpoint |`OPENAI_API_KEY`|
47
52
|`https://host[:port]/path`| Any OpenAI-compatible endpoint with a custom path prefix (e.g. a gateway serving on `/api` instead of `/v1`) |`OPENAI_API_KEY`|
0 commit comments