SillyTavern is a locally hosted, open-source interface designed for power users who want granular control over their LLM interactions. It consolidates access to dozens of text generation APIs and image generation engines into a single, customizable interface, eliminating the need to juggle multiple platforms. Built for AI hobbyists and enthusiasts, it solves the fragmentation problem in local AI tooling by providing a unified, extensible environment with no cloud dependency or data tracking.
Built with Node.js 20+ and Electron, SillyTavern runs on Windows, macOS, Linux, and Android (via Termux), and supports Docker deployment. It integrates with popular backends like KoboldCPP, Ooba, Tabby, and OpenRouter, and extends functionality through third-party extensions. Its architecture prioritizes local execution, privacy, and modularity, making it ideal for users who demand full control over their AI workflows.
What You Get
- Multi-LLM API Support - Connect to KoboldAI/CPP, OpenAI, Claude, Mistral, Ooba, Tabby, OpenRouter, NovelAI, and more through a single unified interface with per-model configuration.
- Image Generation Integration - Directly generate images using Automatic1111 and ComfyUI APIs with prompt embedding and batch processing from within the chat interface.
- Text-to-Speech (TTS) Support - Generate voice output using local or remote TTS models with customizable voice profiles and real-time playback.
- WorldInfo (Lorebooks) - Create and manage detailed lorebooks with nested entries to provide context-aware character behavior and world-building during conversations.
- Visual Novel Mode - Render conversations in a visual novel-style interface with character portraits, background images, and dialogue boxes for immersive roleplay.
- Customizable UI & Themes - Rearrange panels, change color schemes, and modify layout elements to suit personal preferences or accessibility needs.
- Auto-Translate - Automatically translate incoming and outgoing messages between multiple languages using integrated translation APIs.
- Third-Party Extensions - Extend functionality via community-built plugins for additional APIs, formatting tools, or interactive features.
Common Use Cases
- Running immersive AI roleplay sessions - A writer uses SillyTavern with WorldInfo and Visual Novel Mode to create interactive stories with AI characters, complete with voice and images.
- Managing multiple LLM backends for testing - A researcher compares outputs from Ooba, KoboldCPP, and OpenRouter side-by-side in one interface without switching tools.
- Building AI-powered visual novels - A game designer integrates ComfyUI-generated art and TTS voice lines into SillyTavern to prototype narrative-driven AI experiences.
- Local AI chat for privacy-conscious users - A journalist uses SillyTavern with a local LLM to conduct sensitive interviews without sending data to cloud providers.
Under The Hood
Architecture
- Clean modular separation between HTTP routing, business logic, and data persistence using explicit file-based organization
- Dependency injection via global variables and module-level imports, prioritizing simplicity over formal containers
- Plugin system leverages filesystem discovery and Webpack pre-bundling for dynamic, low-overhead extension loading
- API integrations follow uniform patterns: secret retrieval → request formatting → fetch → response transformation
- TypeScript interfaces and strict compiler options enforce type safety across server and middleware layers
- Webpack strategically pre-bundles assets with content-based hashing for deterministic, cache-efficient production builds
Tech Stack
- Node.js 20+ backend with Express.js, enhanced by security-focused middleware and session management
- Webpack 5 handles production bundling of public libraries with caching, compression, and version-aware asset delivery
- Handlebars templating powers server-side rendering alongside modern ES modules and TypeScript via strict jsconfig.json
- Native Node.js modules and lightweight npm packages ensure minimal dependencies while maintaining functionality
- Dockerized deployment with Alpine Linux and tini enables lightweight, production-ready containerization
- Comprehensive ESLint and EditorConfig configurations enforce consistent code style across server and client codebases
Code Quality
- Extensive test coverage with both unit and end-to-end UI tests validating APIs and frontend behavior
- Clear separation of concerns through route-based modular design and consistent JSDoc annotations
- Defensive programming patterns ensure robust error handling, including null-checks and structured logging
- Strong type safety maintained across server and client code with precise type definitions for complex data structures
- Frontend testing validates macro engine behavior, validation rules, and feature flag logic in browser contexts
- Consistent naming and modular organization enable predictable navigation, though test environments lack detailed configuration
What Makes It Unique
- Seamless integration of diverse LLM backends with dynamic API key injection, enabling frictionless model switching
- User-specific data isolation via filesystem-based directories and per-user secret management for true multi-user privacy
- Automatic sprite import and sanitization from RisuAI format, preserving metadata while cleaning redundant fields
- Context-aware cache busting using SHA-256 hashes of user-agent strings to prevent cross-session pollution
- Extensible Quick Reply system with nested hierarchies and scoped toggles for complex dialogue flows
- Data Maid utility combines forensic data analysis with privacy-preserving cleanup through path hashing and sanitization