SillyTavern
The power-user LLM frontend that unifies dozens of AI backends with a rich scripting engine, immersive Visual Novel mode, and a thriving extension ecosystem.
SillyTavern is a locally installed, open-source frontend for interacting with large language models. Originally forked from TavernAI in February 2023, it has grown into the de-facto standard interface for AI hobbyists who want deep control over their prompts, characters, and generation pipelines. It connects to a wide range of backends including KoboldAI, Ooba, Tabby, OpenAI, Claude, Mistral, Gemini, OpenRouter, and more, all through a single unified interface.
Beyond text generation, SillyTavern integrates with Automatic1111 and ComfyUI for inline image generation, supports text-to-speech via multiple providers, and ships with a WorldInfo (lorebook) system for maintaining persistent narrative context. A Visual Novel Mode transforms the chat interface into an immersive story experience with character sprites and backgrounds.
The application runs entirely on your local machine via Node.js, serving a browser-based UI over localhost. All conversation data stays on your hardware, and the project explicitly commits to never offering a hosted service or collecting user data. An active extension ecosystem lets users add capabilities ranging from vector memory retrieval to automated translation, with a purpose-built STscript macro language enabling complex automation directly inside the chat interface.
With over 300 contributors, 100+ versioned releases, and a Discord community of tens of thousands, SillyTavern represents one of the most mature and actively developed projects in the open-source AI tooling space.
What You Get
- Multi-backend LLM connectivity supporting KoboldAI, Ooba/Tabby, OpenAI, Claude, Mistral, Gemini, OpenRouter, NovelAI, AI Horde, and more from a single interface
- WorldInfo lorebook engine for defining persistent characters, lore, and context snippets that automatically inject into prompts based on keyword triggers
- Visual Novel Mode with character sprite support and scene backgrounds for immersive AI-driven storytelling
- Built-in image generation via Automatic1111, ComfyUI, Stable Diffusion, and cloud providers including Z.AI and Pollinations
- Text-to-speech integration across multiple providers (ElevenLabs, Coqui, Volcengine, GPT-SoVITS) with narration and voice assignment per character
- STscript macro and slash-command language enabling prompt automation, variable management, conditional logic, and chaining of generation tasks
- Vector storage extension for long-term memory retrieval using embeddings from local or cloud providers
- Third-party extension manager for installing community extensions covering translation, regex processing, web search, image captioning, and more
Common Use Cases
- AI roleplay and collaborative fiction writing with custom characters, lorebooks, and immersive Visual Novel presentation
- Testing and benchmarking multiple LLM backends against the same prompt setup without reconfiguring separate tools
- Running fully offline AI conversations using local models via KoboldCPP, llama.cpp, or Ollama with zero cloud dependency
- Building complex automated prompt workflows using STscript to chain generation steps, manipulate variables, and conditionally branch conversations
- Creating rich multi-character group chats where multiple AI personas interact according to configured strategies and lorebook rules
- Developing and testing custom third-party extensions that leverage the SillyTavern extension API for novel UI or generation integrations
Under The Hood
Architecture
SillyTavern follows a layered monolith pattern: a Node.js Express server handles all API proxying, file management, user isolation, and plugin loading, while the browser-based frontend manages the full UI and generation orchestration. The backend organizes functionality into over 45 focused Express router modules covering characters, chats, groups, world info, secrets, extensions, tokenizers, and per-backend API adapters — each living in a dedicated endpoint file. A middleware stack handles authentication (HTTP Basic Auth, multi-user sessions with cookie-session), CORS proxying, IP whitelisting, host validation, rate limiting, and access logging. The frontend is a heavily event-driven application built around a central event bus (eventSource) that lets the extension ecosystem subscribe to and intercept lifecycle events like message rendering, generation start, and character load. This decoupling allows extensions to augment core flows without patching core files.
Tech Stack
The server runtime is Node.js 20+ running ES modules (type: module) with Express 4 as the HTTP framework. Notable backend dependencies include node-persist for key-value persistence, isomorphic-git for extension management via Git, vectra for local vector indexing, tiktoken and Sentencepiece bindings for accurate token counting across model families, and yaml for config serialization. The frontend is vanilla JavaScript with jQuery and a collection of curated libraries (Showdown for Markdown, Handlebars for templates, DOMPurify for sanitization, Highlight.js for code blocks, Chevrotain for the STscript parser) bundled via Webpack. Styling is plain CSS with Less for the legacy components. Testing uses Jest for unit tests and Playwright for end-to-end scenarios. Docker images are published via GitHub Actions for containerized deployments.
Code Quality
The codebase has a Jest-based test suite covering utility functions, schema conversion, prompt conversion, and private request filtering, plus a Playwright end-to-end suite — though test coverage is limited relative to the size of the project (roughly six test files across a codebase of 80+ frontend scripts and 45+ backend endpoint modules). ESLint is configured with dot-notation and jsdoc plugins. The backend endpoint files use consistent async/await with explicit error handling and HTTP status codes returned on failure. The frontend is a large legacy JavaScript codebase that has been incrementally modernized — recent PRs systematically replaced $.ajax with fetch, introduced ES module patterns, and eliminated performance bottlenecks in DOM-heavy operations. JSDoc type annotations are present in key areas but not enforced project-wide.
What Makes It Unique SillyTavern’s primary differentiator is the depth and breadth of its multi-backend abstraction: it normalizes wildly different API shapes — Text Completion, Chat Completion, KoboldAI protocol, NovelAI, Horde, and half a dozen proprietary schemas — into a unified generation pipeline that the user never has to think about. On top of this, the STscript system (powered by a real Chevrotain-based lexer/parser) gives non-programmers a Turing-complete automation language embedded directly in the chat interface, enabling prompt chaining, conditional branching, and variable manipulation without writing code. The WorldInfo lorebook engine with keyword-triggered context injection, combined with extensible regex processing and per-character override stacks, gives prompt engineers precise, systematic control over what the model sees — a level of granularity that no SaaS chatbot interface approaches.
Self-Hosting
SillyTavern is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). This is a strong copyleft license: you are free to use, modify, and distribute the software, including for commercial purposes, but any modified version you make available over a network must also be released under the AGPL-3.0. For personal self-hosting — the primary use case — this has no practical implications. For developers building products on top of SillyTavern, the network copyleft clause requires careful legal review before shipping a modified version to end users.
Operationally, SillyTavern is a single Node.js process that serves a web interface on localhost (default port 8000). It has no embedded database — data is stored as JSON files in a configurable data directory, which makes backups straightforward but also means the operator is fully responsible for storage management, data integrity, and upgrades. The team provides Windows batch scripts, a Linux/macOS shell script, Docker images, and a Termux (Android) path for installation. Upgrades are performed manually via git pull or by re-running the installer. The project has no built-in high-availability, clustering, or automatic backup mechanism.
There is no paid or cloud-hosted tier of SillyTavern — the project explicitly states it will never offer online services or track user data. What you gain from running it yourself is complete data privacy and the ability to use any local or remote LLM backend without a middleman; what you give up is any managed support, SLA, automatic updates, or cloud sync. Community support is available through an active Discord server and GitHub Issues, but there is no commercial support tier or dedicated ops team.
Related Apps
AutoGPT
Automation · Productivity · AI Assistants
Build, deploy, and run autonomous AI agents that automate complex multi-step workflows using a visual block-based graph editor.
AutoGPT
OtherOpen WebUI
AI Assistants · AI Agents
The extensible, privacy-first AI platform that runs Ollama, OpenAI, and any LLM backend behind a polished, feature-packed web interface.
Open WebUI
OtherLobeHub
AI Assistants · Productivity · Automation
Your Chief Agent Operator — build, schedule, and collaborate with an entire AI team in one self-hostable workspace.