TypeScript 97.4%
SQL 1%
JavaScript 0.9%
CSS 0.6%
1# Provider test matrix23Generated by `pnpm providers:matrix` against the REAL provider APIs on 2026-09-08. A cell is ✅ only when the live request succeeded and the assertion passed. “—” = not run (no key).45Test models: openai: gpt-5.4-mini / reasoning gpt-5.4-mini; anthropic: claude-haiku-4-5 / reasoning claude-sonnet-5; gemini: gemini-3.5-flash-lite / reasoning gemini-3.5-flash-lite; xai: grok-4.20-0309-non-reasoning / reasoning grok-4.3; mistral: mistral-small-latest / reasoning magistral-medium-latest; deepseek: deepseek-v4-flash / reasoning deepseek-v4-flash; kimi: kimi-k2.6 / reasoning kimi-k3; openrouter: openai/gpt-5.4-nano / reasoning openai/gpt-5.4-nano; cerebras: gemma-4-31b / reasoning gpt-oss-120b.67| Capability | openai | anthropic | gemini | xai | mistral | deepseek | kimi | openrouter | cerebras |8| --- | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: |9| Auth | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |10| Model list | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |11| Text | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |12| Streaming | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |13| System | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |14| Vision | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |15| Tools | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |16| Structured output | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |17| Reasoning | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |18| Token usage | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |19| Invalid key | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |20| Error normalization | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |21| Long response | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |2223## Notes2425- kimi: models: 4 (kimi-k3, kimi-k2.7-code, kimi-k2.7-code-highspeed, kimi-k2.6…)26- kimi: text(kimi-k2.6): "OK" deltas=68 usage={"inputTokens":12,"outputTokens":71,"cachedInputTokens":12,"reasoningTokens":68,"totalTokens":83} finish=stop27- kimi: system: "Arr hello to ye matey."28- kimi: vision: "Red"29- kimi: tools: [{"n":"calculator","a":{"expression":"1234 * 5678"}}] finish=tool-calls30- kimi: structured: {"city":"Ottawa","country":"Canada"}31- kimi: reasoning(kimi-k3): text="16" reasoningChars=709 reasoningTokens=28932- kimi: invalid key → INVALID_API_KEY (401)33- kimi: unknown model → MODEL_NOT_FOUND: Not found the model definitely-not-a-model-xyz or Permission denied34- kimi: long: 410 words, 1641 deltas35