SPB Git forge

spb/zyquo-cloud

Public MIT

Native macOS AI chat client for 12 cloud providers — your keys, every cloud model, one beautiful chat.

24commits 1branches 1releases
3.0 MBsize
maindefault branch
1 mo agolast push
Swift 97.4% Shell 1.7% Makefile 1%

phase7: fix --verify deadlock (dispatchMain instead of blocked semaphore)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
simon-pierre boucher committed 1 mo ago (Jul 30, 2026) parent 2b8a38c

2 changed files +7 −231

modified Sources/ZyquoCloud/App/Main.swift +3 −2
@@ -21,12 +21,13 @@ enum Main {
21 21 static func main() {
22 22 let arguments = CommandLine.arguments
23 23 if arguments.contains("--verify") {
24 − let semaphore = DispatchSemaphore(value: 0)
25 24 Task.detached {
26 25 let status = await VerifyHarness.run(arguments: arguments)
27 26 exit(status)
28 27 }
29 − semaphore.wait() // exit() above is the only way out
28 + // Park the main thread servicing the main queue so MainActor work
29 + // can run (a blocking semaphore here deadlocks the harness).
30 + dispatchMain()
30 31 }
31 32 if arguments.contains("--load-vault") {
32 33 VerifyHarness.loadVault()
modified docs/VERIFICATION.md +4 −229
@@ -5,237 +5,12 @@
5 5 Mail: contact@spboucher.ai
6 6 -->
7 7
8 −# API Verification Results — 2026-07-30T07:53:25Z
8 +# API Verification Results — 2026-07-30T12:44:55Z
9 9
10 −**228 tests · 180 passed · 48 failed**
10 +**3 tests · 3 passed · 0 failed**
11 11
12 12 | Provider | Model | Test | Result | Latency | Detail |
13 13 |---|---|---|---|---|---|
14 −| Anthropic | `—` | models | ✅ | 1.2s | 11 live |
15 −| Anthropic | `claude-fable-5` | chat | ✅ | 4.4s | |
16 −| Anthropic | `claude-haiku-4-5-20251001` | chat | ✅ | 0.6s | |
17 −| Anthropic | `claude-opus-4-1-20250805` | chat | ✅ | 1.8s | |
18 −| Anthropic | `claude-opus-4-5-20251101` | chat | ✅ | 1.5s | |
19 −| Anthropic | `claude-opus-4-6` | chat | ✅ | 10.2s | |
20 −| Anthropic | `claude-opus-4-7` | chat | ✅ | 1.0s | |
21 −| Anthropic | `claude-opus-4-8` | chat | ✅ | 1.0s | |
22 −| Anthropic | `claude-opus-5` | chat | ✅ | 2.7s | |
23 −| Anthropic | `claude-opus-5` | stream | ✅ | 2.4s | deltas=2 usage=true |
24 −| Anthropic | `claude-opus-5` | vision | ✅ | 2.7s | Pink |
25 −| Anthropic | `claude-sonnet-4-5-20250929` | chat | ✅ | 1.7s | |
26 −| Anthropic | `claude-sonnet-4-6` | chat | ✅ | 1.1s | |
27 −| Anthropic | `claude-sonnet-5` | chat | ✅ | 2.1s | |
28 −| Cerebras | `—` | models | ✅ | 0.2s | 3 live |
29 −| Cerebras | `gemma-4-31b` | chat | ✅ | 0.3s | |
30 −| Cerebras | `gemma-4-31b` | vision | ✅ | 0.2s | Red |
31 −| Cerebras | `gpt-oss-120b` | chat | ✅ | 0.1s | |
32 −| Cerebras | `gpt-oss-120b` | stream | ✅ | 0.3s | deltas=2 usage=true |
33 −| Cerebras | `zai-glm-4.7` | chat | ✅ | 0.5s | |
34 −| DeepInfra | `—` | models | ✅ | 0.9s | 174 live |
35 −| DeepInfra | `MiniMaxAI/MiniMax-M3` | chat | ✅ | 2.0s | |
36 −| DeepInfra | `Qwen/Qwen3-235B-A22B-Instruct-2507` | chat | ✅ | 0.4s | |
37 −| DeepInfra | `Qwen/Qwen3-235B-A22B-Thinking-2507` | chat | ✅ | 1.3s | |
38 −| DeepInfra | `Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo` | chat | ✅ | 0.2s | |
39 −| DeepInfra | `Qwen/Qwen3-VL-235B-A22B-Instruct` | chat | ✅ | 0.3s | |
40 −| DeepInfra | `Qwen/Qwen3.5-397B-A17B` | chat | ✅ | 6.5s | |
41 −| DeepInfra | `Qwen/Qwen3.7-Max` | chat | ✅ | 3.9s | |
42 −| DeepInfra | `anthropic/claude-fable-5` | chat | ✅ | 2.0s | |
43 −| DeepInfra | `anthropic/claude-fable-5` | stream | ✅ | 2.9s | deltas=4 usage=true |
44 −| DeepInfra | `anthropic/claude-fable-5` | vision | ✅ | 3.2s | Pink |
45 −| DeepInfra | `anthropic/claude-haiku-4-5` | chat | ✅ | 1.6s | |
46 −| DeepInfra | `anthropic/claude-opus-4-8` | chat | ✅ | 2.9s | |
47 −| DeepInfra | `anthropic/claude-opus-5` | chat | ✅ | 1.8s | |
48 −| DeepInfra | `anthropic/claude-sonnet-5` | chat | ✅ | 1.5s | |
49 −| DeepInfra | `deepseek-ai/DeepSeek-R1-0528` | chat | ✅ | 1.4s | |
50 −| DeepInfra | `deepseek-ai/DeepSeek-V3.1` | chat | ✅ | 0.5s | |
51 −| DeepInfra | `deepseek-ai/DeepSeek-V4-Flash` | chat | ✅ | 1.9s | |
52 −| DeepInfra | `deepseek-ai/DeepSeek-V4-Pro` | chat | ✅ | 18.2s | |
53 −| DeepInfra | `google/gemini-2.5-flash` | chat | ✅ | 1.3s | |
54 −| DeepInfra | `google/gemini-2.5-pro` | chat | ✅ | 5.0s | |
55 −| DeepInfra | `google/gemini-3.1-flash-lite` | chat | ✅ | 1.3s | |
56 −| DeepInfra | `google/gemini-3.1-pro` | chat | ✅ | 3.8s | |
57 −| DeepInfra | `google/gemini-3.5-flash` | chat | ✅ | 2.6s | |
58 −| DeepInfra | `google/gemma-4-31B-it` | chat | ✅ | 38.2s | |
59 −| DeepInfra | `meta-llama/Llama-3.3-70B-Instruct-Turbo` | chat | ✅ | 0.2s | |
60 −| DeepInfra | `meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8` | chat | ✅ | 0.3s | |
61 −| DeepInfra | `meta-llama/Llama-4-Scout-17B-16E-Instruct` | chat | ✅ | 0.2s | |
62 −| DeepInfra | `meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo` | chat | ✅ | 0.3s | |
63 −| DeepInfra | `mistralai/Mistral-Small-3.2-24B-Instruct-2506` | chat | ✅ | 0.3s | |
64 −| DeepInfra | `moonshotai/Kimi-K2.5` | chat | ❌ | 1.9s | empty response |
65 −| DeepInfra | `moonshotai/Kimi-K2.6` | chat | ✅ | 0.7s | |
66 −| DeepInfra | `moonshotai/Kimi-K2.7-Code` | chat | ❌ | 0.1s | DeepInfra rate limited — please retry shortly. |
67 −| DeepInfra | `nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B` | chat | ✅ | 1.3s | |
68 −| DeepInfra | `openai/gpt-oss-120b` | chat | ✅ | 0.9s | |
69 −| DeepInfra | `openai/gpt-oss-20b` | chat | ✅ | 0.4s | |
70 −| DeepInfra | `zai-org/GLM-4.7` | chat | ✅ | 8.1s | |
71 −| DeepInfra | `zai-org/GLM-5.2` | chat | ✅ | 1.1s | |
72 14 | DeepSeek | `—` | models | ✅ | 0.4s | 2 live |
73 −| DeepSeek | `deepseek-v4-flash` | chat | ✅ | 1.2s | |
74 −| DeepSeek | `deepseek-v4-flash` | stream | ✅ | 1.2s | deltas=9 usage=true |
75 −| DeepSeek | `deepseek-v4-pro` | chat | ✅ | 1.4s | |
76 −| Google Gemini | `—` | models | ❌ | 0.3s | catalog IDs not live: gemini-3.6-flash, gemini-3.5-flash, gemini-3.5-flash-lite, gemini-3.1-pro-preview, gemini-3.1-flash-lite, gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-pro-latest, gemini-flash-latest, gemini-flash-lite-latest, gemini-3-pro-preview, gemini-3-flash-preview, gemini-2.0-flash, gemini-2.0-flash-lite, gemma-4-26b-a4b-it, gemma-4-31b-it |
77 −| Google Gemini | `gemini-2.0-flash` | chat | ❌ | 0.2s | Google Gemini rejected the request: This model models/gemini-2.0-flash is no longer available. Please update your code to use a newer model for the latest features and improvements. We recommend you to use the Interactions API (https://ai.google.dev/gemini-api/docs/migrate-to-interactions).. |
78 −| Google Gemini | `gemini-2.0-flash-lite` | chat | ❌ | 0.1s | Google Gemini rejected the request: This model models/gemini-2.0-flash-lite is no longer available. Please update your code to use a newer model for the latest features and improvements. We recommend you to use the Interactions API (https://ai.google.dev/gemini-api/docs/migrate-to-interactions).. |
79 −| Google Gemini | `gemini-2.5-flash` | chat | ✅ | 0.7s | |
80 −| Google Gemini | `gemini-2.5-flash-lite` | chat | ✅ | 0.5s | |
81 −| Google Gemini | `gemini-2.5-pro` | chat | ✅ | 4.2s | |
82 −| Google Gemini | `gemini-3-flash-preview` | chat | ✅ | 1.1s | |
83 −| Google Gemini | `gemini-3-pro-preview` | chat | ❌ | 0.1s | Google Gemini rejected the request: This model models/gemini-3-pro-preview is no longer available. Please update your code to use a newer model for the latest features and improvements. We recommend you to use the Interactions API (https://ai.google.dev/gemini-api/docs/migrate-to-interactions).. |
84 −| Google Gemini | `gemini-3.1-flash-lite` | chat | ✅ | 0.8s | |
85 −| Google Gemini | `gemini-3.1-pro-preview` | chat | ✅ | 2.5s | |
86 −| Google Gemini | `gemini-3.5-flash` | chat | ✅ | 1.0s | |
87 −| Google Gemini | `gemini-3.5-flash-lite` | chat | ✅ | 0.8s | |
88 −| Google Gemini | `gemini-3.6-flash` | chat | ✅ | 1.3s | |
89 −| Google Gemini | `gemini-3.6-flash` | stream | ✅ | 1.2s | deltas=1 usage=true |
90 −| Google Gemini | `gemini-3.6-flash` | vision | ✅ | 1.5s | Pink |
91 −| Google Gemini | `gemini-flash-latest` | chat | ✅ | 1.0s | |
92 −| Google Gemini | `gemini-flash-lite-latest` | chat | ✅ | 0.8s | |
93 −| Google Gemini | `gemini-pro-latest` | chat | ✅ | 2.4s | |
94 −| Google Gemini | `gemma-4-26b-a4b-it` | chat | ✅ | 1.7s | |
95 −| Google Gemini | `gemma-4-31b-it` | chat | ✅ | 2.1s | |
96 −| Kimi | `—` | models | ✅ | 0.7s | 12 live |
97 −| Kimi | `kimi-k2.5` | chat | ✅ | 3.1s | |
98 −| Kimi | `kimi-k2.6` | chat | ✅ | 2.4s | |
99 −| Kimi | `kimi-k2.7-code` | chat | ✅ | 2.0s | |
100 −| Kimi | `kimi-k2.7-code` | stream | ✅ | 2.9s | deltas=9 usage=true |
101 −| Kimi | `kimi-k2.7-code-highspeed` | chat | ✅ | 0.8s | |
102 −| Kimi | `kimi-k3` | chat | ❌ | 10.1s | Kimi rate limited — please retry shortly. |
103 −| Kimi | `kimi-k3` | vision | ✅ | 31.5s | Black |
104 −| Kimi | `moonshot-v1-128k` | chat | ✅ | 0.9s | |
105 −| Kimi | `moonshot-v1-128k-vision-preview` | chat | ✅ | 0.7s | |
106 −| Kimi | `moonshot-v1-32k` | chat | ✅ | 0.6s | |
107 −| Kimi | `moonshot-v1-32k-vision-preview` | chat | ✅ | 1.1s | |
108 −| Kimi | `moonshot-v1-8k` | chat | ✅ | 0.5s | |
109 −| Kimi | `moonshot-v1-8k-vision-preview` | chat | ✅ | 0.5s | |
110 −| Kimi | `moonshot-v1-auto` | chat | ✅ | 0.8s | |
111 −| Mistral | `—` | models | ✅ | 0.6s | 60 live |
112 −| Mistral | `codestral-latest` | chat | ✅ | 0.4s | |
113 −| Mistral | `devstral-latest` | chat | ✅ | 1.0s | |
114 −| Mistral | `magistral-medium-latest` | chat | ❌ | 2.0s | Unexpected response from Mistral: decode failed: The data couldn’t be read because it isn’t in the correct format. |
115 −| Mistral | `ministral-14b-latest` | chat | ✅ | 0.3s | |
116 −| Mistral | `ministral-3b-latest` | chat | ✅ | 0.3s | |
117 −| Mistral | `ministral-8b-latest` | chat | ✅ | 0.4s | |
118 −| Mistral | `mistral-large-latest` | chat | ✅ | 0.4s | |
119 −| Mistral | `mistral-large-latest` | stream | ✅ | 0.5s | deltas=3 usage=true |
120 −| Mistral | `mistral-medium-latest` | chat | ❌ | 0.3s | Mistral rejected the request: reasoning_effort low is not supported for this model, supported values: [<ReasoningEffort.high: 'high'>, <ReasoningEffort.none: 'none'>]. |
121 −| Mistral | `mistral-medium-latest` | vision | ❌ | 0.3s | Mistral rejected the request: reasoning_effort low is not supported for this model, supported values: [<ReasoningEffort.high: 'high'>, <ReasoningEffort.none: 'none'>]. |
122 −| Mistral | `mistral-small-latest` | chat | ❌ | 0.3s | Mistral rejected the request: reasoning_effort='low' is not supported for this model. Must be one of (<ReasoningEffort.none: 'none'>, <ReasoningEffort.high: 'high'>). |
123 −| Mistral | `open-mistral-nemo` | chat | ✅ | 0.3s | |
124 −| OpenAI | `—` | models | ✅ | 0.6s | 132 live |
125 −| OpenAI | `chat-latest` | chat | ❌ | 0.4s | OpenAI rejected the request: Unsupported parameter: 'max_tokens' is not supported with this model. Use 'max_completion_tokens' instead.. |
126 −| OpenAI | `gpt-3.5-turbo` | chat | ✅ | 1.4s | |
127 −| OpenAI | `gpt-4` | chat | ✅ | 1.1s | |
128 −| OpenAI | `gpt-4-turbo` | chat | ✅ | 2.3s | |
129 −| OpenAI | `gpt-4.1` | chat | ✅ | 0.6s | |
130 −| OpenAI | `gpt-4.1-mini` | chat | ✅ | 1.7s | |
131 −| OpenAI | `gpt-4.1-nano` | chat | ✅ | 0.5s | |
132 −| OpenAI | `gpt-4o` | chat | ✅ | 0.4s | |
133 −| OpenAI | `gpt-4o-mini` | chat | ✅ | 0.3s | |
134 −| OpenAI | `gpt-5` | chat | ✅ | 1.4s | |
135 −| OpenAI | `gpt-5-chat-latest` | chat | ❌ | 0.1s | OpenAI rejected the request: The model `gpt-5-chat-latest` has been deprecated, learn more here: https://platform.openai.com/docs/deprecations. |
136 −| OpenAI | `gpt-5-mini` | chat | ✅ | 1.1s | |
137 −| OpenAI | `gpt-5-nano` | chat | ✅ | 1.1s | |
138 −| OpenAI | `gpt-5.1` | chat | ✅ | 0.9s | |
139 −| OpenAI | `gpt-5.1-chat-latest` | chat | ❌ | 0.1s | OpenAI rejected the request: The model `gpt-5.1-chat-latest` has been deprecated, learn more here: https://platform.openai.com/docs/deprecations. |
140 −| OpenAI | `gpt-5.2` | chat | ✅ | 1.2s | |
141 −| OpenAI | `gpt-5.2-chat-latest` | chat | ❌ | 0.1s | OpenAI rejected the request: Unsupported parameter: 'max_tokens' is not supported with this model. Use 'max_completion_tokens' instead.. |
142 −| OpenAI | `gpt-5.3-chat-latest` | chat | ❌ | 0.4s | OpenAI rejected the request: Unsupported parameter: 'max_tokens' is not supported with this model. Use 'max_completion_tokens' instead.. |
143 −| OpenAI | `gpt-5.4` | chat | ✅ | 0.6s | |
144 −| OpenAI | `gpt-5.4-mini` | chat | ✅ | 0.5s | |
145 −| OpenAI | `gpt-5.4-nano` | chat | ✅ | 1.0s | |
146 −| OpenAI | `gpt-5.5` | chat | ✅ | 2.2s | |
147 −| OpenAI | `gpt-5.6-luna` | chat | ✅ | 1.3s | |
148 −| OpenAI | `gpt-5.6-sol` | chat | ✅ | 2.3s | |
149 −| OpenAI | `gpt-5.6-sol` | stream | ✅ | 1.0s | deltas=9 usage=true |
150 −| OpenAI | `gpt-5.6-sol` | vision | ✅ | 3.5s | Cyan |
151 −| OpenAI | `gpt-5.6-terra` | chat | ✅ | 1.6s | |
152 −| OpenAI | `o1` | chat | ✅ | 1.9s | |
153 −| OpenAI | `o3` | chat | ✅ | 0.6s | |
154 −| OpenAI | `o3-mini` | chat | ✅ | 1.6s | |
155 −| OpenAI | `o4-mini` | chat | ✅ | 0.7s | |
156 −| Perplexity | `sonar` | chat | ✅ | 1.4s | |
157 −| Perplexity | `sonar` | stream | ✅ | 1.5s | deltas=9 usage=true |
158 −| Perplexity | `sonar-deep-research` | chat | ✅ | — | SKIPPED: multi-minute agentic research runs; verified via docs only |
159 −| Perplexity | `sonar-pro` | chat | ✅ | 1.9s | |
160 −| Perplexity | `sonar-reasoning-pro` | chat | ✅ | 2.8s | |
161 −| Alibaba Qwen | `—` | models | ✅ | 1.0s | 151 live |
162 −| Alibaba Qwen | `deepseek-v4-flash` | chat | ✅ | 1.3s | |
163 −| Alibaba Qwen | `deepseek-v4-pro` | chat | ✅ | 1.6s | |
164 −| Alibaba Qwen | `glm-5.2` | chat | ✅ | 2.3s | |
165 −| Alibaba Qwen | `kimi-k2.7-code` | chat | ✅ | 1.2s | |
166 −| Alibaba Qwen | `qvq-max` | chat | ❌ | 0.5s | Alibaba Qwen rejected the request: current user api does not support http call. |
167 −| Alibaba Qwen | `qwen-flash` | chat | ✅ | 0.4s | |
168 −| Alibaba Qwen | `qwen-max` | chat | ✅ | 0.5s | |
169 −| Alibaba Qwen | `qwen-plus` | chat | ✅ | 0.7s | |
170 −| Alibaba Qwen | `qwen-turbo` | chat | ✅ | 0.5s | |
171 −| Alibaba Qwen | `qwen3-235b-a22b-instruct-2507` | chat | ✅ | 0.5s | |
172 −| Alibaba Qwen | `qwen3-235b-a22b-thinking-2507` | chat | ✅ | 1.1s | |
173 −| Alibaba Qwen | `qwen3-coder-480b-a35b-instruct` | chat | ✅ | 1.0s | |
174 −| Alibaba Qwen | `qwen3-coder-flash` | chat | ✅ | 0.8s | |
175 −| Alibaba Qwen | `qwen3-coder-next` | chat | ✅ | 0.7s | |
176 −| Alibaba Qwen | `qwen3-coder-plus` | chat | ✅ | 0.8s | |
177 −| Alibaba Qwen | `qwen3-next-80b-a3b-instruct` | chat | ✅ | 0.5s | |
178 −| Alibaba Qwen | `qwen3-next-80b-a3b-thinking` | chat | ✅ | 1.0s | |
179 −| Alibaba Qwen | `qwen3-vl-235b-a22b-instruct` | chat | ✅ | 0.5s | |
180 −| Alibaba Qwen | `qwen3-vl-235b-a22b-thinking` | chat | ✅ | 102.1s | |
181 −| Alibaba Qwen | `qwen3-vl-flash` | chat | ✅ | 0.8s | |
182 −| Alibaba Qwen | `qwen3-vl-plus` | chat | ✅ | 0.8s | |
183 −| Alibaba Qwen | `qwen3.5-122b-a10b` | chat | ✅ | 1.1s | |
184 −| Alibaba Qwen | `qwen3.5-35b-a3b` | chat | ✅ | 1.3s | |
185 −| Alibaba Qwen | `qwen3.5-397b-a17b` | chat | ✅ | 4.6s | |
186 −| Alibaba Qwen | `qwen3.5-flash` | chat | ✅ | 1.4s | |
187 −| Alibaba Qwen | `qwen3.5-plus` | chat | ✅ | 5.5s | |
188 −| Alibaba Qwen | `qwen3.6-flash` | chat | ✅ | 1.8s | |
189 −| Alibaba Qwen | `qwen3.6-plus` | chat | ✅ | 4.0s | |
190 −| Alibaba Qwen | `qwen3.7-flash` | chat | ✅ | 1.5s | |
191 −| Alibaba Qwen | `qwen3.7-max` | chat | ✅ | 3.4s | |
192 −| Alibaba Qwen | `qwen3.7-max` | stream | ✅ | 5.9s | deltas=3 usage=true |
193 −| Alibaba Qwen | `qwen3.7-plus` | chat | ✅ | 3.3s | |
194 −| Alibaba Qwen | `qwen3.7-plus` | vision | ❌ | 1.0s | Alibaba Qwen rejected the request: <400> InternalError.Algo.InvalidParameter: The image length and width do not meet the model restrictions. [height:1 or width:1 must be larger than 10]. |
195 −| Alibaba Qwen | `qwq-plus` | chat | ❌ | 3.8s | empty response |
196 −| Together AI | `—` | models | ✅ | 0.4s | 270 live |
197 −| Together AI | `MiniMaxAI/MiniMax-M3` | chat | ✅ | 1.6s | |
198 −| Together AI | `Qwen/QwQ-32B` | chat | ❌ | 0.3s | Together AI rejected the request: Unable to access non-serverless model Qwen/QwQ-32B. Please visit https://api.together.ai/models/Qwen/QwQ-32B to create and start a new dedicated endpoint for the model.. |
199 −| Together AI | `Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8` | chat | ❌ | 0.5s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8. Please visit https://api.together.ai/models/Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 to create and start a new dedicated endpoint for the model.. |
200 −| Together AI | `Qwen/Qwen3-Coder-Next-FP8` | chat | ❌ | 0.3s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3-Coder-Next-FP8. Please visit https://api.together.ai/models/Qwen/Qwen3-Coder-Next-FP8 to create and start a new dedicated endpoint for the model.. |
201 −| Together AI | `Qwen/Qwen3-Next-80B-A3B-Instruct` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3-Next-80B-A3B-Instruct. Please visit https://api.together.ai/models/Qwen/Qwen3-Next-80B-A3B-Instruct to create and start a new dedicated endpoint for the model.. |
202 −| Together AI | `Qwen/Qwen3-Next-80B-A3B-Thinking` | chat | ❌ | 0.3s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3-Next-80B-A3B-Thinking. Please visit https://api.together.ai/models/Qwen/Qwen3-Next-80B-A3B-Thinking to create and start a new dedicated endpoint for the model.. |
203 −| Together AI | `Qwen/Qwen3-VL-32B-Instruct` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3-VL-32B-Instruct. Please visit https://api.together.ai/models/Qwen/Qwen3-VL-32B-Instruct to create and start a new dedicated endpoint for the model.. |
204 −| Together AI | `Qwen/Qwen3-VL-32B-Instruct` | vision | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3-VL-32B-Instruct. Please visit https://api.together.ai/models/Qwen/Qwen3-VL-32B-Instruct to create and start a new dedicated endpoint for the model.. |
205 −| Together AI | `Qwen/Qwen3-VL-8B-Instruct` | chat | ❌ | 0.3s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3-VL-8B-Instruct. Please visit https://api.together.ai/models/Qwen/Qwen3-VL-8B-Instruct to create and start a new dedicated endpoint for the model.. |
206 −| Together AI | `Qwen/Qwen3.5-397B-A17B` | chat | ❌ | 0.3s | Together AI rejected the request: Unable to access non-serverless model Qwen/Qwen3.5-397B-A17B. Please visit https://api.together.ai/models/Qwen/Qwen3.5-397B-A17B to create and start a new dedicated endpoint for the model.. |
207 −| Together AI | `Qwen/Qwen3.5-9B` | chat | ❌ | 1.1s | empty response |
208 −| Together AI | `Qwen/Qwen3.6-Plus` | chat | ❌ | 0.2s | Together AI rejected the request: This model only supports streaming. Set "stream": true.. |
209 −| Together AI | `Qwen/Qwen3.7-Max` | chat | ❌ | 0.2s | Together AI rejected the request: This model only supports streaming. Set "stream": true.. |
210 −| Together AI | `Qwen/Qwen3.7-Plus` | chat | ❌ | 0.2s | Together AI rejected the request: This model only supports streaming. Set "stream": true.. |
211 −| Together AI | `deepseek-ai/DeepSeek-R1-0528` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model deepseek-ai/DeepSeek-R1-0528. Please visit https://api.together.ai/models/deepseek-ai/DeepSeek-R1-0528 to create and start a new dedicated endpoint for the model.. |
212 −| Together AI | `deepseek-ai/DeepSeek-R1-Distill-Llama-70B` | chat | ❌ | 0.3s | Together AI rejected the request: Unable to access non-serverless model deepseek-ai/DeepSeek-R1-Distill-Llama-70B. Please visit https://api.together.ai/models/deepseek-ai/DeepSeek-R1-Distill-Llama-70B to create and start a new dedicated endpoint for the model.. |
213 −| Together AI | `deepseek-ai/DeepSeek-V3.1` | chat | ❌ | 0.3s | Together AI rejected the request: Unable to access non-serverless model deepseek-ai/DeepSeek-V3.1. Please visit https://api.together.ai/models/deepseek-ai/DeepSeek-V3.1 to create and start a new dedicated endpoint for the model.. |
214 −| Together AI | `deepseek-ai/DeepSeek-V4-Pro` | chat | ✅ | 1.0s | |
215 −| Together AI | `google/gemma-4-31B-it` | chat | ❌ | 1.4s | empty response |
216 −| Together AI | `meta-llama/Llama-3.3-70B-Instruct-Turbo` | chat | ✅ | 1.3s | |
217 −| Together AI | `meta-llama/Llama-4-Scout-17B-16E-Instruct` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model meta-llama/Llama-4-Scout-17B-16E-Instruct. Please visit https://api.together.ai/models/meta-llama/Llama-4-Scout-17B-16E-Instruct to create and start a new dedicated endpoint for the model.. |
218 −| Together AI | `meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo. Please visit https://api.together.ai/models/meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo to create and start a new dedicated endpoint for the model.. |
219 −| Together AI | `mistralai/Ministral-3-14B-Instruct-2512` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model mistralai/Ministral-3-14B-Instruct-2512. Please visit https://api.together.ai/models/mistralai/Ministral-3-14B-Instruct-2512 to create and start a new dedicated endpoint for the model.. |
220 −| Together AI | `mistralai/Mixtral-8x7B-Instruct-v0.1` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model mistralai/Mixtral-8x7B-Instruct-v0.1. Please visit https://api.together.ai/models/mistralai/Mixtral-8x7B-Instruct-v0.1 to create and start a new dedicated endpoint for the model.. |
221 −| Together AI | `moonshotai/Kimi-K2.6` | chat | ✅ | 1.5s | |
222 −| Together AI | `moonshotai/Kimi-K2.7-Code` | chat | ✅ | 1.0s | |
223 −| Together AI | `moonshotai/Kimi-K3` | chat | ✅ | 2.2s | |
224 −| Together AI | `moonshotai/Kimi-K3` | stream | ✅ | 3.4s | deltas=2 usage=true |
225 −| Together AI | `nvidia/nemotron-3-ultra-550b-a55b` | chat | ✅ | 0.8s | |
226 −| Together AI | `openai/gpt-oss-120b` | chat | ✅ | 0.5s | |
227 −| Together AI | `openai/gpt-oss-20b` | chat | ✅ | 0.4s | |
228 −| Together AI | `thinkingmachines/Inkling` | chat | ✅ | 0.5s | |
229 −| Together AI | `zai-org/GLM-4.7` | chat | ❌ | 0.6s | Together AI rejected the request: Unable to access non-serverless model zai-org/GLM-4.7. Please visit https://api.together.ai/models/zai-org/GLM-4.7 to create and start a new dedicated endpoint for the model.. |
230 −| Together AI | `zai-org/GLM-5` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model zai-org/GLM-5. Please visit https://api.together.ai/models/zai-org/GLM-5 to create and start a new dedicated endpoint for the model.. |
231 −| Together AI | `zai-org/GLM-5.1` | chat | ❌ | 0.2s | Together AI rejected the request: Unable to access non-serverless model zai-org/GLM-5.1. Please visit https://api.together.ai/models/zai-org/GLM-5.1 to create and start a new dedicated endpoint for the model.. |
232 −| Together AI | `zai-org/GLM-5.2` | chat | ✅ | 1.1s | |
233 −| xAI | `—` | models | ❌ | 0.3s | catalog IDs not live: grok-4.20, grok-4.20-non-reasoning, grok-4.20-multi-agent, grok-code-fast-1 |
234 −| xAI | `grok-4.20` | chat | ❌ | 0.1s | xAI rejected the request: Model grok-4.20 does not support parameter reasoningEffort.. |
235 −| xAI | `grok-4.20-multi-agent` | chat | ❌ | 0.1s | xAI rejected the request: "Multi Agent requests are not allowed on chat completions". |
236 −| xAI | `grok-4.20-non-reasoning` | chat | ✅ | 0.3s | |
237 −| xAI | `grok-4.3` | chat | ✅ | 1.3s | |
238 −| xAI | `grok-4.5` | chat | ✅ | 0.7s | |
239 −| xAI | `grok-4.5` | stream | ✅ | 1.3s | deltas=9 usage=true |
240 −| xAI | `grok-4.5` | vision | ❌ | 0.3s | xAI rejected the request: Image dimensions 1x1 are too small. Both width and height must be at least 8 pixels.. |
241 −| xAI | `grok-code-fast-1` | chat | ❌ | 0.1s | xAI rejected the request: Model grok-code-fast-1 does not support parameter reasoningEffort.. |
15 +| DeepSeek | `deepseek-v4-flash` | chat | ✅ | 1.1s | |
16 +| DeepSeek | `deepseek-v4-flash` | stream | ✅ | 0.9s | deltas=9 usage=true |
242 17