AI-powered character chat application with multi-character scenes, dynamic world state tracking, and image generation. Create and chat with AI characters using character cards (V1/V2 format), manage multiple conversations, and configure LLM settings per-engine.
Derived from my AI chat template: https://github.com/ForgottenHistory/AI-Chat-Template
Similar RP app for a digital dating experience: https://github.com/ForgottenHistory/Cupid-AI
SillyTavern is a great project however I find it bloated yet somehow lacking features at times. I need to use various extensions from different creators spread around on discords to have a more enjoyable RP experience, which still feels "patched together"
Likewise I tried Talemate and was blown away, though it was too complex for me to actually get into.
DynamicTavern is my take on things, simple RP chatting like SillyTavern and dynamic content like Talemate. This is my personal taste, some might agree with my decisions and some might not, that's fine.
- Dynamic State - Tracks mood, position, clothes, and other attributes for characters and user
- Auto-Generation - Optionally regenerate world state periodically or on demand
- Configurable Attributes - Define what to track via
data/config/world_attributes.json
- Character Cards - Import V1/V2 character card formats with automatic image extraction from PNG metadata
- Character Profile - View and edit all character metadata with AI-powered rewrite functionality
- Per-Character Image Settings - Customize image generation per character:
- Always-included tags (appearance)
- Contextual tags (AI chooses based on conversation)
- Prompt overrides
- User Personas - Create multiple personas with custom names, descriptions, and avatars for roleplay
- Quick Persona Switching - Switch between personas from the sidebar
- Profile Customization - Set display name, bio, and avatar for your default profile
- Conversation Management - Multiple conversations per character with full message history
- Swipes - Generate alternative responses and swipe between them
- Impersonate - Generate responses as the user character
- Reasoning Display - View LLM reasoning/thinking when available
- QoL Buttons - Quick copy, regenerate, and other convenience features
- Chat Layouts - Choose between bubble style (chat app) or Discord style (full-width rows)
- Avatar Styles - Circle or rounded square avatars
- Dark Theme - Consistent dark UI throughout
Separate LLM configurations for different purposes:
| LLM Type | Purpose |
|---|---|
| Chat | Main conversation engine |
| Decision | Pre-processing decisions before content |
| Content | Rewrites/generates character metadata, world state |
| Image | Generates Danbooru-style tags for image generation |
- LLM Presets - Save and load LLM configurations
- Reasoning Support - Enable extended thinking for supported models
- Provider Support - OpenRouter and Featherless AI providers
- Per-Engine Settings - Temperature, max tokens, context window, etc.
- Stable Diffusion Integration - Generate character images via local SD WebUI API
- Global Tag Library - Define tags available for AI to choose from
- ADetailer Support - Optional face enhancement
- File-Based Prompts - Edit system prompts through the UI or directly in
data/prompts/ - Logging - View last 5 prompts/responses per LLM type for debugging
- Framework: SvelteKit 2 with Svelte 5
- Language: TypeScript
- Styling: Tailwind CSS 4
- Database: SQLite with Drizzle ORM
- Real-time: Socket.IO
- LLM Providers: OpenRouter, Featherless, NanoGPT
- Image Generation: Stable Diffusion WebUI API
- Image Processing: Sharp
run.bat does this automatically on Windows.
- Clone the repository
- Install dependencies:
npm install
- Copy
.env.exampleto.envand add your API keys:OPENROUTER_API_KEY=sk-or-v1-... FEATHERLESS_API_KEY=... # optional SD_SERVER_URL=http://127.0.0.1:7860 # optional, for image generation - Initialize the database:
npm run db:push
- Start the dev server:
npm run dev
As for LLMs, personally I use NanoGPT with a mix of Kimi-K2 and GLM-4.7
npm run dev # Start dev server
npm run build # Production build
npm run check # Type check
npm run db:push # Push schema to database
npm run db:studio # Open Drizzle StudioSillyTavern: https://github.com/SillyTavern/SillyTavern
Talemate: https://github.com/vegu-ai/talemate
MIT
