Dev Tools
Popular AI coding CLIs, IDEs, editor extensions and desktop clients — all of them can run on 3306.AI. Each card says how to set it up.
- 1Install a toolPick one below, copy the command for your OS and run it in a terminal.
- 2Create a keyMake one on the API Keys page. The key is shown once — copy it now.
- 3Connect to 3306.AIUse the one-click panel below, or paste the Base URL and key into the tool's settings.
- 4Ask somethingIf it answers, you're connected. If it errors, open the checklist on the card.
Connect a client in one click
Pick a key and a model, then launch the client — the base URL and key are filled in for you. Clients with no verified launch link get a one-click config copy instead.
Paste the key you saved. The plaintext is shown only once at creation — the server stores a hash and cannot recover it. Lost it? Create a new one.
Only models your account can actually reach are listed. This one becomes the client's default — you can switch inside the client afterwards.
Clicking opens the client on this machine and prefills the provider. Every scheme listed here was checked against the client's own source code or docs.
- Cherry Studio
— - ChatBox
— - DeepChat
— - Claude Codevia CC Switch
— - Codex CLIvia CC Switch
— - opencodevia CC Switch
— - AionUi
—
CLI Tools
· 8Claude Code
Good first pick3306.AI ReadyAnthropic's official terminal coding agent with subagents, hooks and MCP.
curl -fsSL https://claude.ai/install.sh | bashclaude updatehttps://3306.ai/anthropicNot connecting? Work through these
- 404 right after saving the configUse https://3306.ai/anthropic as the base URL; the client appends /v1/messages itself. Only the Messages API is implemented — Anthropic's legacy /v1/complete text-completion endpoint is not offered.
- Intermittent 5xx: plain chat works, long context or feature flags failThe anthropic-version and anthropic-beta headers your client sends are forwarded upstream verbatim. If you run your own proxy in between, let both through — dropping anthropic-beta makes the upstream reject requests that carry feature flags.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
Codex CLI
Good first pick3306.AI ReadyOpenAI's official open-source terminal coding agent with local sandboxed exec.
curl -fsSL https://chatgpt.com/codex/install.sh | shcodex updatehttps://3306.ai/v1Not connecting? Work through these
- 404 right after saving the configThe base URL must be exactly https://3306.ai/v1 — the client appends /chat/completions itself. Dropping /v1, or pasting the full endpoint path as the base URL, both give a 404.
- A hand-written SSE parser blows up mid-streamThe stream carries keep-alive comment lines starting with a colon (such as : ping). Skip those instead of parsing them as data frames. Official SDKs already handle this for you.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
Qwen Code
Good first pick3306.AI ReadyAlibaba's official Qwen terminal coding agent, Gemini-CLI lineage.
curl -fsSL https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen-standalone.sh | bashqwen updatehttps://3306.ai/v1Not connecting? Work through these
- 404 right after saving the configThe base URL must be exactly https://3306.ai/v1 — the client appends /chat/completions itself. Dropping /v1, or pasting the full endpoint path as the base URL, both give a 404.
- A hand-written SSE parser blows up mid-streamThe stream carries keep-alive comment lines starting with a colon (such as : ping). Skip those instead of parsing them as data frames. Official SDKs already handle this for you.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
Gemini CLI
3306.AI ReadyGoogle's official Gemini terminal agent with a generous free tier.
npm install -g @google/gemini-clinpm install -g @google/gemini-cli@latestDeepSeek Harness
3306.AI ReadyDeepSeek's official open-source agent harness (dsh) — everything is a plugin.
npx @deepseek-ai/dsh@0.1.7-alpha.1 webhttps://3306.ai/v1Not connecting? Work through these
- 404 right after saving the configThe base URL must be exactly https://3306.ai/v1 — the client appends /chat/completions itself. Dropping /v1, or pasting the full endpoint path as the base URL, both give a 404.
- A hand-written SSE parser blows up mid-streamThe stream carries keep-alive comment lines starting with a colon (such as : ping). Skip those instead of parsing them as data frames. Official SDKs already handle this for you.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
Kimi Code CLI
3306.AI ReadyMoonshot AI's official terminal agent (successor to Kimi CLI), single binary, MCP.
curl -fsSL https://code.kimi.com/kimi-code/install.sh | bashkimi upgradehttps://3306.ai/v1Not connecting? Work through these
- 404 right after saving the configThe base URL must be exactly https://3306.ai/v1 — the client appends /chat/completions itself. Dropping /v1, or pasting the full endpoint path as the base URL, both give a 404.
- A hand-written SSE parser blows up mid-streamThe stream carries keep-alive comment lines starting with a colon (such as : ping). Skip those instead of parsing them as data frames. Official SDKs already handle this for you.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
opencode
3306.AI ReadyOpen-source terminal AI coding agent, fully provider-agnostic.
curl -fsSL https://opencode.ai/install | bashhttps://3306.ai/v1Not connecting? Work through these
- 404 right after saving the configThe base URL must be exactly https://3306.ai/v1 — the client appends /chat/completions itself. Dropping /v1, or pasting the full endpoint path as the base URL, both give a 404.
- A hand-written SSE parser blows up mid-streamThe stream carries keep-alive comment lines starting with a colon (such as : ping). Skip those instead of parsing them as data frames. Official SDKs already handle this for you.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
Aider
3306.AI ReadyBattle-tested terminal AI pair programmer, Git-aware, OpenAI-compatible.
curl -LsSf https://aider.chat/install.sh | shhttps://3306.ai/v1Not connecting? Work through these
- 404 right after saving the configThe base URL must be exactly https://3306.ai/v1 — the client appends /chat/completions itself. Dropping /v1, or pasting the full endpoint path as the base URL, both give a 404.
- A hand-written SSE parser blows up mid-streamThe stream carries keep-alive comment lines starting with a colon (such as : ping). Skip those instead of parsing them as data frames. Official SDKs already handle this for you.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
Utilities
· 4NextChat
3306.AI ReadyOpen-source web / desktop chat client (formerly ChatGPT-Next-Web) with custom endpoints.
https://3306.ai/v1- Where the key goes
- Settings → Custom endpoint: Endpoint = Base URL, API Key = sk_live_… (no Bearer prefix).
- Notes
- Custom model names must match GET /v1/models verbatim; add them in NextChat as "+model-name". Requests go straight from the browser and the key is stored locally — don't enter it on a shared computer.
Not connecting? Work through these
- 404 right after saving the configThe base URL must be exactly https://3306.ai/v1 — the client appends /chat/completions itself. Dropping /v1, or pasting the full endpoint path as the base URL, both give a 404.
- A hand-written SSE parser blows up mid-streamThe stream carries keep-alive comment lines starting with a colon (such as : ping). Skip those instead of parsing them as data frames. Official SDKs already handle this for you.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
ChatBox
3306.AI ReadyCross-platform desktop / mobile chat client with custom OpenAI-compatible providers.
brew install --cask chatboxhttps://3306.ai/v1- Where the key goes
- Settings → Model Provider → Add custom provider (OpenAI API compatible): API Host = Base URL (without /chat/completions), API Key = sk_live_….
- Notes
- Keep the default API path /chat/completions; click "Fetch" to load the model list. The "balance" shown is USD (1★ = $0.01).
Not connecting? Work through these
- 404 right after saving the configThe base URL must be exactly https://3306.ai/v1 — the client appends /chat/completions itself. Dropping /v1, or pasting the full endpoint path as the base URL, both give a 404.
- A hand-written SSE parser blows up mid-streamThe stream carries keep-alive comment lines starting with a colon (such as : ping). Skip those instead of parsing them as data frames. Official SDKs already handle this for you.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
Cherry Studio
3306.AI ReadyMulti-model desktop client with knowledge base, assistant presets and MCP.
brew install --cask cherry-studiohttps://3306.ai/v1- Where the key goes
- Settings → Model Providers → Add: provider type OpenAI, API Key = sk_live_…, API Host = Base URL (Cherry appends /chat/completions itself).
- Notes
- Click "Manage" to fetch the model list, then tick the models you need. Claude models work over this same OpenAI-protocol line — no separate Anthropic provider needed.
Not connecting? Work through these
- 404 right after saving the configThe base URL must be exactly https://3306.ai/v1 — the client appends /chat/completions itself. Dropping /v1, or pasting the full endpoint path as the base URL, both give a 404.
- A hand-written SSE parser blows up mid-streamThe stream carries keep-alive comment lines starting with a colon (such as : ping). Skip those instead of parsing them as data frames. Official SDKs already handle this for you.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
CC Switch
3306.AI ReadyOne-click switching between multiple Claude Code provider configs.
brew install --cask cc-switchbrew upgrade --cask cc-switchhttps://3306.ai/anthropicNot connecting? Work through these
- 404 right after saving the configUse https://3306.ai/anthropic as the base URL; the client appends /v1/messages itself. Only the Messages API is implemented — Anthropic's legacy /v1/complete text-completion endpoint is not offered.
- Intermittent 5xx: plain chat works, long context or feature flags failThe anthropic-version and anthropic-beta headers your client sends are forwarded upstream verbatim. If you run your own proxy in between, let both through — dropping anthropic-beta makes the upstream reject requests that carry feature flags.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
AI IDEs
· 4Cursor
3306.AI ReadyAI-native IDE built on VS Code, with Tab, Agent and Composer.
https://3306.ai/v1Not connecting? Work through these
- 404 right after saving the configThe base URL must be exactly https://3306.ai/v1 — the client appends /chat/completions itself. Dropping /v1, or pasting the full endpoint path as the base URL, both give a 404.
- A hand-written SSE parser blows up mid-streamThe stream carries keep-alive comment lines starting with a colon (such as : ping). Skip those instead of parsing them as data frames. Official SDKs already handle this for you.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
Windsurf
3306.AI ReadyCodeium's agentic AI editor with Cascade multi-step flows.
https://3306.ai/v1Not connecting? Work through these
- 404 right after saving the configThe base URL must be exactly https://3306.ai/v1 — the client appends /chat/completions itself. Dropping /v1, or pasting the full endpoint path as the base URL, both give a 404.
- A hand-written SSE parser blows up mid-streamThe stream carries keep-alive comment lines starting with a colon (such as : ping). Skip those instead of parsing them as data frames. Official SDKs already handle this for you.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
Zed
3306.AI ReadyBlazing-fast collaborative editor in Rust, with built-in AI and ACP.
https://3306.ai/v1Not connecting? Work through these
- 404 right after saving the configThe base URL must be exactly https://3306.ai/v1 — the client appends /chat/completions itself. Dropping /v1, or pasting the full endpoint path as the base URL, both give a 404.
- A hand-written SSE parser blows up mid-streamThe stream carries keep-alive comment lines starting with a colon (such as : ping). Skip those instead of parsing them as data frames. Official SDKs already handle this for you.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
Trae
ByteDance's AI IDE with Chinese-friendly UX and bundled models.
Editor Extensions
· 3Cline
3306.AI ReadyThe most popular AI coding extension for VS Code, with Plan/Act modes.
code --install-extension saoudrizwan.claude-devhttps://3306.ai/v1Not connecting? Work through these
- 404 right after saving the configThe base URL must be exactly https://3306.ai/v1 — the client appends /chat/completions itself. Dropping /v1, or pasting the full endpoint path as the base URL, both give a 404.
- A hand-written SSE parser blows up mid-streamThe stream carries keep-alive comment lines starting with a colon (such as : ping). Skip those instead of parsing them as data frames. Official SDKs already handle this for you.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
Roo Code
3306.AI ReadyCline fork with custom modes and multi-agent orchestration.
code --install-extension RooVeterinaryInc.roo-clinehttps://3306.ai/v1Not connecting? Work through these
- 404 right after saving the configThe base URL must be exactly https://3306.ai/v1 — the client appends /chat/completions itself. Dropping /v1, or pasting the full endpoint path as the base URL, both give a 404.
- A hand-written SSE parser blows up mid-streamThe stream carries keep-alive comment lines starting with a colon (such as : ping). Skip those instead of parsing them as data frames. Official SDKs already handle this for you.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
Continue
3306.AI ReadyOpen-source VS Code / JetBrains extension, self-host friendly.
code --install-extension Continue.continuehttps://3306.ai/v1Not connecting? Work through these
- 404 right after saving the configThe base URL must be exactly https://3306.ai/v1 — the client appends /chat/completions itself. Dropping /v1, or pasting the full endpoint path as the base URL, both give a 404.
- A hand-written SSE parser blows up mid-streamThe stream carries keep-alive comment lines starting with a colon (such as : ping). Skip those instead of parsing them as data frames. Official SDKs already handle this for you.
- Sending an image returns 400The target model cannot read images. Image requests pass a gate before reaching the upstream: we would rather fail loudly than drop the image and let a text-only model invent an answer. Pick a model with a tick in the vision column of the capability matrix.
- 401 invalid_api_keyOnly Authorization: Bearer sk_live_… and x-api-key: sk_live_… are accepted. When pasting, make sure no quotes or stray whitespace end up in the config file.
- 403 insufficient_scopeThe response names the missing permission, e.g. This API key does not have permission for chat. This key was created without chat access — mint a new key with the chat scope in the console.
- 404 model_not_foundThe client's built-in default model name (gpt-4o, claude-3-5-sonnet and friends) is not in our catalogue. Fetch GET /v1/models and set the client's model name to a string from that list, verbatim.
- 429 rate limitedThe response carries Retry-After in seconds. Wait it out before retrying instead of hammering the endpoint. Open a ticket if you need sustained higher throughput.
- 402 insufficient balance or not entitledThe public API is for paying accounts: you need an active subscription, or a balance funded by a top-up. Sign-up bonus Stars still work inside the app but do not grant API access.
Install won't go through? Check these
- command not found: npm / nodeNode.js isn't installed on this machine. Get the LTS build from nodejs.org, then open a new terminal. Only tools marked “Requires Node.js” need this step — the rest are single-binary installs.
- EACCES / permission deniedDon't prefix it with sudo — Anthropic advises against sudo npm install -g too: it leaves files owned by root and breaks later updates. Use something like nvm for your own Node, or switch to an install method on the card that doesn't need Node.
- Windows says it can't load npm.ps1 because running scripts is disabledThat's the PowerShell execution policy, not the tool. Use npm.cmd instead of npm (and npx.cmd instead of npx) and run it again.
- It installed, but the command still isn't foundUsually the shell hasn't reloaded its PATH: close the terminal and open a new one. Qwen Code on Windows always needs this. If it persists, check that the directory named in the install output is on your PATH.
- The download hangs or never finishesCheck the Network switch above first — “Mainland China” gives the commands that installed successfully on our test machine there. The red note on a card explains why the vendor's own command doesn't work, not that the tool can't be installed. If npm itself is slow, run the registry command above. If the card's command still fails, send the full error to Support.