Affiliate disclosure: this page contains affiliate links. We earn a commission when you sign up through our links, at no extra cost to you. Our editorial opinions are never paid for. Adult content 18+.

SillyTavern without extensions is a competent chat client and nothing more. The base program talks to whatever model you connect, stores character cards and keeps your chat history — but everything people actually remember about it (voice, images, character expressions, translation, web search) lives in the extensions panel. That panel is also where the wasted evenings pile up.

The official documentation lists nine built-in extensions that need no installation and a catalogue of more than thirty installable ones across the project repo and third-party GitHub repos. Nobody needs thirty. Four or five well chosen change the experience; fifteen leave you with a slower chat, updates that break card formats and an API bill you did not plan for.

Here is the honest selection: the nine built-ins and what each one is for, the eleven installables that add something real, the three install routes, and the four places this breaks silently. If you are coming from a hosted app and just want to talk to a character tonight, the time-cost comparison at the end is the part you need.

→ Try Candy AI free (no install)


What counts as an extension (and what does not)

An extension is a JavaScript module loaded inside the interface that adds a feature: a voice provider, an image generator, a translator, a token counter. You enable and disable them from the Extensions panel in the top bar, and some need a separate server as well (local TTS, ComfyUI, a search backend).

What matters is telling three families apart, because they behave very differently:

FamilyWhere it livesNeeds Git?RiskUpdates itself?
Built-in (9)Already in the programNoMinimalWith the SillyTavern branch
Official catalogueDownloaded from the panelYesLow (project repos)Notification if you enable it
Third-party by URLAny GitHub repoYesHigh (runs code)Depends on the author, usually no

The extensions panel in three clicks

Open Extensions in the top bar and you get four blocks: Manage extensions (enable, disable, update), Download Extensions & Assets (press Load Asset List, then Download), Notify on extension updates, and Install extension (paste a Git repo URL, with an optional branch and a per-user target in multi-user setups).

Extras is dead, and half the internet still tells you to install it

The Extras project was discontinued in April 2024. You do not need it to use extensions, and if you follow a 2023 tutorial you will end up installing a whole Python server for nothing. The docs say it plainly: “Extensions are not Extras”. If a step asks you to set up the Extras API, that tutorial is dead.


The three install routes (and which one will cost you an evening)

There is no single way to install. There are three, and the one you pick decides how much terminal time you spend.

Route 1: switch on what is already there

Zero installation. Open the panel, enable the extension, configure your key or server, done. That covers the nine built-ins and it is where you should always start.

Route 2: the official catalogue (you need Git)

Downloading from the catalogue requires Git to be installed. Not optional: the panel clones repositories. On Windows it is a five-minute installer; on Linux it is usually already there. Then: Download Extensions & Assets → Load Asset List → Download on the one you want, and the Link button opens the repo so you can read what it does before installing.

Route 3: a third-party URL (this is where the risk is)

Install extension → paste the repo URL → optionally a branch → it downloads and loads itself. The docs warn that “using third-party extensions can have unintended side effects and may pose security risks”. That is not boilerplate: an extension runs with the same permissions as the interface, and the interface holds your API keys and your chat history.


The nine built-ins: which to enable first

All nine ship with the program and cost nothing. The temptation is to enable everything on day one; the order that works is different.

ExtensionWhat it doesCostWhen to enable
Chat TranslationTranslates messages, inputs or bothFree with Google/DeepL or othersYou write one language, the character answers in another
SummarizeAutomatic chat history summaryModel tokensAlways: the cheapest memory
Chat VectorizationRAG over older chat messagesEmbeddingsLong chats, if you accept losing prompt cache
Text To SpeechVoice narration of messagesProvider-dependentOnce your backend is chosen
Image GenerationImages via SD, FLUX or DALL·ESource-dependentIf you generate regularly
Expression ImagesCharacter sprites next to the chatFree (you supply images)Characters with an expression set
Image CaptioningDescribes images so the model can “see”TokensMultimodal models
Quick ReplyReply buttons and STscript commandsFreeIf you repeat commands
Token CounterCounts tokens in textFreeTo control spend

Translation: chat in your language without breaking the roleplay

The translation extension has five entry points: the Translate Chat button (whole history), Translate Input (just what you are about to send), the translate icon in each message’s action bar, auto-mode (responses, inputs or both) and the /translate command. The least immersion-breaking setup is translating responses only and leaving your inputs in the original language: the model keeps its context and you read in yours.

Summarize: the cheap memory that actually works

Automatic summarisation does one specific thing: it condenses old messages and puts that summary into the prompt. It is compression, not infinite memory. Even so it beats upgrading to a bigger model, and it costs a fraction of what a larger context window costs.

Vectorization: RAG over your own chat (and its conflict with caching)

Chat Vectorization searches your history for messages similar to the one you just wrote and moves them to the start or end of the context, where they carry the most weight. It is real retrieval, not magic: the docs warn that “the use of this extension does not guarantee a better chatting experience or improved memory of any sort”.

There is a detail almost nobody reads that decides your bill: it breaks prompt caching. Every time it reshuffles the context, the prompt prefix changes and the provider bills it like a fresh request. The docs put it bluntly: “you have to choose one or the other, but not both”. On a backend with prompt caching, vectorization can cost more than the problem it solves.

Token Counter: the one that prevents weird bills

It converts text into tokens and counts them. Two very practical uses: finding out whether your character card is bloated, and understanding why a “normal” conversation eats what it eats. It is the least fun extension and the one that saves the most money.


Voice: choosing a TTS provider without overpaying

TTS has the most providers of any extension and generates the most frustration, because “it makes no sound” is almost always a configuration problem rather than a quality one.

ProviderRuns onCostNote
SystemYour OSFreeQuality varies wildly by OS
Google TranslateGoogle cloudFreeOne voice per language, uneven
EdgeMicrosoft cloudFreeEdge voices; needs the server plugin
KokoroYour browser (WebGPU)FreeLocal model in the browser; WebGPU required
PollinationsCloudFree with limitsOpenAI-style voices, rate limited
AllTalkYour machineFree, open sourceSeparate install, several engines
XTTSYour own serverFreeVoice cloning, dedicated server required
SileroYour machineFreeNeeds its own API server
ElevenLabsCloudSubscriptionThe best quality of the lot
OpenAI / Gemini / Azure / MiniMaxCloudPaid APIGood voices, pay per use
NovelAICloudSubscriptionOnly if you already pay for NovelAI

The voice map is mandatory (that is why yours is silent)

This is mistake number one: install TTS, enable it, type, nothing happens. SillyTavern needs a voice map — which voice belongs to which character and to each of your personas. You set it by opening a chat with the character, picking a voice from the dropdown and assigning it. If the voice list is empty, the provider is misconfigured and you need to press Refresh after fixing it. Some providers, like OpenAI-compatible ones or NovelAI, require you to populate the voice list by hand.

The two checkboxes that stop it reading stage directions

Two checkboxes change the result entirely: Only narrate “quotes” restricts playback to text inside quotation marks, and Ignore *text, even “quotes”, inside asterisks* skips anything between asterisks, quotes included. With both on, only dialogue outside asterisks gets read — exactly what you want in roleplay. With Auto Generation on, playback starts by itself on each new message.


Images: local, cloud, or nothing at all

The image generation extension supports local and cloud sources, and the cost gap between them is enormous: one you pay in hardware and electricity, the other per image.

SourceTypeCostNote
ComfyUILocalFree (GPL3)Most flexible; separate install
Draw ThingsLocal (Mac/iOS)FreeThe easy Apple route
HuggingFace ServerlessCloudFreeUsage limits
NovelAI DiffusionCloudSubscriptionIf you already have NovelAI
FAL.AI / Black Forest Labs / NanoGPT / ChutesCloudPay per useRecent models, variable cost
Google AI Studio / Vertex (Imagen)CloudPaidGood quality, Google API
Cloudflare Workers AICloudPaidSeveral vision-capable models
AI/ML API / Electron HubCloudPaidGateway with several sources

The real cost of twenty images a day

Do the maths before you enable automatic generation. Twenty images a day is 600 a month. Locally that is GPU time and electricity; in the cloud it is a bill per image, and with automatic generation on you do not generate one — you generate one per reply, whether you wanted it or not. If your provider charges per use, start with manual generation from the wand menu or /sd, and decide later.

Two features separate a demo from real use: image swipes, which regenerate while keeping the prompt, and the character gallery, where every generated image accumulates. Without the first you end up rewriting prompts; without the second, images vanish into the history. Both ship with the extension, nothing extra to install.


Web search: when the character needs real-world facts

The web search extension adds search results to the prompt. Useful when the character has to talk about something current, and completely expendable for pure fantasy roleplay.

Available sources: SerpApi, Tavily, SearXNG (self-hosted or public), Serper, Z.AI, the project’s Selenium plugin and KoboldCpp from version 1.81.1 with the module enabled. Almost all paid ones need an API key; SearXNG is the free route if you have somewhere to run it.

A money-saving detail: search fires on your messages, not the character’s. To force a specific query, wrap the text in backticks and the extension uses that as the query. And if your backend already has built-in web search (Claude, Google AI Studio, OpenRouter and others do), this extension is redundant — check the Enable web search toggle in the AI response panel first.

The prompt budget is measured in characters, not tokens

The Prompt Budget field defaults to 1500 characters, not tokens. The documented rule of thumb is one token per three or four characters. Raise it blindly and search results eat your context until the character answers like a news digest. The default cache lifetime is one week.


Third-party add-ons that earn their place (and the ones that do not)

From the official catalogue and the community repos, these are the ones adding something the built-ins do not. The verdict is mine and arguable; the test is simple: does it change the chat, or just decorate it?

ExtensionWhat it addsEffort / riskVerdict
RVCReal-time voice cloning on top of TTSMedium, needs a voice modelWorth it if you use TTS daily
Speech RecognitionDictate instead of typingLowWorth it on mobile and long sessions
Live2DAnimated 2D models with expressionsMedium, you need a modelWorth it if the character is the point
VRM3D models with expressionsHigh, VRAM and a modelOnly if you come from the VTuber side
Dynamic AudioBackground music and ambienceLowGood for immersion, not quick chats
BlipAnimates text with soundLowCosmetic, you turn it off quickly
TimelinesNavigate the chat historyLowUseful in chats of hundreds of messages
Variable ViewerInspect and edit chat variablesLowEssential if you use STscript
ObjectiveAn objective for the AI to pursueLowCurious, useful in long campaigns
WebLLMModels in the browserHigh (download)Experimental
EmulatorJSRetro games inside the chatLowA novelty, not a tool

Security rule: installing by URL means running code

A third-party extension executes with the interface’s permissions, and the interface holds your API keys. The docs warn about it and disclaim responsibility. The practical rule: install only repos with public history, readable code and an identifiable author; check what permissions it asks for; and if the repo appeared last week with twenty stars, do not install it. There is no sandbox.

Updates: why an extension breaks a chat that worked

SillyTavern’s release branch is stable, but extensions are on their own schedule. A change to the card format or the prompt template can leave a chat answering strangely overnight. What works in the community: make a manual copy of the data folder before updating extensions, and update one at a time when something breaks, not all at once.


When it is not worth it: the real cost in hours

This is the part extension lists never tell you. Building the full ecosystem is not hard, it is long.

TaskRealistic timeWhat you get
Install SillyTavern + Git + Node20-60 minThe base program running
Pick and connect a backend15-30 minFirst chat
TTS: provider + voice map20-40 minVoice on messages
Images: ComfyUI or an API30-90 minStable generation
Vectorization + embedding keys15-30 minRAG, with cache broken
Web search + API key10-20 minCurrent facts in the prompt

Add it up: two to four hours to have it all, before the tweaks that show up in week two. If your case is “I want to talk to a character tonight”, that is the number that decides.

The hosted alternative, with nothing to install

A hosted app gives you chat, images and voice in one subscription, no Git and no voice map. On Candy AI the free plan includes roughly 30 messages a day, no NSFW and no tokens; annual Premium works out at $5.99/month and unlocks unlimited chat, images and voice, with separate token packs for heavy generation (1 token per photo, 1 per voice note). The full numbers are in the Candy AI pricing guide. It is not the same as SillyTavern on your own model — you do not choose the backend here — but it does not ask for an evening of setup either.

→ Try Candy AI free (no install)

When the ecosystem does pay off

It pays off if you meet two conditions: you want to choose the model (local, no commercial filter, or a specific API) and you will use the chat consistently. In that case the three extensions that genuinely change the experience are automatic summarisation, TTS on a free provider and local image generation. Everything else is optional, and almost all of it can be switched off without losing anything.

If you have not installed the program yet, start with the SillyTavern guide: it covers installation, backends and the five real friction points. And if what you want is one specific character to talk to, read up on character cards and what to expect from chatting with AI characters first.


FAQ

Are SillyTavern extensions free?

The nine built-in ones are, yes. Most installables are free too, but some need a paid service behind them: ElevenLabs for voice, for instance, or a per-use image API. The program and the extensions are free; what costs money is the model and the external services you connect.

Do I need Git to install extensions?

Not for the built-in ones. For anything from the official catalogue or a third-party URL, yes: the panel clones repositories, so Git has to be installed on the machine. It is the requirement most people discover halfway through.

What happened to SillyTavern Extras?

It was discontinued in April 2024. You no longer need it to use extensions, and many older tutorials still tell you to install it; if a step forces you to set up the Extras API, that tutorial is obsolete. The current docs say it explicitly: extensions are not Extras.

Why is my TTS not playing any sound?

It is almost always the voice map. Enabling the extension is not enough: you have to assign a voice to each character and each persona from the dropdown in an open chat. If the list is empty, the provider is misconfigured and you need to press Refresh after fixing it. Also check that Enabled and, if you want automation, Auto Generation are on.

Can I run extensions on mobile with Termux?

Yes, with limits. Extensions that need their own server — ComfyUI, XTTS, AllTalk — want resources a phone does not have. In practice the light built-ins (translation, summarisation, token counter) and system TTS work fine on mobile; local image generation is where the phone gives up.

Are third-party extensions safe?

There is no sandbox: an extension runs with the interface’s permissions and can read your API keys and chat history. The docs warn about the risk and accept no responsibility. Install only repositories with history and an identifiable author, read the code if you can, and skip anything that appeared last week with suspiciously many stars.


Related articles: SillyTavern: what it is and how to use it · AI character cards explained · Chatting with AI characters · Best AI roleplay apps 2026 · AI chatbot with image generation · AI girlfriend with realistic photos · Candy AI pricing 2026 · What is a virtual girlfriend · Candy AI vs Replika