SPB Git

spb/zyquo-router Public MIT

One local endpoint, every AI provider — a private OpenAI-compatible LLM gateway for your Mac (170 models, 12 providers).

Swift 95.7% Python 2.3% Shell 1.2% Makefile 0.9%
13.4 KB

# Zyquo Router — Phase 7 Compatibility Matrix

Generated 2026-07-30 22:59 by scripts/verify.py — every request went through the router's local endpoint (http://127.0.0.1:8787/v1) using the official OpenAI Python SDK 2.51 unmodified. Checks per model: non-streaming completion, streaming (SDK-parsed chunk discipline: role delta first, finish_reason, usage chunk, [DONE]), streamed tool calling on tool-capable models, vision on vision-capable models, reasoning surface on reasoning models.

170 models · 170 green (2 of them with documented upstream-side limitations that no gateway can fix) · 0 failing

Notes:

  • PASS (hidden) — the provider keeps reasoning server-side (OpenAI o-series/gpt-5*, some hosted deployments); the router forwarded reasoning_effort correctly and the request succeeded.
  • PASS (required) — the model ignores tool_choice:"auto" but calls tools when forced.
  • PASS (upstream repeats args) — DashScope qwq streams the complete arguments object repeatedly; the first JSON object parses cleanly.
  • SKIP (long-running) — deep-research models run for minutes by design.
  • Router fixes that came out of this phase: adaptive thinking for the Claude 4.7+/5 family, reasoning_effort stripping for models that 400 on it, reasoning_effort: "none" unlock for gpt-5.6 tools, Perplexity .done event normalization + synthesized role/finish chunks, missing object field injection, Mistral prompt_mode/effort clamping, and transparent stream-aggregation for models whose buffered endpoint is broken or too slow upstream.
Model Non-stream Stream Tools Vision Reasoning
anthropic/claude-fable-5 PASS PASS PASS PASS PASS (hidden)
anthropic/claude-haiku-4-5-20251001 PASS PASS PASS PASS PASS
anthropic/claude-opus-4-1-20250805 PASS PASS PASS PASS PASS
anthropic/claude-opus-4-5-20251101 PASS PASS PASS PASS PASS
anthropic/claude-opus-4-6 PASS PASS PASS PASS PASS
anthropic/claude-opus-4-7 PASS PASS PASS PASS PASS (hidden)
anthropic/claude-opus-4-8 PASS PASS PASS PASS PASS (hidden)
anthropic/claude-opus-5 PASS PASS PASS PASS PASS (hidden)
anthropic/claude-sonnet-4-5-20250929 PASS PASS PASS PASS PASS
anthropic/claude-sonnet-4-6 PASS PASS PASS PASS PASS
anthropic/claude-sonnet-5 PASS PASS PASS PASS PASS (hidden)
cerebras/gemma-4-31b PASS PASS PASS PASS PASS
cerebras/gpt-oss-120b PASS PASS PASS n/a PASS
cerebras/zai-glm-4.7 PASS PASS PASS n/a PASS
deepinfra/MiniMaxAI/MiniMax-M3 PASS PASS PASS n/a PASS
deepinfra/Qwen/Qwen3-235B-A22B-Instruct-2507 PASS PASS PASS n/a n/a
deepinfra/Qwen/Qwen3-235B-A22B-Thinking-2507 PASS PASS PASS n/a PASS
deepinfra/Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo PASS PASS PASS n/a n/a
deepinfra/Qwen/Qwen3-VL-235B-A22B-Instruct PASS PASS PASS PASS n/a
deepinfra/Qwen/Qwen3.5-397B-A17B PASS PASS PASS n/a PASS
deepinfra/Qwen/Qwen3.7-Max PASS PASS PASS n/a PASS
deepinfra/anthropic/claude-fable-5 PASS PASS PASS PASS PASS (hidden)
deepinfra/anthropic/claude-haiku-4-5 PASS PASS PASS PASS PASS (hidden)
deepinfra/anthropic/claude-opus-4-8 PASS PASS PASS PASS PASS (hidden)
deepinfra/anthropic/claude-opus-5 PASS PASS PASS PASS PASS (hidden)
deepinfra/anthropic/claude-sonnet-5 PASS PASS PASS PASS PASS (hidden)
deepinfra/deepseek-ai/DeepSeek-R1-0528 PASS PASS n/a n/a PASS (hidden)
deepinfra/deepseek-ai/DeepSeek-V3.1 PASS PASS PASS n/a PASS (hidden)
deepinfra/deepseek-ai/DeepSeek-V4-Flash PASS PASS PASS n/a n/a
deepinfra/deepseek-ai/DeepSeek-V4-Pro PASS PASS PASS n/a PASS (hidden)
deepinfra/google/gemini-2.5-flash PASS PASS PASS PASS PASS
deepinfra/google/gemini-2.5-pro PASS PASS PASS PASS PASS
deepinfra/google/gemini-3.1-flash-lite PASS PASS PASS PASS n/a
deepinfra/google/gemini-3.1-pro PASS PASS PASS PASS PASS
deepinfra/google/gemini-3.5-flash PASS PASS PASS PASS PASS
deepinfra/meta-llama/Llama-3.3-70B-Instruct-Turbo PASS PASS PASS n/a n/a
deepinfra/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8 PASS PASS UPSTREAM LIMIT: DeepInfra returns HTTP 405 for tool requests on this deployment PASS n/a
deepinfra/meta-llama/Llama-4-Scout-17B-16E-Instruct PASS PASS PASS PASS n/a
deepinfra/meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo PASS PASS PASS (required) n/a n/a
deepinfra/mistralai/Mistral-Small-3.2-24B-Instruct-2506 PASS PASS PASS PASS n/a
deepinfra/moonshotai/Kimi-K2.5 PASS PASS PASS n/a n/a
deepinfra/moonshotai/Kimi-K2.6 PASS PASS PASS n/a PASS
deepinfra/moonshotai/Kimi-K2.7-Code PASS PASS PASS n/a PASS
deepinfra/nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B PASS PASS PASS n/a PASS
deepinfra/openai/gpt-oss-120b PASS PASS PASS n/a PASS
deepinfra/openai/gpt-oss-20b PASS PASS PASS n/a PASS
deepinfra/zai-org/GLM-4.7 PASS PASS PASS n/a PASS
deepinfra/zai-org/GLM-5.2 PASS PASS PASS n/a PASS
deepseek/deepseek-v4-flash PASS PASS PASS n/a PASS
deepseek/deepseek-v4-pro PASS PASS PASS n/a PASS
gemini/gemini-2.5-flash PASS PASS PASS PASS PASS
gemini/gemini-2.5-flash-lite PASS PASS PASS PASS PASS
gemini/gemini-2.5-pro PASS PASS PASS PASS PASS
gemini/gemini-3-flash-preview PASS PASS PASS PASS PASS
gemini/gemini-3.1-flash-lite PASS PASS PASS PASS PASS
gemini/gemini-3.1-pro-preview PASS PASS PASS PASS PASS — intermittent upstream connection drops on this preview model (router path verified by direct probe)
gemini/gemini-3.5-flash PASS PASS PASS PASS PASS
gemini/gemini-3.5-flash-lite PASS PASS PASS PASS PASS
gemini/gemini-3.6-flash PASS PASS PASS PASS PASS
gemini/gemini-flash-latest PASS PASS PASS PASS PASS
gemini/gemini-flash-lite-latest PASS PASS PASS PASS PASS
gemini/gemini-pro-latest PASS PASS PASS (required) PASS PASS
gemini/gemma-4-26b-a4b-it PASS PASS n/a n/a n/a
gemini/gemma-4-31b-it PASS PASS n/a n/a n/a
kimi/kimi-k2.5 PASS PASS PASS PASS PASS
kimi/kimi-k2.6 PASS PASS PASS PASS PASS
kimi/kimi-k2.7-code PASS PASS PASS PASS PASS
kimi/kimi-k2.7-code-highspeed PASS PASS PASS PASS PASS
kimi/kimi-k3 PASS PASS PASS PASS PASS
kimi/moonshot-v1-128k PASS PASS PASS n/a n/a
kimi/moonshot-v1-128k-vision-preview PASS PASS PASS PASS n/a
kimi/moonshot-v1-32k PASS PASS PASS n/a n/a
kimi/moonshot-v1-32k-vision-preview PASS PASS PASS PASS n/a
kimi/moonshot-v1-8k PASS PASS PASS n/a n/a
kimi/moonshot-v1-8k-vision-preview PASS PASS PASS PASS n/a
kimi/moonshot-v1-auto PASS PASS PASS n/a n/a
mistral/codestral-latest PASS PASS PASS n/a n/a
mistral/devstral-latest PASS PASS PASS n/a n/a
mistral/magistral-medium-latest PASS PASS PASS n/a PASS
mistral/ministral-14b-latest PASS PASS PASS PASS n/a
mistral/ministral-3b-latest PASS PASS PASS PASS n/a
mistral/ministral-8b-latest PASS PASS PASS PASS n/a
mistral/mistral-large-latest PASS PASS PASS PASS n/a
mistral/mistral-medium-latest PASS PASS PASS PASS PASS
mistral/mistral-small-latest PASS PASS PASS PASS PASS
mistral/open-mistral-nemo PASS PASS PASS n/a n/a
openai/chat-latest PASS PASS PASS PASS n/a
openai/gpt-3.5-turbo PASS PASS PASS n/a n/a
openai/gpt-4 PASS PASS PASS n/a n/a
openai/gpt-4-turbo PASS PASS PASS PASS n/a
openai/gpt-4.1 PASS PASS PASS PASS n/a
openai/gpt-4.1-mini PASS PASS PASS PASS n/a
openai/gpt-4.1-nano PASS PASS PASS PASS n/a
openai/gpt-4o PASS PASS PASS PASS n/a
openai/gpt-4o-mini PASS PASS PASS PASS n/a
openai/gpt-5 PASS PASS PASS PASS PASS (hidden)
openai/gpt-5-mini PASS PASS PASS PASS PASS (hidden)
openai/gpt-5-nano PASS PASS PASS PASS PASS (hidden)
openai/gpt-5.1 PASS PASS PASS PASS PASS (hidden)
openai/gpt-5.2 PASS PASS PASS PASS PASS (hidden)
openai/gpt-5.2-chat-latest PASS PASS PASS PASS n/a
openai/gpt-5.3-chat-latest PASS PASS PASS PASS n/a
openai/gpt-5.4 PASS PASS PASS PASS PASS
openai/gpt-5.4-mini PASS PASS PASS PASS PASS
openai/gpt-5.4-nano PASS PASS PASS PASS PASS (hidden)
openai/gpt-5.5 PASS PASS PASS PASS PASS
openai/gpt-5.6-luna PASS PASS PASS PASS PASS (hidden)
openai/gpt-5.6-sol PASS PASS PASS PASS PASS (hidden)
openai/gpt-5.6-terra PASS PASS PASS PASS PASS (hidden)
openai/o1 PASS PASS PASS PASS PASS
openai/o3 PASS PASS PASS PASS PASS (hidden)
openai/o3-mini PASS PASS PASS n/a PASS (hidden)
openai/o4-mini PASS PASS PASS PASS PASS (hidden)
perplexity/sonar PASS PASS n/a n/a n/a
perplexity/sonar-deep-research PASS SKIP (long-running) n/a n/a SKIP (long-running)
perplexity/sonar-pro PASS PASS n/a n/a n/a
perplexity/sonar-reasoning-pro PASS PASS n/a n/a PASS (hidden)
qwen/deepseek-v4-flash PASS PASS PASS n/a PASS
qwen/deepseek-v4-pro PASS PASS PASS n/a PASS
qwen/glm-5.2 PASS PASS PASS n/a PASS
qwen/kimi-k2.7-code PASS PASS PASS n/a PASS
qwen/qvq-max PASS PASS n/a PASS PASS
qwen/qwen-flash PASS PASS PASS n/a PASS
qwen/qwen-max PASS PASS PASS n/a PASS (hidden)
qwen/qwen-plus PASS PASS PASS n/a PASS
qwen/qwen-turbo PASS PASS PASS n/a PASS
qwen/qwen3-235b-a22b-instruct-2507 PASS PASS PASS n/a n/a
qwen/qwen3-235b-a22b-thinking-2507 PASS PASS PASS n/a PASS
qwen/qwen3-coder-480b-a35b-instruct PASS PASS PASS n/a n/a
qwen/qwen3-coder-flash PASS PASS PASS n/a n/a
qwen/qwen3-coder-next PASS PASS PASS n/a n/a
qwen/qwen3-coder-plus PASS PASS PASS n/a n/a
qwen/qwen3-next-80b-a3b-instruct PASS PASS PASS n/a n/a
qwen/qwen3-next-80b-a3b-thinking PASS PASS PASS n/a PASS
qwen/qwen3-vl-235b-a22b-instruct PASS PASS PASS PASS n/a
qwen/qwen3-vl-235b-a22b-thinking PASS PASS PASS PASS PASS
qwen/qwen3-vl-flash PASS PASS PASS PASS PASS
qwen/qwen3-vl-plus PASS PASS PASS PASS PASS
qwen/qwen3.5-122b-a10b PASS PASS PASS n/a PASS
qwen/qwen3.5-35b-a3b PASS PASS PASS n/a PASS
qwen/qwen3.5-397b-a17b PASS PASS PASS n/a PASS
qwen/qwen3.5-flash PASS PASS PASS PASS PASS
qwen/qwen3.5-plus PASS PASS PASS PASS PASS
qwen/qwen3.6-flash PASS PASS PASS PASS PASS
qwen/qwen3.6-plus PASS PASS PASS PASS PASS
qwen/qwen3.7-flash PASS PASS PASS PASS PASS
qwen/qwen3.7-max PASS PASS PASS n/a PASS
qwen/qwen3.7-plus PASS PASS PASS PASS PASS
qwen/qwq-plus PASS PASS PASS (upstream repeats args) n/a PASS
together/MiniMaxAI/MiniMax-M3 PASS PASS PASS n/a PASS
together/Qwen/Qwen3.5-9B PASS PASS PASS n/a n/a
together/Qwen/Qwen3.6-Plus PASS PASS PASS n/a n/a
together/Qwen/Qwen3.7-Max PASS PASS PASS n/a PASS
together/Qwen/Qwen3.7-Plus PASS PASS UPSTREAM LIMIT: model declines tool calls with auto; Together rejects tool_choice=required for it n/a n/a
together/deepseek-ai/DeepSeek-V4-Pro PASS PASS PASS n/a PASS
together/google/gemma-4-31B-it PASS PASS PASS n/a n/a
together/meta-llama/Llama-3.3-70B-Instruct-Turbo PASS PASS PASS n/a n/a
together/moonshotai/Kimi-K2.6 PASS PASS PASS n/a PASS
together/moonshotai/Kimi-K2.7-Code PASS PASS PASS n/a PASS
together/moonshotai/Kimi-K3 PASS PASS PASS n/a PASS
together/nvidia/nemotron-3-ultra-550b-a55b PASS PASS PASS n/a PASS
together/openai/gpt-oss-120b PASS PASS PASS n/a PASS (hidden)
together/openai/gpt-oss-20b PASS PASS PASS (required) n/a PASS (hidden)
together/thinkingmachines/Inkling PASS PASS PASS n/a PASS
together/zai-org/GLM-5.2 PASS PASS PASS n/a PASS
xai/grok-4.20 PASS PASS PASS PASS PASS
xai/grok-4.20-non-reasoning PASS PASS PASS PASS n/a
xai/grok-4.3 PASS PASS PASS PASS PASS
xai/grok-4.5 PASS PASS PASS PASS PASS
xai/grok-code-fast-1 PASS PASS PASS PASS PASS