# Connect SillyTavern to QCode

> **Last verified**: 2026-09-18 · 📄 Per official docs (SillyTavern 1.19.0 (released 2026-09-14))

## At a glance

| Item | Details |
|---|---|
| Models you can use | Claude ✅ (custom Anthropic-compatible API URL) · GPT ✅ · Chinese models ✅ (OpenAI-compatible) · Gemini ⚠️ not verified |
| Protocol & Base URL | Anthropic: `https://api.qcode.cc/api/v1` (ST appends only `/messages`, so `/v1` is required here) · OpenAI: `https://api.qcode.cc/openai/v1` |
| Where to configure | in-app API connection panel (choose the Chat/Text Completion source + API URL) |
| Official docs | [github.com/SillyTavern/SillyTavern](https://github.com/SillyTavern/SillyTavern) |

[SillyTavern](https://github.com/SillyTavern/SillyTavern) is a popular local LLM frontend focused on role-play and multi-turn conversations. It supports connecting to all kinds of chat models and ships with extensions for image generation, TTS, and more. This guide explains how to use QCode.cc's models in SillyTavern.

## Bottom line first

| Capability | Works with QCode? | Notes |
|------|-------------|------|
| **Chat (Claude / GPT models)** | ✅ Yes | SillyTavern supports custom Anthropic / OpenAI-compatible endpoints; just fill in QCode's BASE_URL + API Key |
| **Image generation (gpt-image-2)** | ❌ Not yet | SillyTavern's image generation extension **does not support a custom OpenAI-compatible image endpoint**, so it cannot point at QCode's `gpt-image-2`. See "About image-2 generation" below |
| **Gemini models** | ⚠️ Not verified | SillyTavern's Google AI Studio / Vertex AI sources also accept a custom proxy URL, but we have not verified whether their request shape matches QCode's Gemini leg, so we do not recommend it |

## 1. Chat with QCode's Claude models

SillyTavern's Claude integration ships a collapsible "Reverse Proxy" section, and that is what you point at QCode:

1. Open **API Connections** (the plug icon) → **Chat Completion**.
2. Set **Chat Completion Source** to **Claude**.
3. Expand the **Reverse Proxy** section below it. **It is not a checkbox and there is no toggle** — leaving the proxy URL empty simply means "use SillyTavern's built-in official address".
4. Fill in two fields:
   - **Proxy Server URL**: `https://api.qcode.cc/api/v1` (in mainland China, prefer `https://asia.qcode.cc/api/v1`)
   - **Proxy Password**: your QCode API Key (starts with `cr_`)
5. Pick `claude-opus-5`, `claude-sonnet-5`, `claude-haiku-4-5` etc. in the **Claude Model** dropdown (4.x such as `claude-sonnet-4-6` remains on sale).
6. Click **Connect**. Because a proxy URL is set, the first click shows a "connect to this proxy URL?" confirmation dialog — that is expected.

> 🔴 **The proxy URL must include `/v1`**: fill in `https://api.qcode.cc/api/v1` and stop there.
> SillyTavern appends only `/messages` after it and **will not add `/v1` for you** —
> `https://api.qcode.cc/api` would hit `/api/messages` and return 404. No trailing slash either (it would produce `//messages`).
> Source: SillyTavern 1.19.0 `src/endpoints/backends/chat-completions.js`, the Claude branch runs `fetch(apiUrl + '/messages')`.

Two things to know up front:

- **The Claude Model dropdown is a fixed list; you cannot type a model ID.** The 1.19.0 list already contains `claude-opus-5`, `claude-sonnet-5`, `claude-haiku-4-5` and `claude-sonnet-4-6`, which overlaps with the Claude models we sell. If we later add a Claude model that is not in SillyTavern's list, you will not be able to pick it here — wait for a SillyTavern update, or use [Claude Code](/docs/getting-started/installation) instead.
- **What the official docs say about proxies:** using a proxy you do not run yourself is a privacy risk, and SillyTavern refuses support requests from proxy users. Here the URL points to your own QCode account and key — proceed with that in mind.

## 2. Chat with QCode's GPT models

Use the OpenAI-compatible endpoint:

1. **API Connections** → **Chat Completion**.
2. Set **Chat Completion Source** to **Custom (OpenAI-compatible)**.
3. Fill in:
   - **Custom Endpoint (Base URL)**: `https://api.qcode.cc/openai/v1` (in mainland China, prefer `https://asia.qcode.cc/openai/v1`)
   - **API Key**: your QCode API Key
4. Type `gpt-5.5`, `gpt-5.4`, `gpt-5.6-terra` etc. into **Enter a Model ID**.
5. Click **Connect**.

> Same rule here: **fill in only `/openai/v1`** and do not add `/chat/completions` yourself (SillyTavern appends it).
> One API Key works on all the protocols; the path decides which one. See [Endpoints and API formats](/docs/getting-started/endpoints-and-api-paths).

## 3. About image-2 generation (an honest note)

Many users ask: **Can I connect QCode's `gpt-image-2` to SillyTavern for character portraits / illustrations?**

**Not for now.** Why:

- SillyTavern's image generation extension (formerly the Stable Diffusion extension) supports only a **fixed set of backends**: 24 entries in the 1.19.0 dropdown, verbatim including `ComfyUI`, `Stable Diffusion Web UI (AUTOMATIC1111)`, `SD.Next (vladmandic)`, `stable-diffusion.cpp server`, `DrawThings HTTP API`, `NovelAI Diffusion`, `Stability AI`, `OpenAI`, `OpenRouter`, `TogetherAI`, `Pollinations`, `Z.AI`. Only the ones you run on your own machine (SD Web UI / SD.Next / ComfyUI / stable-diffusion.cpp / DrawThings) have a URL field.
- It does **not** have a "custom OpenAI-compatible image endpoint" option — meaning you cannot, the way you do for chat, give image generation a custom `base_url` pointing at QCode's `/v1/images/generations`.
- There is already a community feature request [#4851](https://github.com/SillyTavern/SillyTavern/issues/4851) (official title verbatim: `[FEATURE_REQUEST] Custom openai compatible image generation enpoint (image generation extension)` — the misspelling is theirs), still OPEN and **not implemented** as of 2026-09-18.

> Note carefully: the built-in OpenAI image source does list `gpt-image-2` in its model dropdown, so the name looks like it will work. But its request target is hardcoded in the source to `api.openai.com/v1/images/generations` with no base URL field, so it still cannot reach QCode.

### Alternatives

If you want to use QCode's `gpt-image-2`, you can:

- **Use the official OpenAI SDK / any tool that supports a custom `images` endpoint** to call it directly: base `https://api.qcode.cc/qcode-img/v1`, model `gpt-image-2`, reusing the same QCode Key. See [gpt-image-2 image generation](/docs/usage/image-2).
- Track the progress of SillyTavern issue #4851; once a custom OpenAI-compatible image endpoint is supported, you can fill in QCode's image endpoint the same way as for "chat" on this page.

## FAQ

**Q: Connection returns 401 / 403?**
A: Check that the API Key is correct and not expired. Claude uses the "Proxy Password" field, while OpenAI-compatible uses the "API Key" field — don't put it in the wrong place.

**Q: Unstable network in mainland China?**
A: Switch the BASE_URL domain to `asia.qcode.cc` (Asia node, near HK/JP); if that is unstable, switch back to `api.qcode.cc` (global routing).

**Q: Can I look up my request records?**
A: Yes. Requests across all domains are reported to [probe.qcode.cc](https://probe.qcode.cc); enter your API Key to view them.

---

> Want one plan that covers Claude Code, Codex, and third-party clients like this all at once? Check out [QCode.cc pricing](https://qcode.cc/pricing) — one API Key works across all three protocols.