Loading...
Loading...
Interactively guide users through configuring ZenMux Base URL, API endpoint, API Key, and model settings for any tool or SDK. Use this skill whenever the user wants to SET UP, CONFIGURE, or CONNECT a tool to ZenMux — including questions like "how do I set up ZenMux in Cursor", "what's the base URL", "how to configure Claude Code with ZenMux", "endpoint for Anthropic API", "help me fill in the API settings". Trigger on: "configure", "setup", "set up", "base url", "endpoint", "api key", "接入", "配置", "设置", "base url 填什么", "怎么填", "怎么接入", "怎么配置", "API 地址", "接口地址". Also trigger when users mention a tool name (Cursor, Cline, Claude Code, Cherry Studio, Open-WebUI, Dify, Obsidian, Sider, Copilot, Codex, Gemini CLI, opencode, etc.) together with ZenMux in a configuration context. Treat the user as a first-time user and guide them step by step. Do NOT trigger for usage queries, documentation lookups, or general product questions — use zenmux-usage or zenmux-context instead.
npx skill4agent add zenmux/skills zenmux-setupsk-ai-v1-sk-ss-v1-| Protocol | Base URL | Typical tools |
|---|---|---|
| OpenAI Chat Completions | | Cursor, Cline, Cherry Studio, Open-WebUI, Dify, Sider, Obsidian, Codex, opencode, most "OpenAI-compatible" tools |
| OpenAI Responses | | OpenAI SDK (responses.create) |
| Anthropic Messages | | Claude Code, Anthropic SDK |
| Google Gemini | | Google GenAI SDK, Gemini CLI |
| Tool | Protocol | Base URL | Notes |
|---|---|---|---|
| Claude Code | Anthropic | | Uses env vars, NOT settings file |
| Cursor | OpenAI | | Settings → Models → Override OpenAI Base URL |
| Cline | OpenAI | | API Provider → "OpenAI Compatible" |
| Cherry Studio | OpenAI | | Note: trailing slash required |
| Open-WebUI | OpenAI | | Admin → Settings → Connections |
| Dify | OpenAI | | Model Provider → OpenAI-API-compatible |
| Obsidian (Copilot) | OpenAI | | Plugin settings |
| Sider | OpenAI | | Advanced Settings → Custom model |
| GitHub Copilot | Extension | N/A | Install "ZenMux Copilot" VS Code extension |
| Codex (OpenAI CLI) | OpenAI | | Uses env vars |
| Gemini CLI | Google Gemini | | Uses env vars |
| opencode | OpenAI | | Config file |
| CC-Switch | Both | Depends on mode | Manages Claude Code proxy switching |
| Custom code (OpenAI SDK) | OpenAI | | |
| Custom code (Anthropic SDK) | Anthropic | | |
| Custom code (Google GenAI SDK) | Google Gemini | | |
sk-ai-v1-sk-ss-v1-.context/references/zenmux-doc/docs_source/export ANTHROPIC_BASE_URL="https://zenmux.ai/api/anthropic"
export ANTHROPIC_AUTH_TOKEN="<your-zenmux-api-key>"export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-haiku-4.5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-sonnet-4.5"
export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-4.5"~/.zshrc~/.bashrcsource ~/.zshrcsettings.jsonclaudeCode.environmentVariablesCmd+,Ctrl+,https://zenmux.ai/api/v1anthropic/claude-sonnet-4.5https://zenmux.ai/api/v1anthropic/claude-sonnet-4.5https://zenmux.ai/api/v1/from openai import OpenAI
client = OpenAI(
base_url="https://zenmux.ai/api/v1",
api_key="<your-zenmux-api-key>",
)
response = client.chat.completions.create(
model="openai/gpt-5",
messages=[{"role": "user", "content": "Hello!"}]
)from anthropic import Anthropic
client = Anthropic(
base_url="https://zenmux.ai/api/anthropic",
api_key="<your-zenmux-api-key>",
)
message = client.messages.create(
model="anthropic/claude-sonnet-4.5",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}]
)from google import genai
from google.genai import types
client = genai.Client(
api_key="<your-zenmux-api-key>",
vertexai=True,
http_options=types.HttpOptions(
api_version='v1',
base_url='https://zenmux.ai/api/vertex-ai'
)
)
response = client.models.generate_content(
model="google/gemini-3.1-pro-preview",
contents="Hello!"
).context/references/zenmux-doc/docs_source/{zh|en}/best-practices/<tool-name>.mdprovider/model-nameopenai/gpt-5anthropic/claude-sonnet-4.5anthropic/claude-opus-4.5google/gemini-3.1-pro-previewdeepseek/deepseek-r1curl https://zenmux.ai/api/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <your-zenmux-api-key>" \
-d '{"model": "openai/gpt-5", "messages": [{"role": "user", "content": "Say hello"}]}'curl https://zenmux.ai/api/anthropic/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: <your-zenmux-api-key>" \
-H "anthropic-version: 2023-06-01" \
-d '{"model": "anthropic/claude-sonnet-4.5", "max_tokens": 128, "messages": [{"role": "user", "content": "Say hello"}]}'| Error | Likely cause | Fix |
|---|---|---|
| 401 Unauthorized | Invalid or missing API Key | Double-check the key; regenerate at ZenMux console |
| 404 Not Found | Wrong Base URL or endpoint path | Verify the Base URL matches the protocol being used |
| Model not found | Incorrect model slug | Check spelling; browse https://zenmux.ai/models for the exact slug |
| Connection refused | Network/firewall issue | Check internet connectivity; try |
| Trailing slash issues | Some tools need it, some don't | Cherry Studio needs trailing slash; most others don't |