{ "$schema": "https://opencode.ai/config.json", "experimental": { "openTelemetry": true }, "plugin": ["./.opencode/plugin/phoenix-bridge.js"], "provider": { "framework": { "npm": "@ai-sdk/openai-compatible", "name": "Framework Desktop (Strix Halo) — Ollama", "options": { "baseURL": "http://10.0.0.70:11434/v1" }, "models": { "qwen3-coder:30b": { "name": "Qwen3 Coder 30B (local)", "limit": { "context": 131072, "output": 16384 } } } }, "framework-vllm": { "npm": "@ai-sdk/openai-compatible", "name": "Framework Desktop (Strix Halo) — vLLM", "options": { "baseURL": "http://10.0.0.70:8000/v1", "apiKey": "dummy" }, "models": { "kimi-linear": { "name": "Kimi-Linear 48B-A3B (long-context, vLLM)", "limit": { "context": 32768, "output": 8192 }, "tool_call": false } } }, "framework-llama": { "npm": "@ai-sdk/openai-compatible", "name": "Framework Desktop (Strix Halo) — llama.cpp (long-task)", "options": { "baseURL": "http://10.0.0.70:8081/v1", "apiKey": "dummy" }, "models": { "qwen3-235b": { "name": "Qwen3-235B-A22B Instruct 2507 (~5-10 tok/s, manual start)", "limit": { "context": 65536, "output": 16384 }, "tool_call": true } } }, "framework-qwable": { "npm": "@ai-sdk/openai-compatible", "name": "Framework Desktop (Strix Halo) — Qwable (Fable-style, llama.cpp)", "options": { "baseURL": "http://10.0.0.70:8082/v1", "apiKey": "dummy" }, "models": { "qwable": { "name": "Qwable-3.6-27B (Fable-style reasoning, ~10-15 tok/s, swap-model qwable)", "limit": { "context": 65536, "output": 16384 }, "tool_call": true } } }, "framework-ornith": { "npm": "@ai-sdk/openai-compatible", "name": "Framework Desktop (Strix Halo) — Ornith (agentic coding, llama.cpp)", "options": { "baseURL": "http://10.0.0.70:8083/v1", "apiKey": "dummy" }, "models": { "ornith": { "name": "Ornith-1.0-35B-A3B (agentic coding MoE, ~80-100 tok/s, swap-model ornith)", "limit": { "context": 65536, "output": 16384 }, "tool_call": true } } } }, "mcp": { "playwright": { "type": "local", "command": ["npx", "-y", "@playwright/mcp@latest"], "enabled": true }, "searxng": { "type": "local", "command": ["npx", "-y", "mcp-searxng"], "enabled": false, "environment": { "SEARXNG_URL": "https://searxng.n0n.io" } }, "kagi": { "type": "local", "command": ["uvx", "kagimcp"], "enabled": true, "environment": { "KAGI_API_KEY": "gD6BmNHpHL2hLHYX0MnHhWMrmCjjs0dNIp4azxSTO0g.J64hRRR4NHIKcnEjcwyR4YV-6vuf622GsadLn8u4das" } }, "serena": { "type": "local", "command": [ "serena", "start-mcp-server", "--context", "./serena-ide-trim.yml", "--project-from-cwd", "--open-web-dashboard", "false" ], "enabled": true }, "basic-memory": { "type": "local", "command": ["uvx", "basic-memory", "mcp"], "enabled": true }, "sequential-thinking": { "type": "local", "command": ["npx", "-y", "@modelcontextprotocol/server-sequential-thinking"], "enabled": true }, "github": { "type": "local", "command": [ "github-mcp-server", "stdio", "--read-only", "--toolsets", "repos,issues,pull_requests,code_security" ], "enabled": true }, "task-master": { "type": "local", "command": ["npx", "-y", "task-master-ai"], "enabled": true, "environment": { "OLLAMA_BASE_URL": "http://10.0.0.70:11434/v1" } } }, "model": "framework/qwen3-coder:30b" }