Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: SillyTavern/SillyTavern

1.18.0

03 May 15:55
Immutable release. Only release title and notes can be modified.
51ad27f

Choose a tag to compare

SillyTavern 1.18.0

Important news

Read the maintainers statement regarding a recent security incident involving the "Bot Browser" third-party extension and learn how to stay safe: #5592

Backends

  • Added Cloudflare Workers AI and MiniMax as Chat Completion sources.
  • KoboldCpp: Grammar state will be preserved when using a "Continue" option.
  • KoboldCpp: Added forwarding of reasoning effort when running as a Custom Chat Completion source.
  • Tool Calling: Added a configurable tool calling recursion limit; enabled interleaved thinking for Custom sources.
  • Text Completion: Impersonation requests use a "Last User Message" prefix at the end of the prompt (if configured).
  • Text Generation WebUI: Added Adaptive-P controls.
  • NanoGPT: Added provider selection and model sorting.
  • Added ability to view remaining balance for OpenRouter and NanoGPT.
  • Enhanced support for new models: DeepSeek v4, GPT 5.4 and 5.5, Gemma 4, GLM-5V-Turbo, Claude Opus 4.7.

Server & Security

  • Removed post-install script, config migration is now handled by the app or a dedicated npm run init command.
  • Added npm configuration to prevent execution of package scripts during installation.
  • Moved HTTP error pages and user.css file from /public to /data to support immutable setups.
  • Disabled HTTP keep-alive by default to restore old Node 18 behavior, can be enabled with config.
  • Added rate limiting to the basic authentication flow to mitigate brute-force attacks.
  • Added configuration options to choose which headers can be used for forwarded IP detection to prevent spoofing.
  • Added a private address whitelist to prevent SSRF attacks. See the documentation on how to enable and configure: Private Address Whitelist.
  • Added an IP whitelist for SSO trusted proxies to prevent authentication bypass.
  • Added invalidation of session cookies on password change to prevent session hijacking.
  • Increased the length of password reset code to 6 characters to guard against brute-force attacks.
  • Implemented PKCE challenge in OpenRouter OAuth flow for more secure key exchange.

UI/UX

  • Improved swipe picker: mobile requires a long press on swipe counter to open; added buttons to expand or copy the swipe text.
  • "Click to Edit" mode now also applied to reasoning blocks.
  • Welcome Screen: Number of recent chats can be configured.
  • Streamed requests now can show an error message in the console if the request fails.

STscript

  • Added commands for persona management: /persona-create, /persona-update, /persona-delete, /persona-duplicate, and /persona-get.
  • Added a command to force update the Prompt Manager's prompt list: /pm-render.
  • Added a command to get the state of the regex script: /regex-state.
  • Added a command to set fallback expression: /expression-fallback.
  • Added a command to generate a streamed response with a connection profile: /profile-genstream.

Extensions

  • Assets list now groups extensions by "Official" or "Community" categories.
  • Added an additional confirmation prompt when installing third-party extensions (can be disabled).
  • Supported extensions can use a secret-id from connection profiles when making an LLM request.
  • Extensions list now shows the extension's author name resolved from the git remote URL.
  • Vector Storage: Added Workers AI source; added a toggle to keep vectors for hidden messages; added retry logic to summary generation.
  • Image Generation: Added Workers AI source; generation can now be cancelled by pressing a button in the status toast.
  • Image Captioning: Added support for macros in the caption prompt.
  • TTS: "Skip code blocks" no longer ignores lines that start with 4 spaces (legacy code block syntax); "disabled" voice now shows a toast only once per character.

Bug Fixes

  • Fixed text edit flow in Firefox on mobile.
  • Fixed welcome screen chat pins not updating on chat renaming.
  • Fixed character list filters being stuck on app initialization.
  • Fixed application of instruct formatting to /genraw requests.
  • Fixed model routing to sd.cpp API in Image Generation logic.
  • Fixed validation of image URLs generated with Z.AI API.
  • Fixed vectors deletion for KoboldCpp when a message is deleted.
  • Fixed "Show More Messages" button triggering edit in "Click to Edit" mode.
  • Fixed max height of select-multiple elements in mobile layout.
  • Fixed server crash on empty messages when applying cache control parameters.

Community updates

  • Fix npm audit in /tests by @Cohee1207 in #5370
  • CI: Update node to 24, run ci without scripts by @Cohee1207 in #5376
  • Backmerge release into staging by @Cohee1207 in #5377
  • feat(secrets): update readSecret function to accept optional secret ID by @dylenyedc in #5356
  • fix: return Error objects from invokeFunctionTool and create error invocations by @xz-dev in #5351
  • Add opt-in toggle to keep hidden messages in chat vector index by @Copilot in #5378
  • feat: swipe picker expand/collapse, copy button, and left-align text by @Copilot in #5380
  • Fix /genraw user instruct format not applied and unwanted system newline by @claude in #5372
  • fix: require long press to open swipe picker on phones by @Cohee1207 in #5382
  • Save chat before emitting event for user message by @Cohee1207 in #5389
  • Use custom init script instead of postinstall by @Cohee1207 in #5384
  • glm-5v-turbo by @Cohee1207 in #5393
  • Add VSCode settings for TypeScript SDK configuration by @Cohee1207 in #5394
  • Add Gemma 4 instruct, context, and reasoning presets by @LumiWasTaken in #5403
  • Immutable public and global content management by @Cohee1207 in #5390
  • Skip TTS for voices explicitly set to disabled (fixes #4970) by @tgies in #5367
  • Add unit tests for prompt-converters.js by @tgies in #5364
  • Add unit tests for TavernCardValidator by @tgies in #5366
  • Add tests for Cache, MemoryLimitedMap, and other util.js coverage gaps by @tgies in #5365
  • Add IP whitelist for SSO authentication headers by @Cohee1207 in #5404
  • fix: improve streaming error propagation and forwarded response logging by @dz114879 in #5317
  • feat: add Cloudflare Workers AI provider by @tgies in #5385
  • fix npm audit in src/electron by @Cohee1207 in #5405
  • Add Entry Preview to World Info Deletion Confirmation Dialog by @Wolfsblvt in #5423
  • refactor(tts): remove redundant 4-space codeblock filter by @bumprat in #5406
  • feat: add Workers AI text embeddings and multimodal captioning by @tgies in #5414
  • Fix: Remove COMFY_RUNPOD from secrets input map β€” invalid element reference by @Wolfsblvt in #5432
  • Fix: Suppress false "Unsupported language" console warnings for English locale variants by @Wolfsblvt in #5431
  • Fix: Skip Pseudo-Elements When Generating Dynamic Focus Styles by @Wolfsblvt in #5430
  • Add Arguments Logging to Deprecated MacrosParser Method Warnings for Better Debugging Context by @Wolfsblvt in #5429
  • Fix stable-diffusion.cpp model routing and URL path handling by @V13Axel in #5427
  • Add /regex-state slash command to check regex script status by @Wolfsblvt in #5428
  • Migrate built-in extensions to use manifest-based activate hooks by @Wolfsblvt in #5435
  • Refactor repetitive vectorization model loading into a generic data-driven function by @Copilot in #5425
  • Add configurable welcome screen recent chats, fix pin loss on rename, and add popup number input validation by @Copilot in #5436
  • Gemma 4 reasoning: drop newline there by @Cohee1207 in #5433
  • Chore: Add persona lifecycle events (PERSONA_CREATED, PERSONA_UPDATED, PERSONA_RENAMED, PERSONA_DELETED) by @Wolfsblvt in #5443
  • chore: Add getExtensionManifest() to the extension context API by @Wolfsblvt in #5442
  • Add disabled property support to all popup custom input types by @Wolfsblvt in #5441
  • Fix: Missing signature and toolSignatures fields in ChatCompletionService streaming state by @Wolfsblvt in #5439
  • Allow ...
Read more

1.17.0

28 Mar 17:24
Immutable release. Only release title and notes can be modified.
e3f4166

Choose a tag to compare

SillyTavern 1.17.0

Note: Requires Node.js 20 or higher.
Need to update Node? See: https://docs.sillytavern.app/installation/updating/node/

Backends

  • Claude: Added adaptive thinking support mapped from Reasoning Effort (opt-in via config)
  • OpenRouter: Added provider filtering based on selected model
  • OpenRouter: Deactivated reasoning toggle with minimal reasoning effort now disables thinking (model-dependent)
  • OpenRouter: Added interleaved reasoning forwarding for tool-call continuations
  • SiliconFlow: Added API endpoint selection (Global / China)
  • xAI: Removed deprecated web search toggle
  • Synchronized model lists (GPT, Claude, GLM, Gemini, Grok Imagine)

Improvements

  • Swipe Picker: New interface to browse, jump, branch, and delete swipes
  • Backgrounds: Added virtual folders with grid view, breadcrumbs, and thumbnails
  • UI: New splash screen design during app initialization
  • World Info: Renaming can optionally relink lorebooks across all characters
  • World Info: Unified chat, character and persona link buttons behavior (click to load, shift-click or long press to open a menu)
  • Tags: Added automatic cleanup of orphaned folder tags
  • Thumbnails: Improved APNG detection for thumbnail generation
  • Tokenization: Token estimation now uses byte length of a string
  • Gallery: Added a shortcut to extensions ("Magic Wand") menu.
  • a11y: Added support for system-wide reduced motion and high contrast preferences
  • Reasoning: Added a new "Think XML" template without newlines in tags
  • Server: Added isomorphic-git as an alternative backend for installing extensions
  • Server: Added optional gzip compression for large request payloads
  • Server: Added config for disallowing full data backups
  • Server: Clear error messaging for port conflicts during startup
  • Server: Auto-create data root in standalone mode if not exists
  • Build: Improved webpack cache management to prevent stale caches

Macros

  • New macro engine enabled by default for new installs
  • Added:
    • {{charFirstMessage}} / {{greeting}} (with optional indexing for alternate greetings)
    • {{maxContextTokens}}, {{maxResponseTokens}}
    • {{allChatRange}}: provides the range of the entire chat for commands that accept ranges
  • Fixed {{summary}} prioritization of UI memory content

STscript

New Commands

  • Character management: /char-create, /char-update, /char-get, /char-delete, /char-duplicate, /tag-import
  • Generation control: /swipe, /regenerate
  • Reasoning block control: /reasoning-collapse, /reasoning-expand, /reasoning-toggle
  • Array utilities: /array-wrap, /array-unwrap
  • Loader: /loader-wrap, /loader-show, /loader-hide, /loader-stop

Enhancements

  • Extended /input, /popup, /buttons with placeholders, tooltips, icons
  • /imagine now supports gallery argument
  • /bgcol rebuilt for full theme palette generation using color theory

Removals

  • Removed deprecated commands: /lock and /bind (aliased to /persona-lock)
  • Deprecated format parameter for message-sending commands (use return)

Extensions

For developers

  • Added extension lifecycle hooks via manifest declarations
  • Exported SlashCommandEnumValue and generateRawData
  • Extensions can now process streamed text during tool-call chains
  • Popup System:
    • Added textarea support
    • Added placeholders, tooltips, icons
  • Action Loader:
    • New reusable loading overlay system
    • Supports stacking, toasts, and STscript integration
  • Added events:
    • PERSONA_CHANGED
    • TTS_JOB_STARTED
    • TTS_AUDIO_READY
    • TTS_JOB_COMPLETE

Vector Storage

  • Ollama: Migrated to /api/embed with batch support
  • SiliconFlow: Added as embeddings provider
  • Google: Added gemini-embedding-2-preview

Image Generation

  • Overriden image dimensions via the slash command are preserved for swiped images
  • Manual prompt refinement: edit or discard saved negative prompt and resolution

Bug Fixes

  • Fixed sanitization of chat import names
  • Fixed secrets being present in data backups when not intended
  • Fixed user data paths validation in route handlers
  • Fixed Claude multipart text block parsing (non-streaming)
  • Fixed tokenizer requests requiring model name (llama.cpp)
  • Fixed embedding requests for custom API paths (llama.cpp, vLLM)
  • Fixed stop string message clean-up for Chat Completion
  • Fixed OpenRouter cache-at-depth logic to exclude system messages
  • Fixed OpenRouter not respecting enableThoughtSignatures setting
  • Fixed OpenRouter payload field name (input_video β†’ video_url)
  • Fixed KoboldCpp DRY sequence stringification
  • Fixed KoboldCpp and Tabby tokenization counting a BOS token
  • Fixed Escape key closing non-dismissable popups (double tap Escape to override)
  • Fixed tag visibility persistence in Tag Management
  • Fixed priority of closing side panels with Escape keys
  • Fixed APNG image format detection in thumbnail handling
  • Fixed duplicate image-generation toasts
  • Fixed tool-call error handling and reporting
  • Fixed typo in KoboldAI instruct template (OUPUT β†’ OUTPUT)

Community updates

  • Chore: Add code formatting conventions as eslint rules by @Cohee1207 in #5158
  • Chore: enable brace-style eslint check by @Cohee1207 in #5159
  • Fix/Remove non-samplers from sampler selection by @leandrojofre in #5163
  • Fix NanoGPT prompt caching for anthropic/claude-* model IDs by @SenatusSPQR1 in #5164
  • Overhaul /bgcol: Oklch color space, full palette generation, save as new theme by @Copilot in #5162
  • Fix koboldcpp dry sequence stringification by @malformed-c in #5156
  • feat: add prefers-reduced-motion and prefers-contrast media queries by @xavisavvy in #5122
  • Add Textarea Support to Popup Custom Inputs by @Wolfsblvt in #5167
  • Guard isValidImageUrl against nullish avatar_url inputs by @Copilot in #5172
  • Guard isValidImageUrl against nullish avatar_url inputs (#5172) by @Cohee1207 in #5173
  • i18n: Comprehensive update and refactor for Simplified Chinese (zh-CN) by @YKDZ in #5171
  • Add gallery argument to /imagine command by @bal-spec in #5168
  • Add {{maxContext}}, {{maxResponse}} macros and {{maxPromptTokens}} alias by @Copilot in #5176
  • Add gemini-3.1-pro-preview to Google AI Studio and Vertex model lists… by @SpicyMarinara in #5188
  • Add gemini-3.1-pro-preview to caption settings by @SpicyMarinara in #5190
  • Update zh-CN translations by @Tosd0 in #5180
  • Fix APNG thumbnail handling and improve animated format detection by @Vibecoder9000 in #5113
  • Feat/Export SlashCommandEnumValue for extensions through getContext by @leandrojofre in #5191
  • build llama.cpp embedding url path by appending instead of overwriting by @wbruna in #5178
  • OpenRouter interleaved reasoning forwarding for tool-call continuations by @ZhenyaPav in #5160
  • Preserve image dimensions when generating swipe images by @Copilot in #5205
  • feat(openrouter): disable reasoning if Request model reasoning is off and effort is minimum by @Brioch in #5079
  • Open router provider filter by @GERNOMA in #5208
  • Add PERSONA_CHANGED event by @Copilot in #5218
  • Background Folders by @Vibecoder9000 in #5187
  • Fix tag hide/show toggle in Tag Management not persisting by @Copilot in #5226
  • Use Ollama /api/embed endpoint for vector embeddings by @shifusen329 in #5221
  • Remove open bogus folder tags that don't have any entities assigned by @Cohee1207 in #5225
  • Add unit tests for pure functions in src/util.js by @tgies in #5231
  • fix: skip system messages in OpenRouter cacheAtDepth calculation by @tgies in #5230
  • Support for isomorphic-git as an alternative git backend, part 1 by @Sanitised in #5229
  • Claude: map Reasoning Effort to adaptive thinking config by @Cohee1207 in #5219
  • Implement {{charFirstMessage}} / {{greeting}} macro with alternate greeting indexing and substitution by @Copilot in #5220
  • Enable experimental macro engine by default (for new users) by @Wolfsblvt in #5234
  • Add gpt-5.3-chat-latest model support by @SpicyMarinara in #5241
  • Remove xAI web search capability by @equal-l2 in #5255
  • Group add to background folder by @Vibecoder9000 in #5...
Read more

1.16.0

14 Feb 15:47
Immutable release. Only release title and notes can be modified.
e3b866b

Choose a tag to compare

SillyTavern 1.16.0

Note: The first-time startup on low-end devices may take longer due to the image metadata caching process.

Backends

  • NanoGPT: Enabled tool calling and reasoning effort support.
  • OpenAI (and compatible): Added audio inlining support.
  • Added Adaptive-P sampler settings for supported Text Completion backends.
  • Gemini: Thought signatures can be disabled with a config.yaml setting.
  • Pollinations: Updated to a new API; now requires an API key to use.
  • Moonshot: Mapped thinking type to "Request reasoning" setting in the UI.
  • Synchronized model lists for Claude and Z.AI.

Features

  • Improved naming pattern of branched chat files.
  • Enhanced world duplication to use the current world name as a base.
  • Improved performance of message rendering in large chats.
  • Improved performance of chat file management dialog.
  • Groups: Added tag filters to group members list.
  • Background images can now save additional metadata like aspect ratio, dominant color, etc.
  • Welcome Screen: Added the ability to pin recent chats to the top of the list.
  • Docker: Improved build process with support for non-root container users.
  • Server: Added CORS module configuration options to config.yaml.

Macros

Note: New features require "Experimental Macro Engine" to be enabled in user settings.

  • Added autocomplete support for macros in most text inputs (hint: press Ctrl+Space to trigger autocomplete).
  • Added a hint to enable the experimental macro engine if attempting to use new features with the legacy engine.
  • Added scoped macros syntax.
  • Added conditional if macro and preserve whitespace (#) flag.
  • Added variable shorthands, comparison and assignment operators.
  • Added {{hasExtension}} to check for active extensions.

STscript

  • Added /reroll-pick command to reroll {{pick}} macros in the current chat.
  • Added /beep command to play a message notification sound.

Extensions

  • Added the ability to quickly toggle all third-party extensions on or off in the Extensions Manager.
  • Image Generation:
    • Added image generation indicator toast and improved abort handling.
    • Added stable-diffusion.cpp backend support.
    • Added video generation for Z.AI backend.
    • Added reduced image prompt processing toggle.
    • Added the ability to rename styles and ComfyUI workflows.
  • Vector Storage:
    • Added slash commands for interacting with vector storage settings.
    • Added NanoGPT as an embeddings provider option.
  • TTS:
    • Added regex processing to remove unwanted parts from the input text.
    • Added Volcengine and GPT-SoVITS-adapter providers.
  • Image Captioning: Added a model name input for Custom (OpenAI-compatible) backend.

Bug Fixes

  • Fixed path traversal vulnerability in several server endpoints.
  • Fixed server CORS forwarding being available without authentication when CORS proxy is enabled.
  • Fixed asset downloading feature to require a host whitelist match to prevent SSRF vulnerabilities.
  • Fixed basic authentication password containing a colon character not working correctly.
  • Fixed experimental macro engine being case-sensitive when checking for macro names.
  • Fixed compatibility of the experimental macro engine with the STscript parser.
  • Fixed tool calling sending user input while processing the tool response.
  • Fixed logit bias calculation not using the "Best match" tokenizer.
  • Fixed app attribution for OpenRouter image generation requests.
  • Fixed itemized prompts not being updated when a message is deleted or moved.
  • Fixed error message when the application tab is unloaded in Firefox.
  • Fixed Google Translate bypassing the request proxy settings.
  • Fixed swipe synchronization overwriting unresolved macros in greetings.

Community updates

  • Macros 2.0 (v0.4) - Add scoped macros (last arg can be scoped), {{if}} macro and macro flags (baseline implementation) by @Wolfsblvt in #4913
  • Zai moonshot reverse proxy by @subzero5544 in #4923
  • add new Tts adapter provider by @guoql666 in #4915
  • updated claude prompt caching url by @underscorex86 in #4931
  • Macros 2.0 (v0.5) - Add variable shorthand macros and variable support to {{if}} macro by @Wolfsblvt in #4933
  • Added regex filter option to TTS extension by @ZhenyaPav in #4924
  • Macros 2.0 [Fix] - Make macro name matching case-insensitive throughout the macro system by @Wolfsblvt in #4942
  • Macros 2.0 (v0.5.1) - Delayed Macro Argument Resolution for {{if}} Macro by @Wolfsblvt in #4934
  • Add Adaptive-P settings by @Cohee1207 in #4945
  • Wrap reloadCurrentChat into SimpleMutex by @Cohee1207 in #4944
  • Macros 2.0 [βž•Macros] - Add {{hasExtension}} macro, and refactor extension lookup logic by @Wolfsblvt in #4948
  • Macros 2.0 [Fix] - Macro display override uses alias name if relevant + preserve whitespaces for autocomplete closing tag by @Wolfsblvt in #4953
  • Macros 2.0 (v0.5.2) - Onboarding for new Macro Engine by @Wolfsblvt in #4955
  • Caption: Add custom model input field by @Cohee1207 in #4956
  • Macros 2.0 (v0.6.6) - STscript compatibility by @Cohee1207 in #4957
  • Audio inlining for OpenAI and Custom-compatible by @Cohee1207 in #4964
  • Removed 87 redundant chat[chat.length - 1] lookups. by @DeclineThyself in #4963
  • Fix user handle naming logic by @allen9441 in #4969
  • "gradually replacing property access with a dot operator" by @DeclineThyself in #4965
  • Optimize getGroupPastChats by @Cohee1207 in #4976
  • Replace $.ajax with fetch by @Cohee1207 in #4978
  • Macros 2.0 [Fix] - Fix macro evaluation to allow nested scoped macros in arguments by @Wolfsblvt in #4977
  • Macros 2.0 [Fix] - Fix {{pick}} macro seeding inside delayed-resolution macros like {{if}} by @Wolfsblvt in #4986
  • Fix: init macros before extensions by @Cohee1207 in #4988
  • Enhance world duplication to use current world name as base by @Wolfsblvt in #4990
  • Fix: don't call append media twice on swipe by @Cohee1207 in #4991
  • Improve performance of printMessages by @Cohee1207 in #4979
  • Feature: Enhanced Branch and Checkpoint Naming by @Wolfsblvt in #4993
  • refactor/perf-printMessages #2: Removed getMessageFromTemplate by @DeclineThyself in #4983
  • Show a page reload prompt on EME toggle by @Cohee1207 in #4994
  • refactor/perf-printMessages #3: Extracted updateMessageItemizedPromptButton and getMessageHTML from addOneMessage to improve readability. by @DeclineThyself in #4984
  • Adjust itemized prompts on message move/delete by @Cohee1207 in #5000
  • Macros 2.0 (v0.7.0) -Variable Shorthand: New Operators & Lazy Evaluation by @Wolfsblvt in #4997
  • refactor/perf-printMessages #4: Renamed newMessage to messageElement and newMessageId to messageId. by @DeclineThyself in #4985
  • Add to list of Showdown block tags by @Cohee1207 in #4998
  • Update Dockerfile by @Cohee1207 in #4954
  • Suppress error messages when Firefox unloads the tab by @Cohee1207 in #5013
  • feat(sd): Add Z.AI GLM-Image model support by @mschienbein in #5012
  • Improved printMessages performance on large chats by reducing DOM updates. by @DeclineThyself in #4947
  • Adaptive-P for llama.cpp llama-server by @Beinsezii in #4959
  • Add taxon filter controls to Group Chat member list by @paradox460 in #5006
  • Adaptive P Hotfix by @Beinsezii in #5022
  • Adding Slash Commands for Vector Storage Extension by @adventchilde in #5008
  • Gemini: Add config.yaml setting for thought signatures by @Cohee1207 in #5025
  • Docker: Build Optimization and Enhanced Non-Root/Volumeless Support by @Pavdig in #5024
  • feat(sd): Add generation status indicator and improve abort handling by @mschienbein in #5015
  • Recent Chats: Add pin functionality by @Cohee1207 in #5030
  • feat(docker): add robust h...
Read more

1.15.0

28 Dec 16:29
Immutable release. Only release title and notes can be modified.
1c0e7ea

Choose a tag to compare

SillyTavern 1.15.0

Highlights

Introducing the first preview of Macros 2.0, a comprehensive overhaul of the macro system that enables nesting, stable evaluation order, and more. You are encouraged to try it out by enabling "Experimental Macro Engine" in User Settings -> Chat/Message Handling. Legacy macro substitution will not receive further updates and will eventually be removed.

Breaking Changes

  1. {{pick}} macros are not compatible between the legacy and new macro engines. Switching between them will change the existing pick macro results.
  2. Due to the change of group chat metadata files handling, existing group chat files will be migrated automatically. Upgraded group chats will not be compatible with previous versions.

Backends

  • Chutes: Added as a Chat Completion source.
  • NanoGPT: Exposed additional samplers to UI.
  • llama.cpp: Supports model selection and multi-swipe generation.
  • Synchronized model lists for OpenAI, Google, Claude, Z.AI.
  • Electron Hub: Supports caching for Claude models.
  • OpenRouter: Supports system prompt caching for Gemini and Claude models.
  • Gemini: Supports thought signatures for applicable models.
  • Ollama: Supports extracting reasoning content from replies.

Improvements

  • Experimental Macro Engine: Supports nested macros, stable evaluation order, and improved autocomplete.
  • Unified group chat metadata format with regular chats.
  • Added backups browser in "Manage chat files" dialog.
  • Prompt Manager: Main prompt can be set at an absolute position.
  • Collapsed three media inlining toggles into one setting.
  • Added verbosity control for supported Chat Completion sources.
  • Added image resolution and aspect ratio settings for Gemini sources.
  • Improved CharX assets extraction logic on character import.
  • Backgrounds: Added UI tabs and ability to upload chat backgrounds.
  • Reasoning blocks can be excluded from smooth streaming with a toggle.
  • start.sh script for Linux/MacOS no longer uses nvm to manage Node.js version.

STscript

  • Added /message-role and /message-name commands.
  • /api-url command supports VertexAI for setting the region.

Extensions

  • Speech Recognition: Added Chutes, MistralAI, Z.AI, ElevenLabs, Groq as STT sources.
  • Image Generation: Added Chutes, Z.AI, OpenRouter, RunPod Comfy as inference sources.
  • TTS: Unified API key handling for ElevenLabs with other sources.
  • Image Captioning: Supports Z.AI (common and coding) for captioning video files.
  • Web Search: Supports Z.AI as a search source.
  • Gallery: Now supports video uploads and playback.

Bug Fixes

  • Fixed resetting the context size when switching between Chat Completion sources.
  • Fixed arrow keys triggering swipes when focused into video elements.
  • Fixed server crash in Chat Completion generation when invalid endpoint URL passed.
  • Fixed pending file attachments not being preserved when using "Attach a File" button.
  • Fixed tool calling not working with deepseek-reasoner model.
  • Fixed image generation not using character prefixes for 'brush' message action.

Community Updates

Read more

1.14.0

22 Nov 15:28
Immutable release. Only release title and notes can be modified.
9c9be90

Choose a tag to compare

SillyTavern 1.14.0

Breaking changes

Due to changes in the handling of attached media, chat files containing such media will not be backward compatible with versions prior to 1.14.0.

Third-party extensions that read or write media to chat messages may require updates to be compatible with this version. Please contact the extension authors for more information.

Backends

  • Added Z.AI API and SiliconFlow as Chat Completion sources.
  • Updated default presets for Text Completion and Kobold Classic, legacy presets are removed.
  • Updated model lists for Gemini, Claude, OpenAI and Moonshot.
  • Added VertexAI-specific safety categories with OFF values for Gemini models.
  • Synchronized OpenRouter providers list.

Improvements

  • Added the ability to attach multiple files and images to a single message.
  • Added the ability to attach audio files to messages.
  • Added prompt audio inlining support for Gemini and OpenRouter.
  • Can switch between gallery and list styles in messages with attached media.
  • Advanced Formatting settings that do not work for Chat Completion API are now grayed out.
  • Added Start Reply With to master import/export in Advanced Formatting.
  • Alternate greetings can now be reordered.
  • Added per-chat overrides for example messages and system prompts.
  • Markdown: Block quotes can be rendered when "Show tags" setting is enabled.
  • Text Completion: Empty JSON schema input no longer sends empty object in the request.
  • Text Completion: Added an option to lock sampler selection per API type.
  • Server: Invalid IP whitelist entries are now skipped and logged on startup.
  • Tags: Can be sorted by most used in the Tag Manager dialog.
  • Tags: Increased maximum number of tags that can be imported from a character to 50.
  • UX: Multiline inputs in popups will input a linebreak instead of submitting the popup.
  • UX: Show a confirmation when reloading/leaving the page while editing a message.
  • More complete support for characters import from BYAF archives.
  • World Info: Added a height limit to entry keys inputs.

Extensions

  • Git operations with extensions now timeout after 5 minutes of inactivity.
  • Regex: Preset regex are now applied before scoped regex.
  • Image Captioning: Added captioning for video attachments (currently Gemini only).
  • Image Generation: Added Veo (Google) and Sora 2 (OpenAI) models for video generation.
  • Vector Storage: Added OpenRouter and Electron Hub as provider options.

Bug fixes

  • Fixed Quick Replies not auto-executing on new group chats.
  • Fixed NanoGPT and DeepSeek models not saving to presets.
  • Fixed message editor closing when ending IME composition with Esc key.
  • Fixed edge cases in JSON schema conversion for Gemini models.
  • Fixed image caching on avatar updates in Firefox.
  • Fixed Horde shared keys showing incorrect kudos value.
  • Fixed error notifications for Gemini in non-streaming mode.

Community updates

Read more

1.13.5

16 Oct 17:32
Immutable release. Only release title and notes can be modified.
74c158b

Choose a tag to compare

SillyTavern 1.13.5

Backends

  • Synchronized model lists for Claude, Grok, AI Studio, and Vertex AI.
  • NanoGPT: Added reasoning content display.
  • Electron Hub: Added prompt cost display and model grouping.

Improvements

  • UI: Updated the layout of the backgrounds menu.
  • UI: Hid panel lock buttons in the mobile layout.
  • UI: Added a user setting to enable fade-in animation for streamed text.
  • UX: Added drag-and-drop to the past chats menu and the ability to import multiple chats at once.
  • UX: Added first/last-page buttons to the pagination controls.
  • UX: Added the ability to change sampler settings while scrolling over focusable inputs.
  • World Info: Added a named outlet position for WI entries.
  • Import: Added the ability to replace or update characters via URL.
  • Secrets: Allowed saving empty secrets via the secret manager and the slash command.
  • Macros: Added the {{notChar}} macro to get a list of chat participants excluding {{char}}.
  • Persona: The persona description textarea can be expanded.
  • Persona: Changing a persona will update group chats that haven't been interacted with yet.
  • Server: Added support for Authentik SSO auto-login.

STscript

  • Allowed creating new world books via the /getpersonabook and /getcharbook commands.
  • /genraw now emits prompt-ready events and can be canceled by extensions.

Extensions

  • Assets: Added the extension author name to the assets list.
  • TTS: Added the Electron Hub provider.
  • Image Captioning: Renamed the Anthropic provider to Claude. Added a models refresh button.
  • Regex: Added the ability to save scripts to the current API settings preset.

Bug Fixes

  • Fixed server OOM crashes related to node-persist usage.
  • Fixed parsing of multiple tool calls in a single response on Google backends.
  • Fixed parsing of style tags in Creator notes in Firefox.
  • Fixed copying of non-Latin text from code blocks on iOS.
  • Fixed incorrect pitch values in the MiniMax TTS provider.
  • Fixed new group chats not respecting saved persona connections.
  • Fixed the user filler message logic when continuing in instruct mode.

Community updates

New Contributors

Read more

1.13.4

13 Sep 17:50
Immutable release. Only release title and notes can be modified.
6dabf12

Choose a tag to compare

SillyTavern 1.13.4

Backends

  • Google: Added support for the gemini-2.5-flash-image (Nano Banana) model.
  • DeepSeek: Sampling parameters can be passed to the reasoner model.
  • NanoGPT: Enabled prompt cache setting for Claude models.
  • OpenRouter: Added image output parsing for models that support it.
  • Chat Completion: Added Azure OpenAI and Electron Hub as sources.

Improvements

  • Server: Added validation of hostnames in requests for improved security (opt-in).
  • Server: Added support for SSL certificates with a passphrase when using HTTPS.
  • Chat Completion: Requests that fail with code 429 will no longer be silently retried.
  • Chat Completion: Inline Image Quality control is now available for all compatible sources.
  • Reasoning: Auto-parsed reasoning blocks are now automatically removed from impersonation results.
  • UI: Updated the layout of the background image settings menu.
  • UX: Ctrl+Enter will send a user message if the text input is not empty.
  • Added Thai locale and made various improvements to existing locales.

Extensions

  • Image Captioning: Added custom model input for Ollama, updated the list of Groq models, and added NanoGPT as a source.
  • Regex: Added a debug mode for regex visualization and the ability to save regex order and state as presets.
  • TTS: Improved handling of nested quotes when using the "Narrate quotes" option.

Bug Fixes

  • Fixed request streaming for the Vertex AI backend in Express mode.
  • Fixed erroneous replacement of newlines with <br> tags inside HTML code blocks.
  • Fixed custom toast positions not being applied to popups.
  • Fixed the depth of in-chat prompt injections when using the continue function with the Chat Completion API.

What's Changed

New Contributors

Full Changelog: 1.13.3...1.13.4

1.13.3

25 Aug 15:13
Immutable release. Only release title and notes can be modified.
1a1f57e

Choose a tag to compare

SillyTavern 1.13.3

News

Most built-in formatting templates for Text Completion (instruct and context) have been updated to support proper Story String wrapping. To use the at-depth position and get a correctly formatted prompt:

  1. If you are using system-provided templates, restore your context and instruct templates to their default state.
  2. If you are using custom templates, update them manually by moving the wrapping to the Story String sequence settings.

See the documentation for more details.

Backends

  • Chat Completion: Removed the 01.AI source. Added Moonshot, Fireworks, and CometAPI sources.
  • Synchronized model lists for OpenAI, Claude, Cohere, and MistralAI.
  • Synchronized the providers list for OpenRouter.

Improvements

  • Instruct Mode: Removed System Prompt wrapping sequences. Added Story String wrapping sequences.
  • Context Template: Added {{anchorBefore}} and {{anchorAfter}} Story String placeholders.
  • Advanced Formatting: Added the ability to place the Story String in-chat at depth.
  • Advanced Formatting: Added OpenAI Harmony (gpt-oss) formatting templates.
  • Welcome Screen: The hint about setting an assistant will not be displayed for customized assistant greetings.
  • Chat Completion: Added an indication of model support for Image Inlining and Tool Calling options.
  • Tokenizers: Downloadable tokenizer files now support GZIP compression.
  • World Info: Added a per-entry toggle to ignore budget constraints.
  • World Info: Updated the World Info editor toolbar layout and file selection dropdown.
  • Tags: Added an option to prune unused tags in the Tags Management dialog.
  • Tags: All tri-state tag filters now persist their state on reload.
  • UI: The Alternate Greeting editor textarea can be maximized.
  • UX: Auto-scrolling behavior can be deactivated and snapped back more reliably.
  • Reasoning: Added a button to close all currently open reasoning blocks.

Extensions

  • Extension manifests can now specify a minimal SillyTavern client version.
  • Regex: Added support for named capture groups in "Replace With".
  • Quick Replies: QR sets can be bound to characters (non-exportable).
  • Quick Replies: Added a "Before message generation" auto-execute option.
  • TTS: Added an option to split voice maps for quotes, asterisks, and other text.
  • TTS: Added the MiniMax provider. Added the gpt-4o-mini-tts model for the OpenAI provider.
  • Image Generation: Added a Variety Boost option for NovelAI image generation.
  • Image Captioning: Always load the external models list for OpenRouter, Pollinations, and AI/ML.

STscript

  • Added the trim argument to the /gen and /sysgen commands to trim the output by sentence boundary.
  • The name argument of the /gen command will now activate group members if used in groups.

Bug fixes

  • Fixed a server crash when trying to back up the settings of a deleted user.
  • Fixed the pre-allocation of injections in chat history for Text Completion.
  • Fixed an issue where the server would try to DNS resolve the localhost domain.
  • Fixed an auto-load issue when opening recent chats from the Welcome Screen.
  • Fixed the syntax of YAML placeholders in the Additional Parameters dialog.
  • Fixed model reasoning extraction for the MistralAI source.
  • Fixed the duplication of multi-line example message separators in Instruct Mode.
  • Fixed the initialization of UI elements in the QR set duplication logic.
  • Fixed an issue with Character Filters after World Info entry duplication.
  • Fixed the removal of a name prefix from the prompt upon continuation in Text Completion.
  • Fixed MovingUI behavior when the resized element overlaps with the top bar.
  • Fixed the activation of group members on quiet generation when the last message is hidden.
  • Fixed chat metadata cloning compatibility for some third-party extensions.
  • Fixed highlighting for quoted run shorthand syntax when used with QR names containing a space.

Community updates

New Contributors

Full Changelog: 1.13.2...1.13.3

1.13.2

26 Jul 19:18
Immutable release. Only release title and notes can be modified.
9a191c4

Choose a tag to compare

SillyTavern 1.13.2

News

  • The 01.AI (lingyiwanwu) Chat Completion source is pending deprecation due to underutilization and geographical restrictions. Please reach out if you use it.

Backends

  • Chat Completion: Scale Spellbook and Window AI removed from sources as they are no longer in service.
  • Ollama: Removed Mirostat parameters from the UI as they are not supported.
  • Perplexity, Groq, MistralAI, AI21, xAI: Synchronized model lists with their respective APIs.
  • Claude: Removed retired Claude 2 models from the list.
  • Text Generation WebUI: Added nsigma sampler controls.
  • OpenRouter: Gemini models will now be passed the same safety settings as AI Studio/Vertex AI.

Improvements

  • Personas: Added an optional Persona title field for cosmetic titles.
  • Personas: Avatars can now be thumbnailed to reduce network load.
  • Personas: The original aspect ratio is now preserved when "Never resize avatars" is enabled.
  • Text Completion: Macros are now replaced in the Banned Strings list.
  • Chat Completion: Added generation type filters to injected prompts.
  • Advanced Formatting: Added templates for Kimi K2 and Mistral Small 24B models.
  • World Info: Added generation type filters to WI entries.
  • Import: Added the ability to import characters from Perchance AI.
  • Import: Added BYAF file import support.
  • UI: Redesigned the layouts of the character search bar and Creator's Notes display.
  • UI: A list of character tags filters is now scrollable.
  • UX: Messages with image attachments can now be swiped to regenerate.
  • UX: Added the ability to remove video attachments from messages.
  • Welcome Screen: "Start New Chat" will now start a temporary chat only if you are already in one.
  • Clean-Up: Added a cleanup scan for unused video attachments.
  • Server: Added a startup setting to use a global data path instead of the server data path.
  • Server: Increased request payload size limits (200 -> 500 Mb).
  • Server: Browser cache cleanup on server restart is now an optional setting.
  • Server: Console access log output is now controlled by the logging.enableAccessLog setting.
  • Added character tags as data attributes for rendered chat messages.

Extensions

  • Extensions can now save and load data from API setting presets.
  • Extensions can now use structured generation with a JSON schema.
  • Image Generation: Added support for video outputs from workflows.
  • TTS: Added Pollinations as a TTS source.
  • TTS: Added new models and speed control to the ElevenLabs TTS source.
  • Image Captioning: Added the 'Show captions in chat' setting.
  • Vectors: Added Google Vertex AI as a source.

STscript

  • /inject command: An ID will be automatically generated if not provided and will be returned as command output.
  • /genraw command: Added a prefill parameter.
  • {{setvar}}/{{setglobalvar}} macros: Now allow setting empty values.

Bug fixes

  • Fixed the uploading of MKV video attachments.
  • Fixed image models being displayed in the TogetherAI text model list.
  • Fixed being unable to search by model ID in OpenRouter for Text Completion.
  • Fixed checking for updates in extensions that are not Git repositories.
  • Fixed the Regex extension not loading if a script had an invalid placement array.
  • Fixed WI entries failing to load into the editor if they contained corrupted data.
  • Fixed thumbnails for backgrounds with names containing a single quote.
  • Fixed "Click to Edit" activating on copy from code blocks and while deleting messages.
  • Fixed not being able to assign additional WI connections during character creation.
  • Fixed the application of message CSS styling that uses pseudo-classes in selectors.
  • Fixed FAL.AI image models list loading.
  • Fixed {{getvar}} in slash commands if the macro name is not lowercase.
  • Fixed cutoff of hamburger and wand menus on height overflow.
  • Fixed prompts with inline videos when using Prompt Post-Processing.
  • Fixed non-streaming "Narrate by paragraph" to work regardless of the streaming setting.

Community updates

Read more

1.13.1

22 Jun 15:17
Immutable release. Only release title and notes can be modified.
a2efd87

Choose a tag to compare

SillyTavern 1.13.1

News

  1. Node.js 18 has reached its EOL, please update Node runtime to the latest LTS version to continue receiving future updates.
  2. secrets.json file format has been updated and won't be compatible with previous SillyTavern versions.

Backends

  • Google Vertex AI (Full): Added support for accessing Gemini models with a service account.
  • Google Vertex AI (Express): Added controls for Project ID and Region.
  • Google AI Studio: Added new Gemini 2.5 Pro models. Models not in the list will be pulled from the API endpoint.
  • OpenRouter: Added cache TTL control for Claude; synchronized providers list.
  • MistralAI: Added new models to the list.
  • Pollinations: Added sampler controls, fixed reasoning tokens display.
  • xAI: Enabled backend web search capabilities.
  • DeepSeek: Added tool calls for reasoner model.
  • AI/ML API: Added as a Chat Completion source.

Improvements

  • Secrets: Added an ability to save multiple secret values per API type.
  • Welcome Page: Custom assistants will display their greeting message (if any).
  • Welcome Page: Added rename and delete buttons for recent chats.
  • Browser Launch (previously known as autorun): Added a config setting to choose the browser to launch.
  • Added a clean-up dialog to remove loose files and images from the data directory.
  • World Info: Budget cap max value increased to 64k tokens.
  • Backgrounds: Implemented lazy loading for backgrounds in the selection dialog.
  • Chat Completion: Added prompt post-processing types with tool calling support.
  • Added an ability to attach videos to messages (only supported by Gemini models).
  • Switched top drawer animations to use CSS transitions instead of JavaScript for better performance.

STscript

  • Added a setting to hide autocomplete suggestions in chat input.
  • Added a set of commands for managing secrets: /secret-id, /secret-write, etc.
  • Added access to WI entry character filters via /getwifield//setwifield commands.

Extensions

  • Extension manifest can now require other extensions presence to be loaded.
  • If any extensions failed to load, the reason will be displayed in the "Manage extensions" dialog.
  • Connection Profiles: Added Prompt Post-Processing and Secret ID to connection profiles.
  • Regex: Added bulk operations and multiple scripts export per file.
  • Image Generation: Added Google Imagen and AI/ML API as image generation sources. Added NovelAI V4.5 models.
  • TTS: Added Chatterbox, TTS WebUI and Google Gemini as TTS sources.
  • Gallery: Added delete functionality for gallery items.
  • Character Expressions: Added a switch between raw/full prompt building strategies for Main API classification.
  • Vector Storage: Allow chunk overlap when forced chunking on a custom delimiter.

Bug fixes

  • Fixed not being able to swipe right to generate if the first message was generated.
  • Fixed image prompt modified on image swipe not saving to the message title.
  • Fixed poor performance and memory leaks in the World Info editor.
  • Fixed personality/scenario missing in Chat Completion prompts if the respective utility prompt is empty.
  • Fixed parsing strings as numeric operands in STscript if command.
  • Fixed performance of "Back to parent chat" operation.

Community updates

New Contributors

Read more