返回 CodeWhale
provider_descriptors.json
根目录 / crates / config / assets / provider_descriptors.json
1 {
2 "schema_version": 3,
3 "providers": [
4 {
5 "kind": "Deepseek",
6 "id": "deepseek",
7 "label": "DeepSeek",
8 "base_url": "https://api.deepseek.com/beta",
9 "default_model": "deepseek-flash",
10 "env_vars": [
11 "DEEPSEEK_API_KEY"
12 ],
13 "config_key": "deepseek",
14 "aliases": [
15 "deep-seek",
16 "deepseek-cn",
17 "deepseek_china",
18 "deepseekcn",
19 "deepseek-china",
20 "deepseek-anthropic",
21 "deepseek_anthropic",
22 "deepseek-claude",
23 "deepseek_claude"
24 ],
25 "wire_policy": "model_aware",
26 "credential_help": {
27 "acquisition": "api_key",
28 "credential_url": "https://platform.deepseek.com/api_keys",
29 "docs_url": "https://api-docs.deepseek.com/",
30 "guidance": "Create an API key in the DeepSeek platform console."
31 },
32 "selectable": true,
33 "retired": false,
34 "secret_store_slot": "deepseek",
35 "family": "deepseek",
36 "web": {
37 "order": 0
38 },
39 "selection_order": 0,
40 "tui_wire_tag": "deepseek",
41 "tui_order": 0,
42 "catalog_id": "deepseek",
43 "catalog_source_id": "deepseek",
44 "subagent_aliases": [
45 "deepseek",
46 "deepseek_api",
47 "deepseek_official"
48 ],
49 "table_field": "deepseek",
50 "selector_aliases": []
51 },
52 {
53 "kind": "DeepseekAnthropic",
54 "id": "deepseek-anthropic",
55 "label": "DeepSeek",
56 "base_url": "https://api.deepseek.com/anthropic",
57 "default_model": "deepseek-flash",
58 "env_vars": [
59 "DEEPSEEK_API_KEY"
60 ],
61 "config_key": "deepseek_anthropic",
62 "aliases": [],
63 "wire_policy": "anthropic_messages",
64 "credential_help": {
65 "acquisition": "api_key",
66 "credential_url": "https://platform.deepseek.com/api_keys",
67 "docs_url": "https://api-docs.deepseek.com/",
68 "guidance": "Create an API key in the DeepSeek platform console."
69 },
70 "selectable": false,
71 "retired": false,
72 "secret_store_slot": "deepseek-anthropic",
73 "family": "deepseek",
74 "web": {
75 "label": "DeepSeek Anthropic",
76 "env": "DEEPSEEK_API_KEY / ANTHROPIC_API_KEY",
77 "order": 1
78 },
79 "selection_order": null,
80 "tui_wire_tag": "deepseek_anthropic",
81 "tui_order": 2,
82 "catalog_id": "deepseek",
83 "catalog_source_id": "deepseek",
84 "subagent_aliases": [
85 "deepseek_anthropic",
86 "deepseek_claude",
87 "deepseek_anthropic_api"
88 ],
89 "table_field": "deepseek_anthropic",
90 "selector_aliases": [
91 "deepseek-anthropic",
92 "deepseek_anthropic",
93 "deepseek-claude",
94 "deepseek_claude"
95 ]
96 },
97 {
98 "kind": "NvidiaNim",
99 "id": "nvidia-nim",
100 "label": "NVIDIA NIM",
101 "base_url": "https://integrate.api.nvidia.com/v1",
102 "default_model": "deepseek-ai/deepseek-v4-pro",
103 "env_vars": [
104 "NVIDIA_API_KEY",
105 "NVIDIA_NIM_API_KEY"
106 ],
107 "config_key": "nvidia_nim",
108 "aliases": [
109 "nvidia",
110 "nvidia_nim",
111 "nim"
112 ],
113 "wire_policy": "chat_completions",
114 "credential_help": {
115 "acquisition": "api_key",
116 "credential_url": "https://build.nvidia.com/settings/api-keys",
117 "docs_url": "https://build.nvidia.com/explore/discover",
118 "guidance": "Create an NVIDIA NIM key in the NVIDIA build console."
119 },
120 "selectable": true,
121 "retired": false,
122 "secret_store_slot": "nvidia-nim",
123 "family": "nvidia-nim",
124 "web": {
125 "order": 2
126 },
127 "selection_order": 1,
128 "tui_wire_tag": "nvidia_nim",
129 "tui_order": 3,
130 "catalog_id": "nvidia-nim",
131 "catalog_source_id": "nvidia-nim",
132 "subagent_aliases": [],
133 "table_field": "nvidia_nim",
134 "selector_aliases": []
135 },
136 {
137 "kind": "Openai",
138 "id": "openai",
139 "label": "OpenAI-compatible",
140 "base_url": "https://api.openai.com/v1",
141 "default_model": "gpt-5.6",
142 "env_vars": [
143 "OPENAI_API_KEY"
144 ],
145 "config_key": "openai",
146 "aliases": [
147 "open-ai"
148 ],
149 "wire_policy": "chat_completions",
150 "credential_help": {
151 "acquisition": "api_key",
152 "credential_url": "https://platform.openai.com/api-keys",
153 "docs_url": "https://platform.openai.com/docs/api-reference",
154 "guidance": "Create an OpenAI API key, or configure the credential for your compatible endpoint."
155 },
156 "selectable": true,
157 "retired": false,
158 "secret_store_slot": "openai",
159 "family": "openai",
160 "web": {
161 "order": 3
162 },
163 "selection_order": 2,
164 "tui_wire_tag": "openai",
165 "tui_order": 4,
166 "catalog_id": "openai",
167 "catalog_source_id": "openai",
168 "subagent_aliases": [],
169 "table_field": "openai",
170 "selector_aliases": []
171 },
172 {
173 "kind": "Atlascloud",
174 "id": "atlascloud",
175 "label": "AtlasCloud",
176 "base_url": "https://api.atlascloud.ai/v1",
177 "default_model": "deepseek-ai/deepseek-v4-flash",
178 "env_vars": [
179 "ATLASCLOUD_API_KEY"
180 ],
181 "config_key": "atlascloud",
182 "aliases": [
183 "atlas-cloud",
184 "atlas_cloud",
185 "atlas"
186 ],
187 "wire_policy": "chat_completions",
188 "credential_help": {
189 "acquisition": "api_key",
190 "credential_url": "https://atlascloud.ai/docs/en/api-keys",
191 "docs_url": "https://atlascloud.ai/docs/en/api-keys",
192 "guidance": "Follow Atlas Cloud's API Keys guide to create a credential."
193 },
194 "selectable": true,
195 "retired": false,
196 "secret_store_slot": "atlascloud",
197 "family": "atlascloud",
198 "web": {
199 "order": 4
200 },
201 "selection_order": 3,
202 "tui_wire_tag": "atlascloud",
203 "tui_order": 5,
204 "catalog_id": "atlascloud",
205 "catalog_source_id": "atlascloud",
206 "subagent_aliases": [],
207 "table_field": "atlascloud",
208 "selector_aliases": []
209 },
210 {
211 "kind": "WanjieArk",
212 "id": "wanjie-ark",
213 "label": "Wanjie Ark",
214 "base_url": "https://maas-openapi.wanjiedata.com/api/v1",
215 "default_model": "deepseek-reasoner",
216 "env_vars": [
217 "WANJIE_ARK_API_KEY",
218 "WANJIE_API_KEY",
219 "WANJIE_MAAS_API_KEY"
220 ],
221 "config_key": "wanjie_ark",
222 "aliases": [
223 "wanjie",
224 "wanjie_ark",
225 "ark-wanjie",
226 "ark_wanjie",
227 "wanjieark",
228 "wanjie-maas",
229 "wanjie_maas",
230 "wanjiemaas"
231 ],
232 "wire_policy": "chat_completions",
233 "credential_help": {
234 "acquisition": "api_key",
235 "credential_url": "https://docs.wanjiedata.com/maas/maas-openapi-v1.html",
236 "docs_url": "https://docs.wanjiedata.com/maas/maas-openapi-v1.html",
237 "guidance": "Follow Wanjie MaaS's APIKEY guide to create a credential."
238 },
239 "selectable": true,
240 "retired": false,
241 "secret_store_slot": "wanjie-ark",
242 "family": "wanjie-ark",
243 "web": {
244 "order": 5
245 },
246 "selection_order": 4,
247 "tui_wire_tag": "wanjie_ark",
248 "tui_order": 6,
249 "catalog_id": "wanjie-ark",
250 "catalog_source_id": "wanjie-ark",
251 "subagent_aliases": [],
252 "table_field": "wanjie_ark",
253 "selector_aliases": []
254 },
255 {
256 "kind": "Volcengine",
257 "id": "volcengine",
258 "label": "Volcengine Ark",
259 "base_url": "https://ark.cn-beijing.volces.com/api/coding/v3",
260 "default_model": "DeepSeek-V4-Pro",
261 "env_vars": [
262 "VOLCENGINE_API_KEY",
263 "VOLCENGINE_ARK_API_KEY",
264 "ARK_API_KEY"
265 ],
266 "config_key": "volcengine",
267 "aliases": [
268 "volcengine-ark",
269 "volcengine_ark",
270 "ark",
271 "volc-ark",
272 "volcengineark"
273 ],
274 "wire_policy": "chat_completions",
275 "credential_help": {
276 "acquisition": "api_key",
277 "credential_url": "https://console.volcengine.com/ark/apiKey",
278 "docs_url": "https://www.volcengine.com/docs/82379/1541594",
279 "guidance": "Create a Volcengine Ark API key in the Ark console."
280 },
281 "selectable": true,
282 "retired": false,
283 "secret_store_slot": "volcengine",
284 "family": "volcengine",
285 "web": {
286 "order": 6
287 },
288 "selection_order": 5,
289 "tui_wire_tag": "volcengine",
290 "tui_order": 7,
291 "catalog_id": "volcengine",
292 "catalog_source_id": "volcengine",
293 "subagent_aliases": [],
294 "table_field": "volcengine",
295 "selector_aliases": []
296 },
297 {
298 "kind": "Openrouter",
299 "id": "openrouter",
300 "label": "OpenRouter",
301 "base_url": "https://openrouter.ai/api/v1",
302 "default_model": "deepseek/deepseek-v4-pro",
303 "env_vars": [
304 "OPENROUTER_API_KEY"
305 ],
306 "config_key": "openrouter",
307 "aliases": [
308 "open_router"
309 ],
310 "wire_policy": "chat_completions",
311 "credential_help": {
312 "acquisition": "api_key",
313 "credential_url": "https://openrouter.ai/settings/keys",
314 "docs_url": "https://openrouter.ai/docs/api/reference/authentication",
315 "guidance": "Create an OpenRouter key from account settings."
316 },
317 "selectable": true,
318 "retired": false,
319 "secret_store_slot": "openrouter",
320 "family": "openrouter",
321 "web": {
322 "order": 7
323 },
324 "selection_order": 6,
325 "tui_wire_tag": "openrouter",
326 "tui_order": 8,
327 "catalog_id": "openrouter",
328 "catalog_source_id": "openrouter",
329 "subagent_aliases": [
330 "openrouter",
331 "open_router"
332 ],
333 "table_field": "openrouter",
334 "selector_aliases": []
335 },
336 {
337 "kind": "Orcarouter",
338 "id": "orcarouter",
339 "label": "OrcaRouter",
340 "base_url": "https://api.orcarouter.ai/v1",
341 "default_model": "deepseek/deepseek-v4-pro",
342 "env_vars": [
343 "ORCAROUTER_API_KEY"
344 ],
345 "config_key": "orcarouter",
346 "aliases": [
347 "orca_router"
348 ],
349 "wire_policy": "chat_completions",
350 "credential_help": {
351 "acquisition": "api_key",
352 "credential_url": "https://www.orcarouter.ai",
353 "docs_url": "https://www.orcarouter.ai",
354 "guidance": "Create an OrcaRouter API key from the OrcaRouter dashboard."
355 },
356 "selectable": true,
357 "retired": false,
358 "secret_store_slot": "orcarouter",
359 "family": "orcarouter",
360 "web": {
361 "order": 8
362 },
363 "selection_order": 7,
364 "tui_wire_tag": "orcarouter",
365 "tui_order": 9,
366 "catalog_id": "orcarouter",
367 "catalog_source_id": "orcarouter",
368 "subagent_aliases": [
369 "orcarouter",
370 "orca_router"
371 ],
372 "table_field": "orcarouter",
373 "selector_aliases": []
374 },
375 {
376 "kind": "XiaomiMimo",
377 "id": "xiaomi-mimo",
378 "label": "Xiaomi MiMo",
379 "base_url": "https://token-plan-sgp.xiaomimimo.com/v1",
380 "default_model": "mimo-v2.5-pro",
381 "env_vars": [
382 "XIAOMI_MIMO_TOKEN_PLAN_API_KEY",
383 "MIMO_TOKEN_PLAN_API_KEY",
384 "XIAOMI_MIMO_API_KEY",
385 "XIAOMI_API_KEY",
386 "MIMO_API_KEY"
387 ],
388 "config_key": "xiaomi_mimo",
389 "aliases": [
390 "xiaomi_mimo",
391 "xiaomimimo",
392 "mimo",
393 "xiaomi"
394 ],
395 "wire_policy": "chat_completions",
396 "credential_help": {
397 "acquisition": "api_key",
398 "credential_url": "https://platform.xiaomimimo.com/token-plan",
399 "docs_url": "https://mimo.mi.com/docs/en-US/tokenplan/Token%20Plan/subscription",
400 "guidance": "Create a Xiaomi MiMo Token Plan or pay-as-you-go key and keep its matching base URL."
401 },
402 "selectable": true,
403 "retired": false,
404 "secret_store_slot": "xiaomi-mimo",
405 "family": "xiaomi-mimo",
406 "web": {
407 "order": 9
408 },
409 "selection_order": 8,
410 "tui_wire_tag": "xiaomi_mimo",
411 "tui_order": 10,
412 "catalog_id": "xiaomi-mimo",
413 "catalog_source_id": "xiaomi-mimo",
414 "subagent_aliases": [],
415 "table_field": "xiaomi_mimo",
416 "selector_aliases": []
417 },
418 {
419 "kind": "Novita",
420 "id": "novita",
421 "label": "Novita AI",
422 "base_url": "https://api.novita.ai/openai/v1",
423 "default_model": "deepseek/deepseek-v4-pro",
424 "env_vars": [
425 "NOVITA_API_KEY"
426 ],
427 "config_key": "novita",
428 "aliases": [
429 "novita-ai",
430 "novita_ai"
431 ],
432 "wire_policy": "chat_completions",
433 "credential_help": {
434 "acquisition": "api_key",
435 "credential_url": "https://novita.ai/en/settings/key-management",
436 "docs_url": "https://novita.ai/docs/guides/quickstart",
437 "guidance": "Create a Novita key in account Key Management."
438 },
439 "selectable": true,
440 "retired": false,
441 "secret_store_slot": "novita",
442 "family": "novita",
443 "web": {
444 "order": 10
445 },
446 "selection_order": 9,
447 "tui_wire_tag": "novita",
448 "tui_order": 11,
449 "catalog_id": "novita",
450 "catalog_source_id": "novita",
451 "subagent_aliases": [],
452 "table_field": "novita",
453 "selector_aliases": []
454 },
455 {
456 "kind": "Fireworks",
457 "id": "fireworks",
458 "label": "Fireworks AI",
459 "base_url": "https://api.fireworks.ai/inference/v1",
460 "default_model": "accounts/fireworks/models/deepseek-v4-pro",
461 "env_vars": [
462 "FIREWORKS_API_KEY"
463 ],
464 "config_key": "fireworks",
465 "aliases": [
466 "fireworks-ai"
467 ],
468 "wire_policy": "chat_completions",
469 "credential_help": {
470 "acquisition": "api_key",
471 "credential_url": "https://fireworks.ai/api-keys",
472 "docs_url": "https://docs.fireworks.ai/getting-started/quickstart",
473 "guidance": "Create a Fireworks API key before configuring the provider."
474 },
475 "selectable": true,
476 "retired": false,
477 "secret_store_slot": "fireworks",
478 "family": "fireworks",
479 "web": {
480 "order": 11
481 },
482 "selection_order": 10,
483 "tui_wire_tag": "fireworks",
484 "tui_order": 12,
485 "catalog_id": "fireworks",
486 "catalog_source_id": "fireworks",
487 "subagent_aliases": [],
488 "table_field": "fireworks",
489 "selector_aliases": []
490 },
491 {
492 "kind": "Siliconflow",
493 "id": "siliconflow",
494 "label": "SiliconFlow",
495 "base_url": "https://api.siliconflow.com/v1",
496 "default_model": "deepseek-ai/DeepSeek-V4-Pro",
497 "env_vars": [
498 "SILICONFLOW_API_KEY"
499 ],
500 "config_key": "siliconflow",
501 "aliases": [
502 "silicon-flow",
503 "silicon_flow"
504 ],
505 "wire_policy": "chat_completions",
506 "credential_help": {
507 "acquisition": "api_key",
508 "credential_url": "https://cloud.siliconflow.com/account/ak",
509 "docs_url": "https://docs.siliconflow.com/en/userguide/quickstart",
510 "guidance": "Use the global SiliconFlow console for the global endpoint."
511 },
512 "selectable": true,
513 "retired": false,
514 "secret_store_slot": "siliconflow",
515 "family": "siliconflow",
516 "web": {
517 "order": 12
518 },
519 "selection_order": 11,
520 "tui_wire_tag": "siliconflow",
521 "tui_order": 13,
522 "catalog_id": "siliconflow",
523 "catalog_source_id": "siliconflow",
524 "subagent_aliases": [],
525 "table_field": "siliconflow",
526 "selector_aliases": []
527 },
528 {
529 "kind": "Arcee",
530 "id": "arcee",
531 "label": "Arcee AI",
532 "base_url": "https://api.arcee.ai/api/v1",
533 "default_model": "trinity-large-thinking",
534 "env_vars": [
535 "ARCEE_API_KEY"
536 ],
537 "config_key": "arcee",
538 "aliases": [
539 "arcee-ai",
540 "arcee_ai"
541 ],
542 "wire_policy": "chat_completions",
543 "credential_help": {
544 "acquisition": "api_key",
545 "credential_url": "https://docs.arcee.ai/other/create-your-first-api-key",
546 "docs_url": "https://docs.arcee.ai/other/create-your-first-api-key",
547 "guidance": "Follow Arcee's API key guide to create a credential."
548 },
549 "selectable": true,
550 "retired": false,
551 "secret_store_slot": "arcee",
552 "family": "arcee",
553 "web": {
554 "order": 14
555 },
556 "selection_order": 12,
557 "tui_wire_tag": "arcee",
558 "tui_order": 15,
559 "catalog_id": "arcee",
560 "catalog_source_id": "arcee",
561 "subagent_aliases": [],
562 "table_field": "arcee",
563 "selector_aliases": []
564 },
565 {
566 "kind": "SiliconflowCN",
567 "id": "siliconflow-CN",
568 "label": "SiliconFlow (China)",
569 "base_url": "https://api.siliconflow.cn/v1",
570 "default_model": "deepseek-ai/DeepSeek-V4-Pro",
571 "env_vars": [
572 "SILICONFLOW_API_KEY"
573 ],
574 "config_key": "siliconflow_cn",
575 "aliases": [
576 "silicon-flow-cn",
577 "silicon-flow-CN",
578 "silicon_flow_cn",
579 "silicon_flow_CN",
580 "siliconflow-china"
581 ],
582 "wire_policy": "chat_completions",
583 "credential_help": {
584 "acquisition": "api_key",
585 "credential_url": "https://cloud.siliconflow.cn/account/ak",
586 "docs_url": "https://docs.siliconflow.cn/en/userguide/quickstart",
587 "guidance": "Use the China SiliconFlow console for the China endpoint."
588 },
589 "selectable": true,
590 "retired": false,
591 "secret_store_slot": "siliconflow",
592 "family": "siliconflow",
593 "web": {
594 "label": "SiliconFlow CN",
595 "order": 13
596 },
597 "selection_order": 13,
598 "tui_wire_tag": "siliconflow_cn",
599 "tui_order": 14,
600 "catalog_id": "siliconflow-CN",
601 "catalog_source_id": "siliconflow",
602 "subagent_aliases": [],
603 "table_field": "siliconflow_cn",
604 "selector_aliases": [],
605 "base_url_config_key": "siliconflow"
606 },
607 {
608 "kind": "Moonshot",
609 "id": "moonshot",
610 "label": "Moonshot/Kimi",
611 "base_url": "https://api.moonshot.ai/v1",
612 "default_model": "kimi-k2.7-code",
613 "env_vars": [
614 "MOONSHOT_API_KEY",
615 "KIMI_API_KEY"
616 ],
617 "config_key": "moonshot",
618 "aliases": [
619 "moonshot-ai",
620 "moonshotai",
621 "moonshot_ai",
622 "kimi",
623 "kimi-k2"
624 ],
625 "wire_policy": "chat_completions",
626 "credential_help": {
627 "acquisition": "api_key",
628 "credential_url": "https://platform.kimi.ai/console/api-keys",
629 "docs_url": "https://platform.kimi.ai/docs/overview",
630 "guidance": "For Moonshot's default direct API route, sign in to Kimi API Platform and create and copy an API key. A configured Kimi Code route uses a separate membership-plan console and never imports Kimi CLI credentials; first-class Kimi OAuth is not available."
631 },
632 "selectable": true,
633 "retired": false,
634 "secret_store_slot": "moonshot",
635 "family": "moonshot",
636 "web": {
637 "order": 15
638 },
639 "selection_order": 14,
640 "tui_wire_tag": "moonshot",
641 "tui_order": 16,
642 "catalog_id": "moonshot",
643 "catalog_source_id": "moonshot",
644 "subagent_aliases": [],
645 "table_field": "moonshot",
646 "selector_aliases": []
647 },
648 {
649 "kind": "Sglang",
650 "id": "sglang",
651 "label": "SGLang",
652 "base_url": "http://localhost:30000/v1",
653 "default_model": "deepseek-ai/DeepSeek-V4-Pro",
654 "env_vars": [
655 "SGLANG_API_KEY"
656 ],
657 "config_key": "sglang",
658 "aliases": [
659 "sg-lang"
660 ],
661 "wire_policy": "chat_completions",
662 "credential_help": {
663 "acquisition": "local_optional",
664 "credential_url": null,
665 "docs_url": "https://docs.sglang.ai/",
666 "guidance": "Self-hosted SGLang is keyless by default; configure a key only if your server requires one."
667 },
668 "selectable": true,
669 "retired": false,
670 "secret_store_slot": "sglang",
671 "family": "sglang",
672 "web": {
673 "order": 16
674 },
675 "selection_order": 15,
676 "tui_wire_tag": "sglang",
677 "tui_order": 17,
678 "catalog_id": "sglang",
679 "catalog_source_id": "sglang",
680 "subagent_aliases": [],
681 "table_field": "sglang",
682 "selector_aliases": []
683 },
684 {
685 "kind": "Vllm",
686 "id": "vllm",
687 "label": "vLLM",
688 "base_url": "http://localhost:8000/v1",
689 "default_model": "deepseek-ai/DeepSeek-V4-Pro",
690 "env_vars": [
691 "VLLM_API_KEY"
692 ],
693 "config_key": "vllm",
694 "aliases": [
695 "v-llm"
696 ],
697 "wire_policy": "chat_completions",
698 "credential_help": {
699 "acquisition": "local_optional",
700 "credential_url": null,
701 "docs_url": "https://docs.vllm.ai/en/stable/serving/openai_compatible_server/",
702 "guidance": "Self-hosted vLLM is keyless by default; configure a key only if your server requires one."
703 },
704 "selectable": true,
705 "retired": false,
706 "secret_store_slot": "vllm",
707 "family": "vllm",
708 "web": {
709 "order": 17
710 },
711 "selection_order": 16,
712 "tui_wire_tag": "vllm",
713 "tui_order": 18,
714 "catalog_id": "vllm",
715 "catalog_source_id": "vllm",
716 "subagent_aliases": [],
717 "table_field": "vllm",
718 "selector_aliases": []
719 },
720 {
721 "kind": "Ollama",
722 "id": "ollama",
723 "label": "Ollama",
724 "base_url": "http://localhost:11434/v1",
725 "default_model": "unknown",
726 "env_vars": [
727 "OLLAMA_API_KEY"
728 ],
729 "config_key": "ollama",
730 "aliases": [
731 "ollama-local"
732 ],
733 "wire_policy": "chat_completions",
734 "credential_help": {
735 "acquisition": "local_optional",
736 "credential_url": null,
737 "docs_url": "https://docs.ollama.com/api",
738 "guidance": "Local Ollama is keyless by default; configure a key only if your server requires one."
739 },
740 "selectable": true,
741 "retired": false,
742 "secret_store_slot": "ollama",
743 "family": "ollama",
744 "web": {
745 "order": 18
746 },
747 "selection_order": 17,
748 "tui_wire_tag": "ollama",
749 "tui_order": 19,
750 "catalog_id": "ollama",
751 "catalog_source_id": "ollama",
752 "subagent_aliases": [],
753 "table_field": "ollama",
754 "selector_aliases": []
755 },
756 {
757 "kind": "OllamaCloud",
758 "id": "ollama-cloud",
759 "label": "Ollama Cloud",
760 "base_url": "https://ollama.com/v1",
761 "default_model": "gpt-oss:120b",
762 "env_vars": [
763 "OLLAMA_CLOUD_API_KEY",
764 "OLLAMA_API_KEY"
765 ],
766 "config_key": "ollama_cloud",
767 "aliases": [
768 "ollama_cloud"
769 ],
770 "wire_policy": "chat_completions",
771 "credential_help": {
772 "acquisition": "api_key",
773 "credential_url": "https://ollama.com/settings/keys",
774 "docs_url": "https://docs.ollama.com/api/authentication",
775 "guidance": "Ollama Cloud requires an API key. Save it for the ollama-cloud provider, set OLLAMA_CLOUD_API_KEY for Pi compatibility, or set Ollama's official OLLAMA_API_KEY."
776 },
777 "selectable": true,
778 "retired": false,
779 "secret_store_slot": "ollama-cloud",
780 "family": "ollama",
781 "web": {
782 "order": 19
783 },
784 "selection_order": 18,
785 "tui_wire_tag": "ollama_cloud",
786 "tui_order": 20,
787 "catalog_id": "ollama-cloud",
788 "catalog_source_id": "ollama-cloud",
789 "subagent_aliases": [],
790 "table_field": "ollama_cloud",
791 "selector_aliases": []
792 },
793 {
794 "kind": "Huggingface",
795 "id": "huggingface",
796 "label": "Hugging Face",
797 "base_url": "https://router.huggingface.co/v1",
798 "default_model": "deepseek-ai/DeepSeek-V4-Pro",
799 "env_vars": [
800 "HUGGINGFACE_API_KEY",
801 "HF_TOKEN"
802 ],
803 "config_key": "huggingface",
804 "aliases": [
805 "hugging-face",
806 "hugging_face",
807 "hf"
808 ],
809 "wire_policy": "chat_completions",
810 "credential_help": {
811 "acquisition": "api_key",
812 "credential_url": "https://huggingface.co/settings/tokens",
813 "docs_url": "https://huggingface.co/docs/hub/en/security-tokens",
814 "guidance": "Create a scoped Hugging Face access token."
815 },
816 "selectable": true,
817 "retired": false,
818 "secret_store_slot": "huggingface",
819 "family": "huggingface",
820 "web": {
821 "order": 20
822 },
823 "selection_order": 19,
824 "tui_wire_tag": "huggingface",
825 "tui_order": 21,
826 "catalog_id": "huggingface",
827 "catalog_source_id": "huggingface",
828 "subagent_aliases": [],
829 "table_field": "huggingface",
830 "selector_aliases": []
831 },
832 {
833 "kind": "Modelscope",
834 "id": "modelscope",
835 "label": "ModelScope",
836 "base_url": "https://api-inference.modelscope.cn/v1",
837 "default_model": "Qwen/Qwen3.5-397B-A17B",
838 "env_vars": [
839 "MODELSCOPE_API_KEY"
840 ],
841 "config_key": "modelscope",
842 "aliases": [
843 "model-scope",
844 "model_scope",
845 "modelscope-cn",
846 "modelscope_cn"
847 ],
848 "wire_policy": "chat_completions",
849 "credential_help": {
850 "acquisition": "api_key",
851 "credential_url": "https://modelscope.cn/my/settings/token",
852 "docs_url": null,
853 "guidance": "Create an SDK token in ModelScope account settings."
854 },
855 "selectable": true,
856 "retired": false,
857 "secret_store_slot": "modelscope",
858 "family": "modelscope",
859 "web": {
860 "order": 39
861 },
862 "selection_order": 38,
863 "tui_wire_tag": "modelscope",
864 "tui_order": 41,
865 "catalog_id": "modelscope",
866 "catalog_source_id": "modelscope",
867 "subagent_aliases": [],
868 "table_field": "modelscope",
869 "selector_aliases": []
870 },
871 {
872 "kind": "Together",
873 "id": "together",
874 "label": "Together AI",
875 "base_url": "https://api.together.xyz/v1",
876 "default_model": "deepseek-ai/DeepSeek-V4-Pro",
877 "env_vars": [
878 "TOGETHER_API_KEY"
879 ],
880 "config_key": "together",
881 "aliases": [
882 "together-ai",
883 "together_ai",
884 "togetherai"
885 ],
886 "wire_policy": "chat_completions",
887 "credential_help": {
888 "acquisition": "api_key",
889 "credential_url": "https://api.together.ai/settings/api-keys",
890 "docs_url": "https://docs.together.ai/docs/api-keys-authentication",
891 "guidance": "Create a Together API key from account settings."
892 },
893 "selectable": true,
894 "retired": false,
895 "secret_store_slot": "together",
896 "family": "together",
897 "web": {
898 "order": 21
899 },
900 "selection_order": 20,
901 "tui_wire_tag": "together",
902 "tui_order": 22,
903 "catalog_id": "together",
904 "catalog_source_id": "together",
905 "subagent_aliases": [],
906 "table_field": "together",
907 "selector_aliases": []
908 },
909 {
910 "kind": "Qianfan",
911 "id": "qianfan",
912 "label": "Baidu Qianfan",
913 "base_url": "https://api.baiduqianfan.ai/v1",
914 "default_model": "ernie-4.0-turbo-8k",
915 "env_vars": [
916 "QIANFAN_API_KEY",
917 "BAIDU_QIANFAN_API_KEY"
918 ],
919 "config_key": "qianfan",
920 "aliases": [
921 "baidu-qianfan",
922 "baidu_qianfan",
923 "baidu"
924 ],
925 "wire_policy": "chat_completions",
926 "credential_help": {
927 "acquisition": "api_key",
928 "credential_url": "https://console.bce.baidu.com/iam/#/iam/accesslist",
929 "docs_url": "https://cloud.baidu.com/doc/qianfan/index.html",
930 "guidance": "Create Baidu Qianfan credentials in the Baidu Cloud console."
931 },
932 "selectable": true,
933 "retired": false,
934 "secret_store_slot": "qianfan",
935 "family": "qianfan",
936 "web": {
937 "order": 22
938 },
939 "selection_order": 21,
940 "tui_wire_tag": "qianfan",
941 "tui_order": 23,
942 "catalog_id": "qianfan",
943 "catalog_source_id": "qianfan",
944 "subagent_aliases": [],
945 "table_field": "qianfan",
946 "selector_aliases": []
947 },
948 {
949 "kind": "OpenaiCodex",
950 "id": "openai-codex",
951 "label": "OpenAI Codex (ChatGPT)",
952 "base_url": "https://api.openai.com/v1",
953 "default_model": "gpt-5.6",
954 "env_vars": [
955 "OPENAI_CODEX_ACCESS_TOKEN",
956 "CODEX_ACCESS_TOKEN"
957 ],
958 "config_key": "openai_codex",
959 "aliases": [
960 "openai_codex",
961 "openaicodex",
962 "codex",
963 "chatgpt",
964 "chatgpt-codex",
965 "chatgpt_codex",
966 "chatgptcodex"
967 ],
968 "wire_policy": "responses",
969 "credential_help": {
970 "acquisition": "oauth",
971 "credential_url": null,
972 "docs_url": "https://developers.openai.com/siwc/quickstart",
973 "guidance": "Sign in with ChatGPT via `codewhale auth chatgpt` to use your plan allowance with Codewhale-owned credentials. The openai API-key route has separate usage billing."
974 },
975 "selectable": true,
976 "retired": false,
977 "secret_store_slot": "openai-codex",
978 "family": "openai-codex",
979 "web": {
980 "label": "OpenAI Codex",
981 "env": "ChatGPT OAuth via `codewhale auth chatgpt`; optional consented Codex CLI credentials (OPENAI_CODEX_ACCESS_TOKEN / CODEX_ACCESS_TOKEN override)",
982 "order": 23
983 },
984 "selection_order": 22,
985 "tui_wire_tag": "openai_codex",
986 "tui_order": 24,
987 "catalog_id": "openai-codex",
988 "catalog_source_id": "openai-codex",
989 "subagent_aliases": [
990 "openai_codex",
991 "codex",
992 "chatgpt",
993 "openai_chatgpt"
994 ],
995 "table_field": "openai_codex",
996 "selector_aliases": []
997 },
998 {
999 "kind": "Anthropic",
1000 "id": "anthropic",
1001 "label": "Anthropic",
1002 "base_url": "https://api.anthropic.com",
1003 "default_model": "claude-sonnet-4-6",
1004 "env_vars": [
1005 "ANTHROPIC_API_KEY"
1006 ],
1007 "config_key": "anthropic",
1008 "aliases": [],
1009 "wire_policy": "anthropic_messages",
1010 "credential_help": {
1011 "acquisition": "api_key",
1012 "credential_url": "https://console.anthropic.com/settings/keys",
1013 "docs_url": "https://docs.anthropic.com/en/api/overview",
1014 "guidance": "Create an Anthropic API key in the Anthropic Console."
1015 },
1016 "selectable": true,
1017 "retired": false,
1018 "secret_store_slot": "anthropic",
1019 "family": "anthropic",
1020 "web": {
1021 "order": 24
1022 },
1023 "selection_order": 23,
1024 "tui_wire_tag": "anthropic",
1025 "tui_order": 25,
1026 "catalog_id": "anthropic",
1027 "catalog_source_id": "anthropic",
1028 "subagent_aliases": [
1029 "anthropic",
1030 "claude",
1031 "anthropic_api"
1032 ],
1033 "table_field": "anthropic",
1034 "selector_aliases": []
1035 },
1036 {
1037 "kind": "Openmodel",
1038 "id": "openmodel",
1039 "label": "OpenModel",
1040 "base_url": "https://api.openmodel.ai",
1041 "default_model": "deepseek-v4-flash",
1042 "env_vars": [
1043 "OPENMODEL_API_KEY"
1044 ],
1045 "config_key": "openmodel",
1046 "aliases": [
1047 "open-model",
1048 "open_model"
1049 ],
1050 "wire_policy": "anthropic_messages",
1051 "credential_help": {
1052 "acquisition": "api_key",
1053 "credential_url": "https://console.openmodel.ai/",
1054 "docs_url": "https://docs.openmodel.ai/en/docs/getting-started/authentication",
1055 "guidance": "Create an API key in the OpenModel console, then follow the authentication guide."
1056 },
1057 "selectable": true,
1058 "retired": false,
1059 "secret_store_slot": "openmodel",
1060 "family": "openmodel",
1061 "web": {
1062 "order": 25
1063 },
1064 "selection_order": 24,
1065 "tui_wire_tag": "openmodel",
1066 "tui_order": 26,
1067 "catalog_id": "openmodel",
1068 "catalog_source_id": "openmodel",
1069 "subagent_aliases": [],
1070 "table_field": "openmodel",
1071 "selector_aliases": []
1072 },
1073 {
1074 "kind": "Zai",
1075 "id": "zai",
1076 "label": "Zhipu AI / Z.ai",
1077 "base_url": "https://api.z.ai/api/coding/paas/v4",
1078 "default_model": "GLM-5.3",
1079 "env_vars": [
1080 "ZAI_API_KEY",
1081 "Z_AI_API_KEY",
1082 "ZHIPU_API_KEY",
1083 "GLM_API_KEY"
1084 ],
1085 "config_key": "zai",
1086 "aliases": [
1087 "z-ai",
1088 "z_ai",
1089 "z.ai",
1090 "zhipu",
1091 "zhipuai",
1092 "bigmodel",
1093 "big-model"
1094 ],
1095 "wire_policy": "chat_completions",
1096 "credential_help": {
1097 "acquisition": "api_key",
1098 "credential_url": "https://z.ai/model-api",
1099 "docs_url": "https://docs.z.ai/api-reference/introduction",
1100 "guidance": "Create or manage a Z.ai API key from the Model API page."
1101 },
1102 "selectable": true,
1103 "retired": false,
1104 "secret_store_slot": "zai",
1105 "family": "zai",
1106 "web": {
1107 "label": "Z.ai",
1108 "env": "ZAI_API_KEY / Z_AI_API_KEY",
1109 "order": 26
1110 },
1111 "selection_order": 25,
1112 "tui_wire_tag": "zai",
1113 "tui_order": 27,
1114 "catalog_id": "zai",
1115 "catalog_source_id": "zai",
1116 "subagent_aliases": [
1117 "zai",
1118 "z_ai",
1119 "glm",
1120 "zai_glm",
1121 "z_glm",
1122 "zhipu",
1123 "zhipuai",
1124 "bigmodel",
1125 "big_model",
1126 "zhipu_glm"
1127 ],
1128 "table_field": "zai",
1129 "selector_aliases": []
1130 },
1131 {
1132 "kind": "Stepfun",
1133 "id": "stepfun",
1134 "label": "StepFun / StepFlash",
1135 "base_url": "https://api.stepfun.ai/v1",
1136 "default_model": "step-3.7-flash",
1137 "env_vars": [
1138 "STEPFUN_API_KEY",
1139 "STEP_API_KEY"
1140 ],
1141 "config_key": "stepfun",
1142 "aliases": [
1143 "step-fun",
1144 "step_fun",
1145 "stepflash",
1146 "step-flash",
1147 "step_flash"
1148 ],
1149 "wire_policy": "chat_completions",
1150 "credential_help": {
1151 "acquisition": "api_key",
1152 "credential_url": "https://platform.stepfun.ai/",
1153 "docs_url": "https://platform.stepfun.ai/docs/en/quickstart/overview",
1154 "guidance": "Open Account Management, then Interface Keys, in the StepFun console."
1155 },
1156 "selectable": true,
1157 "retired": false,
1158 "secret_store_slot": "stepfun",
1159 "family": "stepfun",
1160 "web": {
1161 "label": "StepFun",
1162 "order": 27
1163 },
1164 "selection_order": 26,
1165 "tui_wire_tag": "stepfun",
1166 "tui_order": 28,
1167 "catalog_id": "stepfun",
1168 "catalog_source_id": "stepfun",
1169 "subagent_aliases": [],
1170 "table_field": "stepfun",
1171 "selector_aliases": []
1172 },
1173 {
1174 "kind": "Minimax",
1175 "id": "minimax",
1176 "label": "MiniMax",
1177 "base_url": "https://api.minimax.io/v1",
1178 "default_model": "MiniMax-M3",
1179 "env_vars": [
1180 "MINIMAX_API_KEY"
1181 ],
1182 "config_key": "minimax",
1183 "aliases": [
1184 "mini-max",
1185 "mini_max",
1186 "minimax-anthropic",
1187 "minimax_anthropic",
1188 "mini-max-anthropic",
1189 "mini_max_anthropic"
1190 ],
1191 "wire_policy": "chat_completions",
1192 "credential_help": {
1193 "acquisition": "api_key",
1194 "credential_url": "https://platform.minimax.io/user-center/basic-information/interface-key",
1195 "docs_url": "https://platform.minimax.io/docs/api-reference/api-overview",
1196 "guidance": "Create a MiniMax API key or subscription-plan key in the user center."
1197 },
1198 "selectable": true,
1199 "retired": false,
1200 "secret_store_slot": "minimax",
1201 "family": "minimax",
1202 "web": {
1203 "order": 28
1204 },
1205 "selection_order": 27,
1206 "tui_wire_tag": "minimax",
1207 "tui_order": 29,
1208 "catalog_id": "minimax",
1209 "catalog_source_id": "minimax",
1210 "subagent_aliases": [],
1211 "table_field": "minimax",
1212 "selector_aliases": []
1213 },
1214 {
1215 "kind": "MinimaxAnthropic",
1216 "id": "minimax-anthropic",
1217 "label": "MiniMax",
1218 "base_url": "https://api.minimax.io/anthropic",
1219 "default_model": "MiniMax-M3",
1220 "env_vars": [
1221 "MINIMAX_API_KEY"
1222 ],
1223 "config_key": "minimax_anthropic",
1224 "aliases": [],
1225 "wire_policy": "anthropic_messages",
1226 "credential_help": {
1227 "acquisition": "api_key",
1228 "credential_url": "https://platform.minimax.io/user-center/basic-information/interface-key",
1229 "docs_url": "https://platform.minimax.io/docs/api-reference/api-overview",
1230 "guidance": "Create a MiniMax API key or subscription-plan key in the user center."
1231 },
1232 "selectable": false,
1233 "retired": false,
1234 "secret_store_slot": "minimax-anthropic",
1235 "family": "minimax",
1236 "web": {
1237 "label": "MiniMax (Anthropic-compatible)",
1238 "order": 29
1239 },
1240 "selection_order": null,
1241 "tui_wire_tag": "minimax_anthropic",
1242 "tui_order": 30,
1243 "catalog_id": "minimax",
1244 "catalog_source_id": "minimax-anthropic",
1245 "subagent_aliases": [],
1246 "table_field": "minimax_anthropic",
1247 "selector_aliases": [
1248 "minimax-anthropic",
1249 "minimax_anthropic",
1250 "mini-max-anthropic",
1251 "mini_max_anthropic"
1252 ]
1253 },
1254 {
1255 "kind": "Deepinfra",
1256 "id": "deepinfra",
1257 "label": "DeepInfra",
1258 "base_url": "https://api.deepinfra.com/v1/openai",
1259 "default_model": "deepseek-ai/DeepSeek-V4-Pro",
1260 "env_vars": [
1261 "DEEPINFRA_API_KEY",
1262 "DEEPINFRA_TOKEN"
1263 ],
1264 "config_key": "deepinfra",
1265 "aliases": [
1266 "deep-infra",
1267 "deep_infra"
1268 ],
1269 "wire_policy": "chat_completions",
1270 "credential_help": {
1271 "acquisition": "api_key",
1272 "credential_url": "https://deepinfra.com/dash/api_keys",
1273 "docs_url": "https://docs.deepinfra.com/quickstart",
1274 "guidance": "Create a DeepInfra API key from the dashboard."
1275 },
1276 "selectable": true,
1277 "retired": false,
1278 "secret_store_slot": "deepinfra",
1279 "family": "deepinfra",
1280 "web": {
1281 "order": 30
1282 },
1283 "selection_order": 28,
1284 "tui_wire_tag": "deepinfra",
1285 "tui_order": 31,
1286 "catalog_id": "deepinfra",
1287 "catalog_source_id": "deepinfra",
1288 "subagent_aliases": [],
1289 "table_field": "deepinfra",
1290 "selector_aliases": []
1291 },
1292 {
1293 "kind": "Sakana",
1294 "id": "sakana",
1295 "label": "Sakana AI (Fugu)",
1296 "base_url": "https://api.sakana.ai/v1",
1297 "default_model": "fugu",
1298 "env_vars": [
1299 "FUGU_API_KEY",
1300 "SAKANA_API_KEY"
1301 ],
1302 "config_key": "sakana",
1303 "aliases": [
1304 "sakana-ai",
1305 "sakana_ai",
1306 "fugu"
1307 ],
1308 "wire_policy": "chat_completions",
1309 "credential_help": {
1310 "acquisition": "api_key",
1311 "credential_url": "https://console.sakana.ai/api-keys",
1312 "docs_url": "https://console.sakana.ai/get-started",
1313 "guidance": "Create a Sakana AI key in the console and copy it when shown."
1314 },
1315 "selectable": true,
1316 "retired": false,
1317 "secret_store_slot": "sakana",
1318 "family": "sakana",
1319 "web": {
1320 "label": "Sakana AI",
1321 "order": 31
1322 },
1323 "selection_order": 29,
1324 "tui_wire_tag": "sakana",
1325 "tui_order": 32,
1326 "catalog_id": "sakana",
1327 "catalog_source_id": "sakana",
1328 "subagent_aliases": [],
1329 "table_field": "sakana",
1330 "selector_aliases": []
1331 },
1332 {
1333 "kind": "LongCat",
1334 "id": "longcat",
1335 "label": "Meituan LongCat",
1336 "base_url": "https://api.longcat.chat/openai/v1",
1337 "default_model": "LongCat-2.0",
1338 "env_vars": [
1339 "LONGCAT_API_KEY"
1340 ],
1341 "config_key": "longcat",
1342 "aliases": [
1343 "long-cat",
1344 "meituan-longcat",
1345 "meituan"
1346 ],
1347 "wire_policy": "chat_completions",
1348 "credential_help": {
1349 "acquisition": "api_key",
1350 "credential_url": "https://longcat.chat/platform",
1351 "docs_url": "https://longcat.chat/platform",
1352 "guidance": "Sign up on the LongCat platform and create an API key."
1353 },
1354 "selectable": true,
1355 "retired": false,
1356 "secret_store_slot": "longcat",
1357 "family": "longcat",
1358 "web": {
1359 "order": 32
1360 },
1361 "selection_order": 30,
1362 "tui_wire_tag": "long_cat",
1363 "tui_order": 33,
1364 "catalog_id": "longcat",
1365 "catalog_source_id": "longcat",
1366 "subagent_aliases": [
1367 "longcat",
1368 "long_cat",
1369 "meituan_longcat",
1370 "meituan"
1371 ],
1372 "table_field": "longcat",
1373 "selector_aliases": []
1374 },
1375 {
1376 "kind": "OpencodeGo",
1377 "id": "opencode-go",
1378 "label": "OpenCode Go",
1379 "base_url": "https://opencode.ai/zen/go/v1",
1380 "default_model": "deepseek-v4-pro",
1381 "env_vars": [
1382 "OPENCODE_GO_API_KEY"
1383 ],
1384 "config_key": "opencode_go",
1385 "aliases": [
1386 "opencode_go",
1387 "opencodego"
1388 ],
1389 "wire_policy": "model_aware",
1390 "credential_help": {
1391 "acquisition": "api_key",
1392 "credential_url": "https://opencode.ai/zen/",
1393 "docs_url": "https://opencode.ai/docs/go/",
1394 "guidance": "Create or copy an OpenCode Go subscription key from OpenCode Zen."
1395 },
1396 "selectable": true,
1397 "retired": false,
1398 "secret_store_slot": "opencode-go",
1399 "family": "opencode-go",
1400 "web": {
1401 "order": 33
1402 },
1403 "selection_order": 31,
1404 "tui_wire_tag": "opencode_go",
1405 "tui_order": 34,
1406 "catalog_id": "opencode-go",
1407 "catalog_source_id": "opencode-go",
1408 "subagent_aliases": [
1409 "opencode_go",
1410 "opencodego"
1411 ],
1412 "table_field": "opencode_go",
1413 "selector_aliases": []
1414 },
1415 {
1416 "kind": "OpencodeZen",
1417 "id": "opencode-zen",
1418 "label": "OpenCode Zen",
1419 "base_url": "https://opencode.ai/zen/v1",
1420 "default_model": "gpt-5.6",
1421 "env_vars": [
1422 "OPENCODE_ZEN_API_KEY",
1423 "OPENCODE_API_KEY"
1424 ],
1425 "config_key": "opencode_zen",
1426 "aliases": [
1427 "opencode_zen",
1428 "opencodezen",
1429 "zen",
1430 "opencode"
1431 ],
1432 "wire_policy": "model_aware",
1433 "credential_help": {
1434 "acquisition": "api_key",
1435 "credential_url": "https://opencode.ai/zen/",
1436 "docs_url": "https://opencode.ai/docs/zen/",
1437 "guidance": "Create or copy an OpenCode Zen API key from OpenCode Zen."
1438 },
1439 "selectable": true,
1440 "retired": false,
1441 "secret_store_slot": "opencode-zen",
1442 "family": "opencode-zen",
1443 "web": {
1444 "order": 34
1445 },
1446 "selection_order": 32,
1447 "tui_wire_tag": "opencode_zen",
1448 "tui_order": 35,
1449 "catalog_id": "opencode-zen",
1450 "catalog_source_id": "opencode-zen",
1451 "subagent_aliases": [
1452 "opencode_zen",
1453 "opencodezen",
1454 "zen",
1455 "opencode"
1456 ],
1457 "table_field": "opencode_zen",
1458 "selector_aliases": []
1459 },
1460 {
1461 "kind": "Meta",
1462 "id": "meta",
1463 "label": "Meta Model API",
1464 "base_url": "https://api.meta.ai/v1",
1465 "default_model": "muse-spark-1.2",
1466 "env_vars": [
1467 "META_MODEL_API_KEY",
1468 "MODEL_API_KEY"
1469 ],
1470 "config_key": "meta",
1471 "aliases": [
1472 "meta-ai",
1473 "meta_ai",
1474 "meta-model-api",
1475 "meta_model_api",
1476 "muse",
1477 "muse-spark"
1478 ],
1479 "wire_policy": "chat_completions",
1480 "credential_help": {
1481 "acquisition": "api_key",
1482 "credential_url": "https://developer.meta.com/ai/",
1483 "docs_url": "https://developer.meta.com/ai/resources/blog/build-with-muse-spark/",
1484 "guidance": "Use the Meta developer portal to obtain Model API access and a key."
1485 },
1486 "selectable": true,
1487 "retired": false,
1488 "secret_store_slot": "meta",
1489 "family": "meta",
1490 "web": {
1491 "order": 35
1492 },
1493 "selection_order": 33,
1494 "tui_wire_tag": "meta",
1495 "tui_order": 36,
1496 "catalog_id": "meta",
1497 "catalog_source_id": "meta",
1498 "subagent_aliases": [
1499 "meta",
1500 "meta_ai",
1501 "meta_model_api",
1502 "muse",
1503 "muse_spark"
1504 ],
1505 "table_field": "meta",
1506 "selector_aliases": []
1507 },
1508 {
1509 "kind": "Xai",
1510 "id": "xai",
1511 "label": "xAI",
1512 "base_url": "https://api.x.ai/v1",
1513 "default_model": "grok-4.6",
1514 "env_vars": [
1515 "XAI_API_KEY"
1516 ],
1517 "config_key": "xai",
1518 "aliases": [
1519 "x-ai",
1520 "x_ai",
1521 "grok"
1522 ],
1523 "wire_policy": "chat_completions",
1524 "credential_help": {
1525 "acquisition": "api_key_or_oauth",
1526 "credential_url": "https://console.x.ai/",
1527 "docs_url": null,
1528 "guidance": "Use an xAI Console API key or Codewhale's native device login. Reading an existing Grok CLI file requires explicit provider-scoped read-only consent."
1529 },
1530 "selectable": true,
1531 "retired": false,
1532 "secret_store_slot": "xai",
1533 "family": "xai",
1534 "web": {
1535 "order": 36
1536 },
1537 "selection_order": 34,
1538 "tui_wire_tag": "xai",
1539 "tui_order": 37,
1540 "catalog_id": "xai",
1541 "catalog_source_id": "xai",
1542 "subagent_aliases": [
1543 "xai",
1544 "x_ai",
1545 "grok"
1546 ],
1547 "table_field": "xai",
1548 "selector_aliases": []
1549 },
1550 {
1551 "kind": "Mistral",
1552 "id": "mistral",
1553 "label": "Mistral AI",
1554 "base_url": "https://api.mistral.ai/v1",
1555 "default_model": "mistral-code-latest",
1556 "env_vars": [
1557 "MISTRAL_API_KEY"
1558 ],
1559 "config_key": "mistral",
1560 "aliases": [
1561 "mistral-ai",
1562 "mistral_ai",
1563 "mistralai",
1564 "la-plateforme",
1565 "la_plateforme"
1566 ],
1567 "wire_policy": "chat_completions",
1568 "credential_help": {
1569 "acquisition": "api_key",
1570 "credential_url": "https://console.mistral.ai/api-keys",
1571 "docs_url": "https://docs.mistral.ai/",
1572 "guidance": "Create a Mistral API key in the Mistral Console (la Plateforme)."
1573 },
1574 "selectable": true,
1575 "retired": false,
1576 "secret_store_slot": "mistral",
1577 "family": "mistral",
1578 "web": {
1579 "order": 37
1580 },
1581 "selection_order": 35,
1582 "tui_wire_tag": "mistral",
1583 "tui_order": 38,
1584 "catalog_id": "mistral",
1585 "catalog_source_id": "mistral",
1586 "subagent_aliases": [],
1587 "table_field": "mistral",
1588 "selector_aliases": []
1589 },
1590 {
1591 "kind": "Telecomjs",
1592 "id": "telecomjs",
1593 "label": "TelecomJS TokenHub",
1594 "base_url": "https://aigw.telecomjs.com/v1",
1595 "default_model": "deepseek-v4-pro",
1596 "env_vars": [
1597 "TELECOMJS_API_KEY"
1598 ],
1599 "config_key": "telecomjs",
1600 "aliases": [
1601 "telecom-js",
1602 "telecom_js",
1603 "telecomjs-cn",
1604 "tokenhub"
1605 ],
1606 "wire_policy": "chat_completions",
1607 "credential_help": {
1608 "acquisition": "api_key",
1609 "credential_url": "https://aigw.telecomjs.com/",
1610 "docs_url": null,
1611 "guidance": "Create a TelecomJS TokenHub API key, then use the provider's live model catalog to discover the models available to that key."
1612 },
1613 "selectable": true,
1614 "retired": false,
1615 "secret_store_slot": "telecomjs",
1616 "family": "telecomjs",
1617 "web": {
1618 "order": 40
1619 },
1620 "selection_order": 36,
1621 "tui_wire_tag": "telecomjs",
1622 "tui_order": 42,
1623 "catalog_id": "telecomjs",
1624 "catalog_source_id": "telecomjs",
1625 "subagent_aliases": [],
1626 "table_field": "telecomjs",
1627 "selector_aliases": []
1628 },
1629 {
1630 "kind": "Edenai",
1631 "id": "edenai",
1632 "label": "Eden AI",
1633 "base_url": "https://api.edenai.run/v3",
1634 "default_model": "deepseek/deepseek-v4-pro",
1635 "env_vars": [
1636 "EDENAI_API_KEY"
1637 ],
1638 "config_key": "edenai",
1639 "aliases": [
1640 "eden-ai",
1641 "eden_ai"
1642 ],
1643 "wire_policy": "chat_completions",
1644 "credential_help": {
1645 "acquisition": "api_key",
1646 "credential_url": "https://app.edenai.run/settings/api-keys",
1647 "docs_url": "https://www.edenai.co/docs",
1648 "guidance": "Create an Eden AI API key from the Eden AI dashboard, then select models by their provider/model namespaced id."
1649 },
1650 "selectable": true,
1651 "retired": false,
1652 "secret_store_slot": "edenai",
1653 "family": "edenai",
1654 "web": {
1655 "order": 41
1656 },
1657 "selection_order": 40,
1658 "tui_wire_tag": "edenai",
1659 "tui_order": 43,
1660 "catalog_id": "edenai",
1661 "catalog_source_id": "edenai",
1662 "subagent_aliases": [
1663 "edenai",
1664 "eden_ai"
1665 ],
1666 "table_field": "edenai",
1667 "selector_aliases": []
1668 },
1669 {
1670 "kind": "Zenmux",
1671 "id": "zenmux",
1672 "label": "ZenMux",
1673 "base_url": "https://zenmux.ai/api/v1",
1674 "default_model": "deepseek/deepseek-v4.1-flash",
1675 "env_vars": [
1676 "ZENMUX_API_KEY"
1677 ],
1678 "config_key": "zenmux",
1679 "aliases": [
1680 "zen-mux",
1681 "zen_mux"
1682 ],
1683 "wire_policy": "chat_completions",
1684 "credential_help": {
1685 "acquisition": "api_key",
1686 "credential_url": "https://zenmux.ai/platform/pay-as-you-go",
1687 "docs_url": "https://zenmux.ai/docs/",
1688 "guidance": "Create a ZenMux API key from the Pay As You Go management page, then select models by their provider/model namespaced id. The catalog at https://zenmux.ai/api/v1/models is keyless-readable."
1689 },
1690 "selectable": true,
1691 "retired": false,
1692 "secret_store_slot": "zenmux",
1693 "family": "zenmux",
1694 "web": {
1695 "order": 42
1696 },
1697 "selection_order": 41,
1698 "tui_wire_tag": "zenmux",
1699 "tui_order": 44,
1700 "catalog_id": "zenmux",
1701 "catalog_source_id": "zenmux",
1702 "subagent_aliases": [
1703 "zenmux",
1704 "zen_mux"
1705 ],
1706 "table_field": "zenmux",
1707 "selector_aliases": []
1708 },
1709 {
1710 "kind": "Csdn",
1711 "id": "csdn",
1712 "label": "CSDN",
1713 "base_url": "https://ai.csdn.net/api/model/v1",
1714 "default_model": "glm_for_coding",
1715 "env_vars": [
1716 "CSDN_API_KEY"
1717 ],
1718 "config_key": "csdn",
1719 "aliases": [
1720 "csdn-ai",
1721 "csdn_ai",
1722 "csdn-coding-plan",
1723 "csdn_coding_plan",
1724 "starmap"
1725 ],
1726 "wire_policy": "chat_completions",
1727 "credential_help": {
1728 "acquisition": "api_key",
1729 "credential_url": "https://ai.csdn.net/workbench/api-key",
1730 "docs_url": "https://ai.csdn.net/coding-plan",
1731 "guidance": "Create an API key in the CSDN console — choose the Coding Plan key type so glm_for_coding calls bill against plan quota; a general key bills metered."
1732 },
1733 "selectable": true,
1734 "retired": false,
1735 "secret_store_slot": "csdn",
1736 "family": "csdn",
1737 "web": {
1738 "label": "CSDN 星图 (Starmap)",
1739 "order": 43
1740 },
1741 "selection_order": 42,
1742 "tui_wire_tag": "csdn",
1743 "tui_order": 45,
1744 "catalog_id": "csdn",
1745 "catalog_source_id": "csdn",
1746 "subagent_aliases": [
1747 "csdn",
1748 "csdn_ai",
1749 "csdn_coding_plan",
1750 "starmap"
1751 ],
1752 "table_field": "csdn",
1753 "selector_aliases": []
1754 },
1755 {
1756 "kind": "Concentrate",
1757 "id": "concentrate",
1758 "label": "Concentrate",
1759 "base_url": "https://api.concentrate.ai/v1",
1760 "default_model": "deepseek-v4-pro",
1761 "env_vars": [
1762 "CONCENTRATE_API_KEY"
1763 ],
1764 "config_key": "concentrate",
1765 "aliases": [
1766 "concentrate-ai",
1767 "concentrate_ai",
1768 "concentrateai"
1769 ],
1770 "wire_policy": "responses",
1771 "credential_help": {
1772 "acquisition": "api_key",
1773 "credential_url": "https://concentrate.ai/",
1774 "docs_url": "https://concentrate.ai/docs/api-reference/introduction",
1775 "guidance": "Create a Universal API key in the Concentrate dashboard (API Keys → Create API Key). Codewhale sends it only to the Concentrate base URL and never stores or forwards it elsewhere."
1776 },
1777 "selectable": true,
1778 "retired": false,
1779 "secret_store_slot": "concentrate",
1780 "family": "concentrate",
1781 "web": {
1782 "order": 44
1783 },
1784 "selection_order": 43,
1785 "tui_wire_tag": "concentrate",
1786 "tui_order": 46,
1787 "catalog_id": "concentrate",
1788 "catalog_source_id": "concentrate",
1789 "subagent_aliases": [
1790 "concentrate",
1791 "concentrate_ai",
1792 "concentrateai"
1793 ],
1794 "table_field": "concentrate",
1795 "selector_aliases": []
1796 },
1797 {
1798 "kind": "Codewhale",
1799 "id": "codewhale",
1800 "label": "Codewhale",
1801 "base_url": "https://api.codewhale.net/v1",
1802 "default_model": "deepseek/deepseek-v4-pro",
1803 "env_vars": [
1804 "CODEWHALE_API_KEY"
1805 ],
1806 "config_key": "codewhale",
1807 "aliases": [
1808 "codewhale-api",
1809 "codewhale_api",
1810 "cw-api",
1811 "codewhale-cloud"
1812 ],
1813 "wire_policy": "model_aware",
1814 "credential_help": {
1815 "acquisition": "api_key",
1816 "credential_url": "https://app.codewhale.net/settings?section=api",
1817 "docs_url": "https://app.codewhale.net/settings?section=api",
1818 "guidance": "Create an API key with the models:infer scope at https://app.codewhale.net/settings?section=api"
1819 },
1820 "selectable": true,
1821 "retired": false,
1822 "secret_store_slot": "codewhale",
1823 "family": "codewhale",
1824 "web": {
1825 "order": 45
1826 },
1827 "selection_order": 44,
1828 "tui_wire_tag": "codewhale",
1829 "tui_order": 47,
1830 "catalog_id": "codewhale",
1831 "catalog_source_id": "codewhale",
1832 "subagent_aliases": [
1833 "codewhale",
1834 "codewhale_api",
1835 "cw_api",
1836 "codewhale_cloud"
1837 ],
1838 "table_field": "codewhale",
1839 "selector_aliases": []
1840 },
1841 {
1842 "kind": "ModelstudioTokenPlan",
1843 "id": "modelstudio-token-plan",
1844 "label": "Alibaba Cloud Model Studio",
1845 "base_url": "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
1846 "default_model": "qwen3.8-max",
1847 "env_vars": [
1848 "MODELSTUDIO_API_KEY",
1849 "DASHSCOPE_API_KEY"
1850 ],
1851 "config_key": "modelstudio_token_plan",
1852 "aliases": [
1853 "modelstudio-token-plan",
1854 "modelstudio_token_plan",
1855 "modelstudio",
1856 "alibaba-token-plan",
1857 "dashscope-token-plan",
1858 "alibaba",
1859 "dashscope",
1860 "modelstudio-coding-plan",
1861 "modelstudio_coding_plan",
1862 "alibaba-coding-plan",
1863 "dashscope-coding-plan",
1864 "modelstudio-token-plan-anthropic",
1865 "modelstudio_token_plan_anthropic",
1866 "alibaba-token-plan-anthropic",
1867 "modelstudio-coding-plan-anthropic",
1868 "modelstudio_coding_plan_anthropic",
1869 "alibaba-coding-plan-anthropic"
1870 ],
1871 "wire_policy": "chat_completions",
1872 "credential_help": {
1873 "acquisition": "api_key",
1874 "credential_url": "https://bailian.console.aliyun.com/",
1875 "docs_url": "https://www.alibabacloud.com/help/en/model-studio/",
1876 "guidance": "Sign in to Alibaba Cloud Model Studio (Bailian console), create or copy an API key, and select the plan endpoint matching your subscription (Token Plan or Coding Plan)."
1877 },
1878 "selectable": true,
1879 "retired": false,
1880 "secret_store_slot": "modelstudio-token-plan",
1881 "family": "alibaba-modelstudio",
1882 "web": {
1883 "label": "Model Studio Token Plan",
1884 "env": "MODELSTUDIO_API_KEY",
1885 "order": 46
1886 },
1887 "selection_order": 37,
1888 "tui_wire_tag": "modelstudio_token_plan",
1889 "tui_order": 48,
1890 "catalog_id": "modelstudio-token-plan",
1891 "catalog_source_id": "modelstudio-token-plan",
1892 "subagent_aliases": [],
1893 "table_field": "modelstudio_token_plan",
1894 "selector_aliases": []
1895 },
1896 {
1897 "kind": "ModelstudioTokenPlanAnthropic",
1898 "id": "modelstudio-token-plan-anthropic",
1899 "label": "Alibaba Cloud Model Studio",
1900 "base_url": "https://token-plan.ap-southeast-1.maas.aliyuncs.com/apps/anthropic",
1901 "default_model": "qwen3.8-max",
1902 "env_vars": [
1903 "MODELSTUDIO_API_KEY",
1904 "DASHSCOPE_API_KEY"
1905 ],
1906 "config_key": "modelstudio_token_plan_anthropic",
1907 "aliases": [],
1908 "wire_policy": "anthropic_messages",
1909 "credential_help": {
1910 "acquisition": "api_key",
1911 "credential_url": "https://bailian.console.aliyun.com/",
1912 "docs_url": "https://www.alibabacloud.com/help/en/model-studio/",
1913 "guidance": "Sign in to Alibaba Cloud Model Studio (Bailian console), create or copy an API key, and select the plan endpoint matching your subscription (Token Plan or Coding Plan)."
1914 },
1915 "selectable": false,
1916 "retired": false,
1917 "secret_store_slot": "modelstudio-token-plan",
1918 "family": "alibaba-modelstudio",
1919 "web": {
1920 "label": "Model Studio Token Plan (Anthropic-compatible)",
1921 "env": "MODELSTUDIO_API_KEY",
1922 "order": 47
1923 },
1924 "selection_order": null,
1925 "tui_wire_tag": "modelstudio_token_plan_anthropic",
1926 "tui_order": 49,
1927 "catalog_id": "modelstudio-token-plan",
1928 "catalog_source_id": "modelstudio-token-plan-anthropic",
1929 "subagent_aliases": [],
1930 "table_field": "modelstudio_token_plan_anthropic",
1931 "selector_aliases": []
1932 },
1933 {
1934 "kind": "ModelstudioCodingPlan",
1935 "id": "modelstudio-coding-plan",
1936 "label": "Alibaba Cloud Model Studio",
1937 "base_url": "https://coding-intl.dashscope.aliyuncs.com/v1",
1938 "default_model": "qwen3.8-max",
1939 "env_vars": [
1940 "MODELSTUDIO_API_KEY",
1941 "DASHSCOPE_API_KEY"
1942 ],
1943 "config_key": "modelstudio_coding_plan",
1944 "aliases": [],
1945 "wire_policy": "chat_completions",
1946 "credential_help": {
1947 "acquisition": "api_key",
1948 "credential_url": "https://bailian.console.aliyun.com/",
1949 "docs_url": "https://www.alibabacloud.com/help/en/model-studio/",
1950 "guidance": "Sign in to Alibaba Cloud Model Studio (Bailian console), create or copy an API key, and select the plan endpoint matching your subscription (Token Plan or Coding Plan)."
1951 },
1952 "selectable": false,
1953 "retired": false,
1954 "secret_store_slot": "modelstudio-token-plan",
1955 "family": "alibaba-modelstudio",
1956 "web": {
1957 "label": "Model Studio Coding Plan",
1958 "env": "MODELSTUDIO_API_KEY",
1959 "order": 48
1960 },
1961 "selection_order": null,
1962 "tui_wire_tag": "modelstudio_coding_plan",
1963 "tui_order": 50,
1964 "catalog_id": "modelstudio-token-plan",
1965 "catalog_source_id": "modelstudio-coding-plan",
1966 "subagent_aliases": [],
1967 "table_field": "modelstudio_coding_plan",
1968 "selector_aliases": []
1969 },
1970 {
1971 "kind": "ModelstudioCodingPlanAnthropic",
1972 "id": "modelstudio-coding-plan-anthropic",
1973 "label": "Alibaba Cloud Model Studio",
1974 "base_url": "https://coding-intl.dashscope.aliyuncs.com/apps/anthropic",
1975 "default_model": "qwen3.8-max",
1976 "env_vars": [
1977 "MODELSTUDIO_API_KEY",
1978 "DASHSCOPE_API_KEY"
1979 ],
1980 "config_key": "modelstudio_coding_plan_anthropic",
1981 "aliases": [],
1982 "wire_policy": "anthropic_messages",
1983 "credential_help": {
1984 "acquisition": "api_key",
1985 "credential_url": "https://bailian.console.aliyun.com/",
1986 "docs_url": "https://www.alibabacloud.com/help/en/model-studio/",
1987 "guidance": "Sign in to Alibaba Cloud Model Studio (Bailian console), create or copy an API key, and select the plan endpoint matching your subscription (Token Plan or Coding Plan)."
1988 },
1989 "selectable": false,
1990 "retired": false,
1991 "secret_store_slot": "modelstudio-token-plan",
1992 "family": "alibaba-modelstudio",
1993 "web": {
1994 "label": "Model Studio Coding Plan (Anthropic-compatible)",
1995 "env": "MODELSTUDIO_API_KEY",
1996 "order": 49
1997 },
1998 "selection_order": null,
1999 "tui_wire_tag": "modelstudio_coding_plan_anthropic",
2000 "tui_order": 51,
2001 "catalog_id": "modelstudio-token-plan",
2002 "catalog_source_id": "modelstudio-coding-plan-anthropic",
2003 "subagent_aliases": [],
2004 "table_field": "modelstudio_coding_plan_anthropic",
2005 "selector_aliases": []
2006 },
2007 {
2008 "kind": "Google",
2009 "id": "google",
2010 "label": "Google Gemini",
2011 "base_url": "https://generativelanguage.googleapis.com/v1beta/openai/",
2012 "default_model": "gemini-3.1-pro-preview",
2013 "env_vars": [
2014 "GOOGLE_API_KEY",
2015 "GEMINI_API_KEY"
2016 ],
2017 "config_key": "google",
2018 "aliases": [
2019 "google-gemini",
2020 "google_gemini",
2021 "gemini",
2022 "google-ai",
2023 "google_ai",
2024 "ai-studio",
2025 "aistudio"
2026 ],
2027 "wire_policy": "chat_completions",
2028 "credential_help": {
2029 "acquisition": "api_key",
2030 "credential_url": "https://aistudio.google.com/apikey",
2031 "docs_url": "https://ai.google.dev/gemini-api/docs/openai",
2032 "guidance": "Create a Google AI Studio API key. Codewhale uses the official Gemini OpenAI-compatible endpoint and never reads Google OAuth files."
2033 },
2034 "selectable": true,
2035 "retired": false,
2036 "secret_store_slot": "google",
2037 "family": "google",
2038 "web": {
2039 "order": 38
2040 },
2041 "selection_order": 39,
2042 "tui_wire_tag": "google",
2043 "tui_order": 39,
2044 "catalog_id": "google",
2045 "catalog_source_id": "google",
2046 "subagent_aliases": [],
2047 "table_field": "google",
2048 "selector_aliases": []
2049 },
2050 {
2051 "kind": "Antigravity",
2052 "id": "antigravity",
2053 "label": "Antigravity (legacy, disabled)",
2054 "base_url": "https://legacy-antigravity.invalid",
2055 "default_model": "legacy-antigravity-disabled",
2056 "env_vars": [],
2057 "config_key": "antigravity",
2058 "aliases": [
2059 "agy"
2060 ],
2061 "wire_policy": "chat_completions",
2062 "credential_help": {
2063 "acquisition": "configuration",
2064 "credential_url": null,
2065 "docs_url": null,
2066 "guidance": "Legacy configuration only; this route is disabled. Run `codewhale auth clear --provider antigravity` to clear only Codewhale-owned legacy state, then use provider `google` with `GEMINI_API_KEY` for Gemini."
2067 },
2068 "selectable": false,
2069 "retired": true,
2070 "secret_store_slot": "antigravity",
2071 "family": "antigravity",
2072 "selection_order": null,
2073 "tui_wire_tag": "antigravity",
2074 "tui_order": 40,
2075 "catalog_id": "antigravity",
2076 "catalog_source_id": "antigravity",
2077 "subagent_aliases": [],
2078 "table_field": "antigravity",
2079 "selector_aliases": []
2080 },
2081 {
2082 "kind": "Custom",
2083 "id": "custom",
2084 "label": "Custom (OpenAI-compatible)",
2085 "base_url": "http://localhost/v1",
2086 "default_model": "custom-model",
2087 "env_vars": [],
2088 "config_key": "custom",
2089 "aliases": [],
2090 "wire_policy": "chat_completions",
2091 "credential_help": {
2092 "acquisition": "configuration",
2093 "credential_url": null,
2094 "docs_url": null,
2095 "guidance": "Set this custom provider's base_url and api_key_env or api_key in configuration; no canonical vendor credential page exists."
2096 },
2097 "selectable": true,
2098 "retired": false,
2099 "secret_store_slot": "custom",
2100 "family": "custom",
2101 "selection_order": 45,
2102 "tui_wire_tag": "custom",
2103 "tui_order": 52,
2104 "catalog_id": "custom",
2105 "catalog_source_id": "custom",
2106 "subagent_aliases": [],
2107 "table_field": "custom",
2108 "selector_aliases": []
2109 }
2110 ],
2111 "schema": "codewhale.provider_descriptors.v2",
2112 "note": "One built-in and compatible-host metadata owner. Defaults are bootstrap hints; model offerings and route/auth behavior retain their existing Rust and live-catalog authorities.",
2113 "descriptors": [
2114 {
2115 "id": "aicraft",
2116 "label": "AICraft",
2117 "wire": "openai-compatible",
2118 "base_url": "https://aicraftapi.com/v1",
2119 "api_key_env": "AICRAFT_API_KEY",
2120 "default_model": "claude-4.6-sonnet",
2121 "discovery": "models_endpoint",
2122 "docs_url": "https://aicraftapi.com/docs.html#codewhale",
2123 "credential_url": "https://aicraftapi.com/dashboard.html",
2124 "guidance": "OpenAI-compatible host (Chat Completions + GET /v1/models). Live /v1/models is the model authority: the roster spans DeepSeek, Claude, Gemini, Qwen, GLM, MiniMax and Doubao ids. Store AICRAFT_API_KEY, not a raw key.",
2125 "aliases": [
2126 "ai-craft",
2127 "ai_craft"
2128 ]
2129 },
2130 {
2131 "id": "baseten",
2132 "label": "Baseten",
2133 "wire": "openai-compatible",
2134 "base_url": "https://inference.baseten.co/v1",
2135 "api_key_env": "BASETEN_API_KEY",
2136 "default_model": "deepseek-ai/DeepSeek-V4-Pro",
2137 "discovery": "models_endpoint",
2138 "docs_url": "https://docs.baseten.co/inference/model-apis/overview",
2139 "credential_url": "https://app.baseten.co/settings/api_keys",
2140 "aliases": [
2141 "base-ten",
2142 "base_ten"
2143 ]
2144 },
2145 {
2146 "id": "cerebras",
2147 "label": "Cerebras",
2148 "wire": "openai-compatible",
2149 "base_url": "https://api.cerebras.ai/v1",
2150 "api_key_env": "CEREBRAS_API_KEY",
2151 "default_model": "llama-3.3-70b",
2152 "discovery": "models_endpoint",
2153 "docs_url": "https://inference-docs.cerebras.ai/quickstart",
2154 "credential_url": "https://cloud.cerebras.ai"
2155 },
2156 {
2157 "id": "cheaperinference",
2158 "label": "Cheaper Inference",
2159 "wire": "openai-compatible",
2160 "base_url": "https://api.cheaperinference.com/v1",
2161 "api_key_env": "CHEAPER_INFERENCE_API_KEY",
2162 "default_model": "gpt-5.4-mini",
2163 "discovery": "models_endpoint",
2164 "docs_url": "https://cheaperinference.com/docs",
2165 "credential_url": "https://cheaperinference.com/signup",
2166 "guidance": "OpenAI-compatible host (Chat Completions + GET /v1/models). Live /v1/models is the model authority: ids are bare, such as gpt-5.4-mini, claude-sonnet-5 and gemini-3.1-pro. Store CHEAPER_INFERENCE_API_KEY, not a raw key.",
2167 "aliases": [
2168 "cheaper-inference"
2169 ]
2170 },
2171 {
2172 "id": "command-code",
2173 "label": "Command Code",
2174 "wire": "openai-compatible",
2175 "base_url": "https://api.commandcode.ai/provider/v1",
2176 "api_key_env": "COMMAND_CODE_API_KEY",
2177 "default_model": "deepseek/deepseek-v4-flash",
2178 "discovery": "models_endpoint",
2179 "docs_url": "https://commandcode.ai/docs/provider",
2180 "credential_url": "https://commandcode.ai/provider",
2181 "guidance": "Published Provider API (OpenAI Chat Completions + GET /v1/models). Do not import the Command Code CLI login. Store COMMAND_CODE_API_KEY, not a raw key.",
2182 "aliases": [
2183 "commandcode",
2184 "cmd-code"
2185 ]
2186 },
2187 {
2188 "id": "dashscope",
2189 "label": "Alibaba Model Studio (DashScope)",
2190 "wire": "openai-compatible",
2191 "base_url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
2192 "api_key_env": "DASHSCOPE_API_KEY",
2193 "default_model": "qwen3.8-flash",
2194 "discovery": "models_endpoint",
2195 "docs_url": "https://www.alibabacloud.com/help/en/model-studio/getting-started/models",
2196 "credential_url": "https://bailian.console.alibabacloud.com/",
2197 "guidance": "International Model Studio compatible-mode endpoint (OpenAI Chat Completions + GET /v1/models). Live /v1/models is the model authority: Qwen 3.8 Flash and the dated 0901 release arrive through the catalog, never a hard-coded id. Store DASHSCOPE_API_KEY, not a raw key.",
2198 "aliases": [
2199 "dashscope-intl",
2200 "alibaba-model-studio",
2201 "model-studio",
2202 "qwen"
2203 ]
2204 },
2205 {
2206 "id": "groq",
2207 "label": "Groq",
2208 "wire": "openai-compatible",
2209 "base_url": "https://api.groq.com/openai/v1",
2210 "api_key_env": "GROQ_API_KEY",
2211 "default_model": "llama-3.3-70b-versatile",
2212 "discovery": "models_endpoint",
2213 "docs_url": "https://console.groq.com/docs/quickstart",
2214 "credential_url": "https://console.groq.com/keys"
2215 },
2216 {
2217 "id": "sensenova",
2218 "label": "SenseNova",
2219 "wire": "openai-compatible",
2220 "base_url": "https://token.sensenova.cn/v1",
2221 "api_key_env": "SENSENOVA_API_KEY",
2222 "default_model": "deepseek-v4-flash",
2223 "discovery": "models_endpoint",
2224 "aliases": [
2225 "sense-nova",
2226 "meituan-sensenova",
2227 "meituan-sensenova-cn"
2228 ]
2229 },
2230 {
2231 "id": "tsubasa",
2232 "label": "Tsubasa",
2233 "wire": "openai-compatible",
2234 "base_url": "https://api.tsubasa.sh/v1",
2235 "api_key_env": "TSUBASA_API_KEY",
2236 "default_model": "tsubasa-pro",
2237 "discovery": "models_endpoint",
2238 "docs_url": "https://tsubasa.sh/docs",
2239 "guidance": "OpenAI-compatible host (Chat Completions + GET /v1/models only). Public model ids: tsubasa-pro and tsubasa-fast, both with a 32,768-token context, so set context_window = 32768 on [providers.tsubasa]. Store TSUBASA_API_KEY, not a raw key."
2240 },
2241 {
2242 "id": "yolo-auto",
2243 "label": "Yolo-Auto",
2244 "wire": "openai-compatible",
2245 "base_url": "https://yolo-auto.com/v1",
2246 "api_key_env": "YOLO_AUTO_API_KEY",
2247 "default_model": "qwen3.8-flash",
2248 "discovery": "models_endpoint",
2249 "docs_url": "https://yolo-auto.com/docs",
2250 "aliases": [
2251 "yolo"
2252 ]
2253 }
2254 ],
2255 "constant_refs": {
2256 "CODEWHALE_API_KEY_URL": {
2257 "provider": "codewhale",
2258 "field": "credential_url"
2259 },
2260 "DEFAULT_ANTHROPIC_BASE_URL": {
2261 "provider": "anthropic",
2262 "field": "base_url"
2263 },
2264 "DEFAULT_ANTHROPIC_MODEL": {
2265 "provider": "anthropic",
2266 "field": "default_model"
2267 },
2268 "DEFAULT_ANTIGRAVITY_BASE_URL": {
2269 "provider": "antigravity",
2270 "field": "base_url"
2271 },
2272 "DEFAULT_ANTIGRAVITY_MODEL": {
2273 "provider": "antigravity",
2274 "field": "default_model"
2275 },
2276 "DEFAULT_ARCEE_BASE_URL": {
2277 "provider": "arcee",
2278 "field": "base_url"
2279 },
2280 "DEFAULT_ARCEE_MODEL": {
2281 "provider": "arcee",
2282 "field": "default_model"
2283 },
2284 "DEFAULT_ATLASCLOUD_BASE_URL": {
2285 "provider": "atlascloud",
2286 "field": "base_url"
2287 },
2288 "DEFAULT_ATLASCLOUD_MODEL": {
2289 "provider": "atlascloud",
2290 "field": "default_model"
2291 },
2292 "DEFAULT_CODEWHALE_BASE_URL": {
2293 "provider": "codewhale",
2294 "field": "base_url"
2295 },
2296 "DEFAULT_CODEWHALE_MODEL": {
2297 "provider": "codewhale",
2298 "field": "default_model"
2299 },
2300 "DEFAULT_CONCENTRATE_BASE_URL": {
2301 "provider": "concentrate",
2302 "field": "base_url"
2303 },
2304 "DEFAULT_CONCENTRATE_MODEL": {
2305 "provider": "concentrate",
2306 "field": "default_model"
2307 },
2308 "DEFAULT_CSDN_BASE_URL": {
2309 "provider": "csdn",
2310 "field": "base_url"
2311 },
2312 "DEFAULT_CSDN_MODEL": {
2313 "provider": "csdn",
2314 "field": "default_model"
2315 },
2316 "DEFAULT_DEEPINFRA_BASE_URL": {
2317 "provider": "deepinfra",
2318 "field": "base_url"
2319 },
2320 "DEFAULT_DEEPINFRA_MODEL": {
2321 "provider": "deepinfra",
2322 "field": "default_model"
2323 },
2324 "DEFAULT_DEEPSEEK_ANTHROPIC_BASE_URL": {
2325 "provider": "deepseek-anthropic",
2326 "field": "base_url"
2327 },
2328 "DEFAULT_DEEPSEEK_ANTHROPIC_MODEL": {
2329 "provider": "deepseek-anthropic",
2330 "field": "default_model"
2331 },
2332 "DEFAULT_DEEPSEEK_BASE_URL": {
2333 "provider": "deepseek",
2334 "field": "base_url"
2335 },
2336 "DEFAULT_DEEPSEEK_MODEL": {
2337 "provider": "deepseek",
2338 "field": "default_model"
2339 },
2340 "DEFAULT_EDENAI_BASE_URL": {
2341 "provider": "edenai",
2342 "field": "base_url"
2343 },
2344 "DEFAULT_EDENAI_MODEL": {
2345 "provider": "edenai",
2346 "field": "default_model"
2347 },
2348 "DEFAULT_FIREWORKS_BASE_URL": {
2349 "provider": "fireworks",
2350 "field": "base_url"
2351 },
2352 "DEFAULT_FIREWORKS_MODEL": {
2353 "provider": "fireworks",
2354 "field": "default_model"
2355 },
2356 "DEFAULT_GOOGLE_BASE_URL": {
2357 "provider": "google",
2358 "field": "base_url"
2359 },
2360 "DEFAULT_GOOGLE_MODEL": {
2361 "provider": "google",
2362 "field": "default_model"
2363 },
2364 "DEFAULT_HUGGINGFACE_BASE_URL": {
2365 "provider": "huggingface",
2366 "field": "base_url"
2367 },
2368 "DEFAULT_HUGGINGFACE_MODEL": {
2369 "provider": "huggingface",
2370 "field": "default_model"
2371 },
2372 "DEFAULT_LONGCAT_BASE_URL": {
2373 "provider": "longcat",
2374 "field": "base_url"
2375 },
2376 "DEFAULT_LONGCAT_MODEL": {
2377 "provider": "longcat",
2378 "field": "default_model"
2379 },
2380 "DEFAULT_META_BASE_URL": {
2381 "provider": "meta",
2382 "field": "base_url"
2383 },
2384 "DEFAULT_META_MODEL": {
2385 "provider": "meta",
2386 "field": "default_model"
2387 },
2388 "DEFAULT_MINIMAX_ANTHROPIC_BASE_URL": {
2389 "provider": "minimax-anthropic",
2390 "field": "base_url"
2391 },
2392 "DEFAULT_MINIMAX_BASE_URL": {
2393 "provider": "minimax",
2394 "field": "base_url"
2395 },
2396 "DEFAULT_MINIMAX_MODEL": {
2397 "provider": "minimax",
2398 "field": "default_model"
2399 },
2400 "DEFAULT_MISTRAL_BASE_URL": {
2401 "provider": "mistral",
2402 "field": "base_url"
2403 },
2404 "DEFAULT_MISTRAL_MODEL": {
2405 "provider": "mistral",
2406 "field": "default_model"
2407 },
2408 "DEFAULT_MODELSCOPE_BASE_URL": {
2409 "provider": "modelscope",
2410 "field": "base_url"
2411 },
2412 "DEFAULT_MODELSCOPE_MODEL": {
2413 "provider": "modelscope",
2414 "field": "default_model"
2415 },
2416 "DEFAULT_MODELSTUDIO_CODING_PLAN_BASE_URL": {
2417 "provider": "modelstudio-coding-plan",
2418 "field": "base_url"
2419 },
2420 "DEFAULT_MODELSTUDIO_TOKEN_PLAN_BASE_URL": {
2421 "provider": "modelstudio-token-plan",
2422 "field": "base_url"
2423 },
2424 "DEFAULT_MODELSTUDIO_TOKEN_PLAN_MODEL": {
2425 "provider": "modelstudio-token-plan",
2426 "field": "default_model"
2427 },
2428 "DEFAULT_MOONSHOT_BASE_URL": {
2429 "provider": "moonshot",
2430 "field": "base_url"
2431 },
2432 "DEFAULT_MOONSHOT_MODEL": {
2433 "provider": "moonshot",
2434 "field": "default_model"
2435 },
2436 "DEFAULT_NOVITA_BASE_URL": {
2437 "provider": "novita",
2438 "field": "base_url"
2439 },
2440 "DEFAULT_NOVITA_MODEL": {
2441 "provider": "novita",
2442 "field": "default_model"
2443 },
2444 "DEFAULT_NVIDIA_NIM_BASE_URL": {
2445 "provider": "nvidia-nim",
2446 "field": "base_url"
2447 },
2448 "DEFAULT_NVIDIA_NIM_MODEL": {
2449 "provider": "nvidia-nim",
2450 "field": "default_model"
2451 },
2452 "DEFAULT_OLLAMA_BASE_URL": {
2453 "provider": "ollama",
2454 "field": "base_url"
2455 },
2456 "DEFAULT_OLLAMA_CLOUD_BASE_URL": {
2457 "provider": "ollama-cloud",
2458 "field": "base_url"
2459 },
2460 "DEFAULT_OLLAMA_CLOUD_MODEL": {
2461 "provider": "ollama-cloud",
2462 "field": "default_model"
2463 },
2464 "DEFAULT_OLLAMA_MODEL": {
2465 "provider": "ollama",
2466 "field": "default_model"
2467 },
2468 "DEFAULT_OPENAI_BASE_URL": {
2469 "provider": "openai",
2470 "field": "base_url"
2471 },
2472 "DEFAULT_OPENAI_CODEX_BASE_URL": {
2473 "provider": "openai-codex",
2474 "field": "base_url"
2475 },
2476 "DEFAULT_OPENAI_CODEX_MODEL": {
2477 "provider": "openai-codex",
2478 "field": "default_model"
2479 },
2480 "DEFAULT_OPENAI_MODEL": {
2481 "provider": "openai",
2482 "field": "default_model"
2483 },
2484 "DEFAULT_OPENCODE_GO_BASE_URL": {
2485 "provider": "opencode-go",
2486 "field": "base_url"
2487 },
2488 "DEFAULT_OPENCODE_GO_MODEL": {
2489 "provider": "opencode-go",
2490 "field": "default_model"
2491 },
2492 "DEFAULT_OPENCODE_ZEN_BASE_URL": {
2493 "provider": "opencode-zen",
2494 "field": "base_url"
2495 },
2496 "DEFAULT_OPENCODE_ZEN_MODEL": {
2497 "provider": "opencode-zen",
2498 "field": "default_model"
2499 },
2500 "DEFAULT_OPENMODEL_BASE_URL": {
2501 "provider": "openmodel",
2502 "field": "base_url"
2503 },
2504 "DEFAULT_OPENMODEL_MODEL": {
2505 "provider": "openmodel",
2506 "field": "default_model"
2507 },
2508 "DEFAULT_OPENROUTER_BASE_URL": {
2509 "provider": "openrouter",
2510 "field": "base_url"
2511 },
2512 "DEFAULT_OPENROUTER_MODEL": {
2513 "provider": "openrouter",
2514 "field": "default_model"
2515 },
2516 "DEFAULT_ORCAROUTER_BASE_URL": {
2517 "provider": "orcarouter",
2518 "field": "base_url"
2519 },
2520 "DEFAULT_ORCAROUTER_MODEL": {
2521 "provider": "orcarouter",
2522 "field": "default_model"
2523 },
2524 "DEFAULT_QIANFAN_BASE_URL": {
2525 "provider": "qianfan",
2526 "field": "base_url"
2527 },
2528 "DEFAULT_QIANFAN_MODEL": {
2529 "provider": "qianfan",
2530 "field": "default_model"
2531 },
2532 "DEFAULT_SAKANA_BASE_URL": {
2533 "provider": "sakana",
2534 "field": "base_url"
2535 },
2536 "DEFAULT_SAKANA_MODEL": {
2537 "provider": "sakana",
2538 "field": "default_model"
2539 },
2540 "DEFAULT_SGLANG_BASE_URL": {
2541 "provider": "sglang",
2542 "field": "base_url"
2543 },
2544 "DEFAULT_SGLANG_MODEL": {
2545 "provider": "sglang",
2546 "field": "default_model"
2547 },
2548 "DEFAULT_SILICONFLOW_BASE_URL": {
2549 "provider": "siliconflow",
2550 "field": "base_url"
2551 },
2552 "DEFAULT_SILICONFLOW_CN_BASE_URL": {
2553 "provider": "siliconflow-CN",
2554 "field": "base_url"
2555 },
2556 "DEFAULT_SILICONFLOW_MODEL": {
2557 "provider": "siliconflow",
2558 "field": "default_model"
2559 },
2560 "DEFAULT_STEPFUN_BASE_URL": {
2561 "provider": "stepfun",
2562 "field": "base_url"
2563 },
2564 "DEFAULT_STEPFUN_MODEL": {
2565 "provider": "stepfun",
2566 "field": "default_model"
2567 },
2568 "DEFAULT_TELECOMJS_BASE_URL": {
2569 "provider": "telecomjs",
2570 "field": "base_url"
2571 },
2572 "DEFAULT_TELECOMJS_MODEL": {
2573 "provider": "telecomjs",
2574 "field": "default_model"
2575 },
2576 "DEFAULT_TEXT_MODEL": {
2577 "provider": "deepseek",
2578 "field": "default_model"
2579 },
2580 "DEFAULT_TOGETHER_BASE_URL": {
2581 "provider": "together",
2582 "field": "base_url"
2583 },
2584 "DEFAULT_TOGETHER_MODEL": {
2585 "provider": "together",
2586 "field": "default_model"
2587 },
2588 "DEFAULT_VLLM_BASE_URL": {
2589 "provider": "vllm",
2590 "field": "base_url"
2591 },
2592 "DEFAULT_VLLM_MODEL": {
2593 "provider": "vllm",
2594 "field": "default_model"
2595 },
2596 "DEFAULT_VOLCENGINE_BASE_URL": {
2597 "provider": "volcengine",
2598 "field": "base_url"
2599 },
2600 "DEFAULT_VOLCENGINE_MODEL": {
2601 "provider": "volcengine",
2602 "field": "default_model"
2603 },
2604 "DEFAULT_WANJIE_ARK_BASE_URL": {
2605 "provider": "wanjie-ark",
2606 "field": "base_url"
2607 },
2608 "DEFAULT_WANJIE_ARK_MODEL": {
2609 "provider": "wanjie-ark",
2610 "field": "default_model"
2611 },
2612 "DEFAULT_XAI_BASE_URL": {
2613 "provider": "xai",
2614 "field": "base_url"
2615 },
2616 "DEFAULT_XAI_MODEL": {
2617 "provider": "xai",
2618 "field": "default_model"
2619 },
2620 "DEFAULT_XIAOMI_MIMO_BASE_URL": {
2621 "provider": "xiaomi-mimo",
2622 "field": "base_url"
2623 },
2624 "DEFAULT_XIAOMI_MIMO_MODEL": {
2625 "provider": "xiaomi-mimo",
2626 "field": "default_model"
2627 },
2628 "DEFAULT_ZAI_BASE_URL": {
2629 "provider": "zai",
2630 "field": "base_url"
2631 },
2632 "DEFAULT_ZAI_MODEL": {
2633 "provider": "zai",
2634 "field": "default_model"
2635 },
2636 "DEFAULT_ZENMUX_BASE_URL": {
2637 "provider": "zenmux",
2638 "field": "base_url"
2639 },
2640 "DEFAULT_ZENMUX_MODEL": {
2641 "provider": "zenmux",
2642 "field": "default_model"
2643 },
2644 "MODELSTUDIO_CODING_PLAN_ANTHROPIC_BASE_URL": {
2645 "provider": "modelstudio-coding-plan-anthropic",
2646 "field": "base_url"
2647 },
2648 "MODELSTUDIO_TOKEN_PLAN_ANTHROPIC_BASE_URL": {
2649 "provider": "modelstudio-token-plan-anthropic",
2650 "field": "base_url"
2651 },
2652 "OLLAMA_CLOUD_API_KEY_URL": {
2653 "provider": "ollama-cloud",
2654 "field": "credential_url"
2655 },
2656 "OLLAMA_CLOUD_BASE_URL": {
2657 "provider": "ollama-cloud",
2658 "field": "base_url"
2659 },
2660 "OPENAI_DEFAULT_MODEL": {
2661 "provider": "openai",
2662 "field": "default_model"
2663 }
2664 },
2665 "compatibility_constants": {
2666 "CODEWHALE_API_BASE_ENV": "CODEWHALE_API_BASE",
2667 "DEFAULT_DEEPINFRA_FLASH_MODEL": "deepseek-ai/DeepSeek-V4-Flash",
2668 "DEFAULT_DEEPSEEKCN_BASE_URL": "https://api.deepseek.com/beta",
2669 "DEFAULT_HUGGINGFACE_FLASH_MODEL": "deepseek-ai/DeepSeek-V4-Flash",
2670 "DEFAULT_KIMI_CODE_BASE_URL": "https://api.kimi.com/coding/v1",
2671 "DEFAULT_KIMI_CODE_MODEL": "kimi-for-coding",
2672 "DEFAULT_NOVITA_FLASH_MODEL": "deepseek/deepseek-v4-flash",
2673 "DEFAULT_NVIDIA_NIM_FLASH_MODEL": "deepseek-ai/deepseek-v4-flash",
2674 "DEFAULT_OPENROUTER_FLASH_MODEL": "deepseek/deepseek-v4-flash",
2675 "DEFAULT_ORCAROUTER_FLASH_MODEL": "deepseek/deepseek-v4-flash",
2676 "DEFAULT_SGLANG_FLASH_MODEL": "deepseek-ai/DeepSeek-V4-Flash",
2677 "DEFAULT_SILICONFLOW_FLASH_MODEL": "deepseek-ai/DeepSeek-V4-Flash",
2678 "DEFAULT_STEPFUN_PLAN_BASE_URL": "https://api.stepfun.ai/step_plan/v1",
2679 "DEFAULT_TOGETHER_FLASH_MODEL": "deepseek-ai/DeepSeek-V4-Flash",
2680 "DEFAULT_VLLM_FLASH_MODEL": "deepseek-ai/DeepSeek-V4-Flash",
2681 "DEFAULT_VOLCENGINE_FLASH_MODEL": "DeepSeek-V4-Flash",
2682 "KIMI_CODE_MEMBERSHIP_PLAN_CONSOLE_URL": "https://www.kimi.com/code/console",
2683 "DS4_BASE_URL": "http://127.0.0.1:8000/v1",
2684 "DS4_DEFAULT_MODEL": "deepseek-v4-flash",
2685 "LM_STUDIO_BASE_URL": "http://127.0.0.1:1234/v1"
2686 },
2687 "route_credential_help": {
2688 "ollama-cloud": {
2689 "acquisition": "api_key",
2690 "credential_url": "https://ollama.com/settings/keys",
2691 "docs_url": "https://docs.ollama.com/api/authentication",
2692 "guidance": "Ollama Cloud requires an API key. Create one in Ollama account settings, then save it for the ollama-cloud provider, set OLLAMA_CLOUD_API_KEY for Pi compatibility, or set Ollama's official OLLAMA_API_KEY."
2693 },
2694 "kimi-code": {
2695 "acquisition": "api_key",
2696 "credential_url": "https://www.kimi.com/code/console",
2697 "docs_url": null,
2698 "guidance": "Create a Kimi Code membership-plan API key in the Kimi Code console. This route uses api.kimi.com/coding/v1; Codewhale does not import Kimi CLI credentials."
2699 }
2700 },
2701 "legacy_tui": {
2702 "id": "deepseek-cn",
2703 "label": "DeepSeek (legacy alias)",
2704 "base_url": "https://api.deepseek.com/beta",
2705 "default_model": "deepseek-flash",
2706 "config_key": "deepseek_cn",
2707 "secret_store_slot": "deepseek",
2708 "tui_wire_tag": "deepseek_c_n",
2709 "tui_order": 1,
2710 "catalog_id": "deepseek-cn",
2711 "catalog_source_id": "deepseek",
2712 "subagent_aliases": [
2713 "deepseek_cn",
2714 "deepseek_china",
2715 "deepseekcn"
2716 ],
2717 "table_field": "deepseek_cn",
2718 "selector_aliases": [
2719 "deepseek-cn",
2720 "deepseek_china",
2721 "deepseekcn",
2722 "deepseek-china"
2723 ],
2724 "kind": "Deepseek",
2725 "aliases": [
2726 "deepseek-cn",
2727 "deepseek_china",
2728 "deepseekcn",
2729 "deepseek-china"
2730 ],
2731 "base_url_config_key": "deepseek"
2732 }
2733 }
2734
2734 lines JSON