Skip to main content

SillyTavern

SillyTavern is a popular front end for character-driven chat and roleplay. It speaks the OpenAI Chat Completions API, so it points at the proxy like any other custom endpoint — and every message rides the same paid, encrypted network the chat app uses.

Before you start

Make sure the shared setup from How-to guides is done: the proxy is running (zs-proxy proxy start) and funded (zs-proxy fund). SillyTavern runs natively on your machine, so the default base URL http://localhost:9376/v1 works as-is. (If you run SillyTavern in Docker, see the Docker note.)

Connect it

Open the API connections panel

In SillyTavern's top bar, click the API Connections icon (the plug).

Choose Chat Completion → Custom

  • Set API to Chat Completion.
  • Set Chat Completion Source to Custom (OpenAI-compatible).

Fill in the endpoint

  • Custom Endpoint (Base URL): http://localhost:9376/v1
  • Custom API Key: anything non-empty (e.g. zerosignal) — the proxy ignores it.

Leave off any /chat/completions suffix; SillyTavern adds it.

Connect and pick a model

Click Connect. SillyTavern reads the proxy's /v1/models and fills the model dropdown with the live catalog — pick whichever model you want to chat with. (If the dropdown stays empty, type a model id by hand; see Picking a model.)

Send a test message

Use Test Message to fire a quick prompt, or just start chatting with a character. The first reply confirms the whole path — encrypt, pay, route — is working.

Notes for roleplay

  • Streaming works normally — leave it on for token-by-token replies.
  • SillyTavern's samplers (temperature, top-p, penalties) pass straight through to the operator.
  • Response length. If you don't set a max response length, the proxy picks a sensible output ceiling for the operator you're routed to (up to fallback_max_output_tokens, 32768 by default) so it can price the request — plenty for chat. You can set a smaller "Max Response Length" in SillyTavern to keep replies (and cost) tight.
  • Context size is up to the model you pick — larger contexts cost more per turn because more tokens are sent. See Pricing.

Troubleshooting

SymptomFix
"API returned an error" / can't connectConfirm the proxy is up: curl http://localhost:9376/healthz. Start it with zs-proxy proxy start.
Red status light, but chats workTick Bypass API status check — SillyTavern's probe is stricter than the endpoint needs.
Empty model dropdownThe proxy wasn't running when you clicked Connect, or /v1/models returned nothing. Start the proxy, then reconnect — or type a model id from curl http://localhost:9376/v1/models.
wallet_unfunded / payment errorsAdd funds with zs-proxy fund — see Wallet & funding.
Works from Docker? Nothing connectsSee the Docker note — use host.docker.internal and bind the proxy off loopback.

What's next