Releases: SillyTavern/SillyTavern
1.16.0
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
ifmacro and preserve whitespace (#) flag. - Added variable shorthands, comparison and assignment operators.
- Added
{{hasExtension}}to check for active extensions.
STscript
- Added
/reroll-pickcommand to reroll{{pick}}macros in the current chat. - Added
/beepcommand 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: RemovedgetMessageFromTemplateby @DeclineThyself in #4983- Show a page reload prompt on EME toggle by @Cohee1207 in #4994
refactor/perf-printMessages#3: ExtractedupdateMessageItemizedPromptButtonandgetMessageHTMLfromaddOneMessageto 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: RenamednewMessagetomessageElementandnewMessageIdtomessageId. 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
printMessagesperformance 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...
1.15.0
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
{{pick}}macros are not compatible between the legacy and new macro engines. Switching between them will change the existing pick macro results.- 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-roleand/message-namecommands. /api-urlcommand 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
- Gallery: Add video uploads to gallery by @Cohee1207 in #4796
- Add new WORLDINFO_SCAN_DONE event with mutable state for extensions by @Wolfsblvt in #4797
- Remove nvm install from start.sh by @Cohee1207 in #4804
- TC: Add a toggle for empty json schemas by @Cohee1207 in #4807
- /api-url: Add VertexAI region management by @Cohee1207 in #4808
- Backgrounds: Restore drawer title header by @Cohee1207 in #4809
- Add credit to bryc for writing getStringHash. by @DeclineThyself in #4811
- Refactor loadOpenAISettings by @Cohee1207 in #4815
- Fix resetting the context size when switching between CC sources by @Cohee1207 in #4816
- Update group chat metadata format by @Cohee1207 in #4805
- Trigger CHARACTER_RENAMED_IN_PAST_CHAT for group chats by @leandrojofre in #4818
- Unify chat timestamps format by @Cohee1207 in #4806
- Backport
feat/chat-treeand fix #4709 by @DeclineThyself in #4712 - Fix - Check for samplers in the connections pannel by @leandrojofre in #4822
- Prompt Manager: Make main/PHI/aux injectable by @Cohee1207 in #4829
- Chat Completion: Reduce number of toggles in AI Response Configuration by @Cohee1207 in #4821
- Empty
swipesare not handled byensureSwipes. by @DeclineThyself in #4828 - Return character prefixes to brush image generation by @drake1138 in #4833
- Backfill missing swipe_info by @Cohee1207 in #4831
- Add verbosity control by @Cohee1207 in #4837
- Vertexaisearch by @mightytribble in #4834
- Enhanced CharX Import with Asset Extraction by @axAilotl in #4825
- Gemini: Add image request settings by @Cohee1207 in #4838
- Backported
/testsfrommacros-2.0. by @DeclineThyself in #4842 - Backgrounds menu tabs by @Cohee1207 in #4845
- Sync OpenRouter providers list by @cloak1505 in #4846
- Convert OAI tool_choice to Gemini functionCallingConfig for Gemini requests by @mightytribble in #4840
- Added MockServer class for tests by @DeclineThyself in #4843
- Chutes integration by @cxmplex in #4844
- Add optional Setter to changeMainApi by @SammCheese in #4853
- Feat: Add toggle to exclude think/reason blocks from smooth streaming by @Dakraid in #4849
- Facillitate extension use of ConnectionManagerRequestService by @qvink in #4841
- custom-request: Pass api-url for Z.AI and Vertex and fix if omitted by @Cohee1207 in #4859
- Fix Mistral's Max Temperature by @kashmirmydon in #4856
- Fix path to sprites construction by @Cohee1207 in #4860
- Implement chat backups browse menu by @Cohee1207 in #4862
- Regex cache by @Cohee1207 in #4858
- Fixed
isModifiedKeyboardEventorder of operations. by @DeclineThyself in #4866 - "N" support for llama.cpp by @Beinsezii in #4869
- Backported refactor of the chats endpoint from
feat/chat-tree.by @DeclineThyself in #4870 - Add docker data directories to .dockerignore by @equal-l2 in #4873
- Add an explicit
cache_controlto the first system message for OpenRouter Claude by @chungchandev in #4872 - Fix: preserve attached files during file input changes by @Cohee1207 in #4877
- Replace Google Translate library by @Cohee1207 in #4884
- Refactor CC API async route handlers by @Cohee1207 in #4885
- Chevrons can overlap with other elements. by @DeclineThyself in #4878
- Correct error message in evalBoolean by @Kexus in #4889
- Macros 2.0 (v0.3) - Replacing the existing Macro System with a new Macro Engine by @Wolfsblvt in #4820
- Z.AI: Add image generation and web search by @Cohee1207 in #4895
- Gemini: add media resolution select by @Cohee1207 in #4775
- Implement Gemini thought signatures by @mightytribble in #4886
- Migrate substituteParams calls to new engine by @Cohee1207 in #4901
- Refactor ElevenLabs TTS API key handling by @Cohee1207 in #4906
- Add caching system prompt feature for OpenRouter Gemini by @chungchandev in #4903
- Add model selection support for llama.cpp router mode by @my-alt-acct in #4910
- Fix context size limitation for llama.cpp router mode by @my-alt-acct in #4914
- Updated Avatar Style and
Hide Chat Avatarstitle text. by @DeclineThyself in #4908 - Comfyui serverless runpod image generation by @9nbf7c4q6b-lgtm in https://github.com/SillyTavern/SillyTavern/...
1.14.0
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
OFFvalues 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
- Extracted
messageEditandmessageEditCancelfrom.mes_editand.mes_edit_cancelby @DeclineThyself in #4633 - CC: Add advanced formatting null settings notice by @Cohee1207 in #4661
- Allow blockquotes with encoded tags by @Cohee1207 in #4662
- Added deleteMessage method by @bmen25124 in #4666
- feat: set sortable handle for regex by @StageDog in #4667
- feat: Apply preset regexes before scoped regexes + avoid unnecessary popping up by @StageDog in #4672
- feat: add move up/down functionality for alternate greetings by @Cohee1207 in #4676
- fix: timeout git process after 5 minutes of inactivity by @Cohee1207 in #4673
- Refactored
swipeand movedmessageEditto a separate function. by @DeclineThyself in #4610 - Refactor message edit function by @Cohee1207 in #4679
- Fixed crash in
parseOpenAIChatLogprobswhentop_logprobsis empty. by @DeclineThyself in #4680 - Add official GLM API as CC provider by @Cohee1207 in #4678
- feat: [Electron Hub] Support Vector Storage, Better searching for image engine by @snowby666 in #4540
- Update default sampler presets for Text Completion and AI Horde / Kobold Classic by @Cohee1207 in #4686
- update dreamgen presets by @DreamGenX in #4683
- Chat Completion: Streamline settings and API key handling by @Cohee1207 in #4687
- If the
world-infohas no comment, show it's keys in the placeholder. by @DeclineThyself in #4681 - Prevent propagation and editing of 'json_data' field in character data by @Cohee1207 in #4690
- fix: Enhances model display for Fal.ai image gen source by @Dakraid in #4694
- Fix koboldcpp abort generation error by @EugeoSynthesisThirtyTwo in #4693
- Fixed a bug in
sendMessageAs. by @DeclineThyself in #4706 - Don't split multiswipes unless requested by @Cohee1207 in #4703
- Refactored
mes_edit_upandmes_edit_downintomessageEditMove. by @DeclineThyself in #4704 - Character settings overrides UI by @docfail in #4707
- Add Full Support for BYAF Archives by @docfail in #4701
- Add Start Reply With to master import/export by @Cohee1207 in #4716
- Remove unnecessary check for swipe info to fix #4717 by @docfail in #4718
- Unblock textarea send during edit by @Cohee1207 in #4714
- Multiple attachments by @Cohee1207 in #4719
- Fixed bug in
syncMesToSwipe.""is falsy and a valid message. by @DeclineThyself in #4733 - Support multiple images in single API response by @Cohee1207 in #4734
- Prevent Esc from closing editor during composition by @fathom0324 in #4738
- OpenRouter: Add as vector storage provider by @Cohee1207 in #4736
- Audio media attachments by @Cohee1207 in #4741
- Refactor flattenSchema to simplify JSON schema for Google Generative … by @bmen25124 in #4711
- fix: reorder regex import target popup by @StageDog in #4744
- Google: Add Veo models by @Cohee1207 in #4742
- fix #3199: firefox using cached images instead of new images. by @DeclineThyself in #4743
- TC: Allow setting empty JSON schema by @Cohee1207 in #4746
- Add captioning for video attachments by @Cohee1207 in #4749
- Add audio/video inlining for OpenRouter by @Cohee1207 in #4751
- Raise max response length to 128k for GPT-5 models by @madobeichika in #4753
- Small refactoring to enhance HTML escaping to include single quotes by @Wolfsblvt in #4755
- Fix: Prevent data loss on bulk regex move to scoped scripts by @AzureKarasuba in #4760
- Refactor: make whitelist validation a bit more robust by @Wolfsblvt in #4757
- Feat: Improve multiline input handling in popups by @Wolfsblvt in #4756
- Add max-height and scrolling to world info entry key input fields by @Wolfsblvt in #4769
- OpenAI: Add Sora 2 API by @Cohee1207 in #4748
- Vertex: Add Vertex AI-specific safety setting by @Cohee1207 in #4770
- Feature: allows sorting tags by most used by @AzureKarasuba in #4768
- Preserve media playback state when running appendMediaToMessage by @Cohee1207 in #4771
- Add Gemini 3 for Vertex AI by @equal-l2 in #4777
- feat: add siliconflow chat provider by @qychen2001 in #4764
- Add option to keep manually selected samplers on API Type switch by @leandrojofre in #4692
- Feat/Link sampler selection lock to TC API Type by @leandrojofre in #4782
- Z.AI: Add endpoint selection by @Cohee1207 in #4789
- Fixed layout thrashing when
Stream Fade-InandAuto-scroll Chatare enabled. by @DeclineThyself in https://github.com/SillyT...
1.13.5
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
/getpersonabookand/getcharbookcommands. /genrawnow 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
- Update ru-ru locale by @Yokayo in #4522
- fix(perf): disable periodic expired item check in node-persist by @GoldenglowMeow in #4521
- Backgrounds Drawer Max Height by @Vibecoder9000 in #4515
- div id="logo block" update by @Vibecoder9000 in #4524
- Layout Update by @Vibecoder9000 in #4514
- feat: [Electron Hub] Added Text-to-Speech, Prompt cost, Sort/Group/Se… by @snowby666 in #4528
- Add new WI position 'outlet' to expose WI entries triggered to be placed as macros literally anywhere by @Wolfsblvt in #4523
- Add new Grok models by @equal-l2 in #4541
- Fix: Close chat before performing deletion by @Cohee1207 in #4545
- Assets: Display extension author in the list by @Cohee1207 in #4551
- Fix creator notes display field (in char panel) not updating when changed in Advanced Definitions by @Wolfsblvt in #4552
- Update BG header layout by @Vibecoder9000 in #4519
- Feat: add first and last buttons to pagination component by @andrempiva in #4560
- Bump tar-fs from 3.0.9 to 3.1.1 in /tests by @dependabot[bot] in #4561
- Streaming fade-in animation by @Cohee1207 in #4568
- Scroll to top button by @Vibecoder9000 in #4569
- Performance improvements due to using chatElement instead of $('#chat'). by @DeclineThyself in #4576
- Fix MiniMax (TTS) pitch on API calls being the wrong range by @Wolfsblvt in #4578
- feat: Add {{notChar}} macro for participant list by @Quairon-Nailo in #4579
- Allow saving empty secrets via secret manager and slash command by @Cohee1207 in #4580
- Fix listing tags already assigned to a char on tag import popup by @Wolfsblvt in #4582
- Extend Update/Replace character function to replace directly from URL + Fixes on cached thumbnail by @Wolfsblvt in #4581
- Fix duplicate CHARACTER_MESSAGE_RENDERED events during streaming by @shanmaocc in #4584
- Small change, (visually) disable "Link to Source" on characters that weren't downloaded from a source by @Wolfsblvt in #4588
- Emit prompt events in generateRaw by @Cohee1207 in #4587
- Fix make
/profileawait the for an actual successful API connection by @Wolfsblvt in #4589 - Emit event on message swipe deletion by @Cohee1207 in #4590
- Persona description editor expand by @Cohee1207 in #4591
- Fix group chat on new chat not respecting saved persona connections by @Wolfsblvt in #4594
- Fix re-enable character source (open link) when group is selected by @Wolfsblvt in #4592
- Hide self-responses option in group chat unless "natural" strategy chosen by @Wolfsblvt in #4593
- Authentik automatic login support by @dopp1e in #4600
- Small fix to not show a (wrong) error on quickly switching to group chat by @Wolfsblvt in #4601
- Allow create new world books via
/getpersonabookand/getcharbookby @Wolfsblvt in #4597 - Fix not jumping twice to group chat when creating a new group chat with deleting the old one by @Wolfsblvt in #4602
- Update GitHub workflows to use
ISSUES_BOT_TOKEN, so that they may chain-trigger other workflows. maybe. hopefully. by @Wolfsblvt in #4606 - feat: emit dryRun for GENERATE_AFTER_DATA by @StageDog in #4614
- deleteSwipe now emits the deleted message Id. by @DeclineThyself in #4609
- Reprint non-tainted group chat on switching personas by @Wolfsblvt in #4603
- Fix trapped cursor on sampler input by removing focus call on event by @Wolfsblvt in #4607
- Summarize Popout placement by @IceFog72 in #4615
- Preset Regex: event change by @StageDog in #4616
- Fix font size difference in API Connections dropdowns by @Trahloc in #4620
- Workflows: Replace ISSUES_BOT_TOKEN with GitHub App for labeling + 'against release' auto comment by @Wolfsblvt in #4621
- Workflows Switch all to use app token/app for any PR/issue labeling/commenting action by @Wolfsblvt in #4624
- Refactor: add has() and get() to MacrosParser by @Wolfsblvt in #4626
- Update contribution guidelines by @Cohee1207 in #4613
- Preset Regex: refactor regex scope detection by @StageDog in #4618
- Regex: Code clean-up by @Cohee1207 in #4628
- Add -webkit-tap-highlight-color for smoother touch experience by @RivelleDays in #4630
- Remove dead Gemini 1.5 models, and clean up by @cloak1505 in #4636
- Add required icon sizes for PWAs on Firefox for Android by @Mijyuoon in #4641
- Added "custom_prompt_post_processing" to custom-request by @bmen25124 in #4639
- feat: prevent scrolling of containers when using focused number inputs by @Cohee1207 in #4629
- Preset Regex: add preset type for script regexes by @Cohee1207 in #4642
- expose openThirdPartyExtensionMenu for Video Avatar extension by @Vibecoder9000 in #4646
- groupMemberListPopout placement by @IceFog72 in #4649
- Fix off-by-one cases in user prompt filler logic by @Cohee1207 in #4648
- Add bulk and drag&drop to chats import by @Cohee1207 in #4652
- Staging by @Cohee1207 in #4656
New Contributors
- @GoldenglowMeow made their first contribution in #4521
- @DeclineThyself made their first contribu...
1.13.4
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
- feat: Advanced Regex Chain Debugger and Testing Panel by @MAX-TAB in #4418
- Update dependencies by @Cohee1207 in #4447
- fix: Slash command descriptions and argument help text are not translated by @MAX-TAB in #4434
- Update ru-ru locale by @Yokayo in #4449
- Fix JannyAI error handling in #4460
- Chat Completion: Adjust depth of 0-depth injects on continue with prefill by @Cohee1207 in #4452
- Header change by @Vibecoder9000 in #4465
- Update zh-CN translations by @Tosd0 in #4466
- Fix compiler errors in public/global.d.ts by @epyllia in #4464
- fix: Resolve streaming output for Vertex AI Express Mode by @AliceRabbit in #4474
- a11y: Setup observers for element roles by @Cohee1207 in #4469
- More modern backgrounds buttons and filename by @Vibecoder9000 in #4484
- Server: Support passphrase for SSL private key by @Cohee1207 in #4488
- Server: Add host whitelisting by @Cohee1207 in #4476
- Add Electron Hub as Chat Completions Provider by @snowby666 in #4458
- Backgrounds Border Conflicts by @Vibecoder9000 in #4491
- Add: id="PersonaManagement" to Persona Management div by @RivelleDays in #4495
- Reasoning: Support auto-parse for impersonation results by @Cohee1207 in #4489
- feat: Regex Presets by @Tosd0 in #4468
- Fix: Do not replace newlines inside of pre blocks by @Cohee1207 in #4498
- Improvement: Add Upload Button to Image Gallery by @RivelleDays in #4500
- Fix/cleanup and background interactability (keyboard navigation, focus/hover) by @Wolfsblvt in #4503
- Change Ctrl+Enter handling for non-empty text input to send, instead of regenerate by @Wolfsblvt in #4504
- Fix toast positioning inside popups to align with the "Notifications" positioning option by @Wolfsblvt in #4506
- Implement robust quote extraction for TTS narration with support for nested quotes by @Wolfsblvt in #4502
- Improvement: Enhanced UI Consistency by @RivelleDays in #4499
- feat: Add Azure OpenAI chat completions provider by @nfuller286 in #4456
- Sync OpenRouter providers list by @cloak1505 in #4509
- Add Thai Translation by @Rawi1005 in #4513
- Staging by @Cohee1207 in #4516
New Contributors
- @epyllia made their first contribution in #4464
- @snowby666 made their first contribution in #4458
- @nfuller286 made their first contribution in #4456
- @Rawi1005 made their first contribution in #4513
Full Changelog: 1.13.3...1.13.4
1.13.3
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:
- If you are using system-provided templates, restore your context and instruct templates to their default state.
- 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
trimargument to the/genand/sysgencommands to trim the output by sentence boundary. - The
nameargument of the/gencommand 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
- Fix convert to persona with unusual names by @Cohee1207 in #4319
- AI Studio/Vertex AI: add seed param by @Cohee1207 in #4314
- feat: add tts provider MiniMax by @MindsMaster in #4309
- Deprecate 01.ai chat completion source by @Cohee1207 in #4327
- fixes #4324: injectedIndices becomes invalidated with a off-by-one in… by @alekslt in #4325
- Feat/moonshot api by @Cohee1207 in #4330
- Add command-a-vision support by @equal-l2 in #4340
- Add copy option to move WI entry by @Cohee1207 in #4335
- Support gzip compression for tokenizer downloads by @Cohee1207 in #4348
- Fix duplication of multi-line example message separators in instruct mode by @crimeragames in #4347
- Allow extensions to specify minimum ST client version by @qvink in #4350
- feature: ignore budget switch by @kallewoof in #4354
- Add gpt-4o-mini-tts model with character voice instructions #3879 by @Ni-co-la-s in #4352
- Instruct: Add Sequences as Stop Strings control by @Cohee1207 in #4355
- Text Completion: Inject Story String @ depth by @Cohee1207 in #4362
- feat(client): desktop version uses select2 to search, filter, and select by @pAnhTri in #4359
- Add multiple voice per character in TTS extension by @Ni-co-la-s in #4367
- feat: Add close all reasonings button by @andrempiva in #4375
- Fix Soulkyn import by @buzz in #4372
- Persist actionable tag states on reload by @Cohee1207 in #4368
- Add Fireworks AI Provider Support by @ershang-fireworks in #4374
- Fix overly sticky auto-scroll behavior by @Christoph-D in #4382
- Added saveMetadataDebounced to context, fixed 0 values for custom-req… by @bmen25124 in #4386
- bug-fix: adhere to chat template hash bound settings when a new model appears using the same hash as a bound one by @kallewoof in #4393
- Update ru-ru locale by @Yokayo in #4401
- Add support for named regex capture groups. by @zeroDtree in #4397
- Add a comment regarding hidden OpenRouter providers by @cloak1505 in #4406
- feat: Add Character Quick Reply Sets by @MAX-TAB in #4215
- Add support for maximizing alternate greeting editor by @sakhavhyand in #4413
- feat: Send Quick Reply Before Message Generation by @MAX-TAB in #4407
- Add Variety Boost option for NovelAI image generation. by @sirius422 in #4417
- Add CometAPI as a model provider in "Chat Completion" by @tensornull in #4402
- Improve tag visibility toggle logic by @dfaker in #4425
- Remove continue prompt "clean-up" function by @Cohee1207 in #4422
- Add Harmony template by @Cohee1207 in #4431
- Staging by @Cohee1207 in #4444
New Contributors
- @MindsMaster made their first contribution in #4309
- @alekslt made their first contribution in #4325
- @crimeragames made their first contribution in #4347
- @Ni-co-la-s made their first contribution in #4352
- @pAnhTri made their first contribution in #4359
- @andrempiva made their first contribution in #4375
- @ershang-fireworks made their first contribution in #4374
- @Christoph-D made their first contribution in #4382
- @zeroDtree made their first contribution in #4397
- @tensornull made their first contribution in #4402
- @dfaker made their first contribution in #4425
Full Changelog: 1.13.2...1.13.3
1.13.2
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.enableAccessLogsetting. - 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
/injectcommand: An ID will be automatically generated if not provided and will be returned as command output./genrawcommand: Added aprefillparameter.{{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
- Allow message swipe gens with image attachments by @Cohee1207 in #4184
- KoboldAI Instruct format preset by @henk717 in #4193
- Fixed minor avatar cropping bug in avatars.js by @02loka in #4192
- Fix attachment file extension extraction by @GregW6 in #4199
- Image Generation: Support video outputs for ComfyUI by @Cohee1207 in #4194
- Refactor saveBase64AsFile uploads by @Cohee1207 in #4200
- Removing zh-tw translations for specific extension by @qvink in #4208
- Fix default emojis expression fallback setting resetting on reload by @Wolfsblvt in #4206
- Select2 visual bug fix by @qvink in #4207
- Add backfill for missing WI entries fields by @Cohee1207 in #4203
- feat(elevenlabs): add new models and deprecate old ones by @augusteo in #4212
- Feature/Perchance AI Character Chat import by @m-petra-fn in #4211
- Implement persona thumbnails by @Cohee1207 in #4210
- Add Speed Control to ElevenLabs TTS Provider by @augusteo in #4213
- feature: customizable mappings for presets per model name / chat template by @kallewoof in #4153
- Add persona titles by @Cohee1207 in #4224
- Current Mistral Small 24B Instruct Format by @Vhallo in #4226
- Bugfix - Clicking on tag view list toggles checkbox by @m-petra-fn in #4227
- Refactor: Replace Deprecated Code by @GregW6 in #4221
- Non-streaming narrate by paragraphs setting now actually works automatically regardless of streaming-related settings. Resolves #4228. by @Erquint in #4232
- Improve sanitation of CSS pseudo-classes by @Cohee1207 in #4230
- Move itemized prompts into separate module by @Cohee1207 in #4229
- Move Kobold Classic settings into related module by @Cohee1207 in #4234
- Feature/add character tags to message div option by @m-petra-fn in #4225
- OpenRouter: match both id/text in select2 by @Cohee1207 in #4237
- Fix FAL.AI models list endpoint by @jenrzzz in #4236
- Move NovelAI settings to respective module by @Cohee1207 in #4238
- Move text completion settings to respective module by @Cohee1207 in #4239
- Move default slash commands to respective module by @Cohee1207 in #4240
- Replace ajax with fetch by @Cohee1207 in #4241
- Preset Manager: Add methods for reading/writing custom data by @Cohee1207 in #4246
- Move system messages init into separate module by @Cohee1207 in #4251
- Add vision support for Grok 4 by @equal-l2 in #4254
- /inject: auto-generate ID and fix argument description by @Cohee1207 in #4253
- Move event types + new events by @Cohee1207 in #4257
- Ooba nsigma support. by @Ph0rk0z in #4258
- Fix underscore typo for nsigma. by @Ph0rk0z in #4259
- Ability to specify multiple messages and roles in generateRaw() by @qvink in #4264
- Add Moonshot AI to OpenRouter providers by @cloak1505 in #4269
- adding prefill parameter to generateRaw() by @qvink in #4266
- apply gemini safety settings as extra_body in OpenRouter requests by @Fensterbank in #4256
- Add Moonshot AI instruct template by @cloak1505 in #4270
- Added structured output for common APIs by @bmen25124 in #4272
- Refactor generateRaw/generateQuietPrompt calls by @Cohee1207 in #4277
- CC/PM: Add generation type trigger prompt filter by @Cohee1207 in #4281
- chat templates: add Kimi K2 (Moonshot AI) chat template derivation by @kallewoof in #4283
- Characters list top panel touchup by @Cohee1207 in #4282
- Add generation type triggers to world info by @Cohee1207 in #4286
- Feat/global install by @Cohee1207 in #4289
- Remove Window AI from CC sources by @Cohee1207 in #4294
- Redesign Creator's Note block by @cohee...
1.13.1
SillyTavern 1.13.1
News
- Node.js 18 has reached its EOL, please update Node runtime to the latest LTS version to continue receiving future updates.
secrets.jsonfile 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//setwifieldcommands.
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
ifcommand. - Fixed performance of "Back to parent chat" operation.
Community updates
- add ability for exts to req other exts by @RossAscends in #4023
- Regex: allow multiple definitions in a single file by @gakada in #3967
- Import character card from Soulkyn by @buzz in #4042
- Add Vertex AI Full Version support in #4046
- refresh voices upon checkReady in openai-compatible TTS by @rsxdalv in #4058
- Fix typos by @omahs in #4057
- Clean console debugs for group chats by @leandrojofre in #4060
- docs: edited the link to the forks badge by @Radovenchyk in #4059
- Recent chats: add delete and rename buttons by @Cohee1207 in #4051
- Do not replace inline HTML img with image embed by @Cohee1207 in #4063
- Added NAI Diffusion V4.5 Full and V4.5 Curated by @closuretext in #4071
- Allow swipe right to generate first message in non-pristine chats by @Cohee1207 in #4077
- Implement data clean-up dialog by @Cohee1207 in #4072
- Gemini inline video by @nbrown725 in #4078
- PPP command and connection profiles by @Cohee1207 in #4079
- add minimum requirement of 2 [A-za-z] for slashcommand autocomplete to show up by @RossAscends in #4080
- Fix #4083 JSON parse error when tool does not accept parameters by @iarna in #4084
- Feature: Allow tools to accept arrays of values as an array by @iarna in #4085
- fix: lowercase remote-user header in authelia auto-login procedure by @NicodeSS in #4086
- Bump tar-fs from 3.0.8 to 3.0.9 in /tests by @dependabot in #4088
- Bump multer from 2.0.0 to 2.0.1 by @dependabot in #4093
- Sync OpenRouter providers list by @cloak1505 in #4101
- Add gemma-3n-e4b-it by @cloak1505 in #4102
- UI performance optimizations and refactoring by @RossAscends in #4096
- Implement Google AI Studio model list dynamic fetching in #4113
- animated bg thumb toggle by @Vibecoder9000 in #4109
- Implement lazy loading for background menu by @Vibecoder9000 in #4110
- Add skip save checks to all on-init event handlers by @Cohee1207 in #4117
- Replace url.origin with trimTrailingSlash in #4118
- Refactor and fix type errors in WI and script modules by @Cohee1207 in #4123
- add dots1 templates by @LumiWasTaken in #4128
- Add PPP types allowing tool calls by @Cohee1207 in #4125
- Update outdated
readme-zh_cn.mdby @MAX-TAB in #4134 - TTS WebUI provider by @rsxdalv in #4097
- Fix Typo in Error Message by @leopardracer in #4140
- Solve the issue where selecting an unofficial Gemini model and then clicking 'Connect' causes the selection to be reset in #4139
- Secrets manager by @Cohee1207 in #4131
- Update npm dependencies by @Cohee1207 in #4142
- Added new slash command member-count by @Culpeo in #4149
- Increase
's opacity from 0.2 to 0.4 by @cloak1505 in #4144 - Support for chatterbox api by @Boof2015 in #4145
- Update ru-ru locale by @Yokayo in #4150
- Rework browser launch functionality by @Cohee1207 in #4143
- Improve and Add Traditional Chinese Translations by @RivelleDays in #4156
- feat: Added AI/ML API Provider Support by @D1m7asis in #4135
- Emotions: Use the full context for main API by @kingbri1 in #4157
- More expression fixes for main API by @kingbri1 in #4162
- Add region option for vertex express mode to access more models by @AliceRabbit in #4155
- Feature: Google Native TTS by @powercaller in #4163
- Update: Disabled VertexAI api option in the Gemini TTS settings by @powercaller in #4168
- Add Extension Hook for Stable Diffusion Prompt Processing by @coffeegrind123 in #4167
- Regex bulkedit select all toggle button add by @imesha10 in #4170
- Make back to parent chat button faster (PR for #4177) by @imesha10 in #4178
- Add support for characterFilter to getEntryField and setEntryField by @WanderingMouse in #4185
- Staging by @Cohee1207 in #4189
New Contributors
1.13.0
SillyTavern 1.13.0
Breaking changes
- Chat Completion: The "Request model reasoning" toggle now controls just the visibility of the reasoning tokens returned by the model. To control the model reasoning request, use the "Reasoning Effort" setting. If unsure, "Auto" is the recommended option for most users. Please check the documentation for more details: https://docs.sillytavern.app/usage/prompts/reasoning/#reasoning-effort
- CSS styles added to the "Creator's Notes" character card field are now processed the same way as styles in chat messages, i.e. classes are automatically prefixed, the external media preference is respected, and styles are constrained to the Creator's Note block.
Backends
- Claude: Added Claude 4 models to the list. Added the
extendedTTLparameter to extend the cache lifetime if using prompt caching. Added backend-provided web search tool support. - Google AI Studio: Reorganized and cleaned up the models list. Models which are redirected to other models are marked as such. Reintroduced the reasoning tokens visibility toggle.
- Google Vertex AI (Express mode): Added as a Chat Completion source. Only Express mode keys are supported: https://cloud.google.com/vertex-ai/generative-ai/docs/start/express-mode/overview
- Pollinations: Added as a Chat Completion source: https://pollinations.ai/
- MistralAI: Added devstral and new mistral-medium models to the list.
- OpenRouter: Synchronized the providers list.
- llama.cpp: Enabled
nsigmasampler controls. Added amin_keepsetting. Disabled thetfssampler as it is not supported by the backend. - Mancer: Enabled DRY and XTC sampler controls. Disabled the Mirostat sampler as it is not supported by the backend.
Improvements
- Welcome Screen: Completely redesigned the welcome screen, added a recent chats display, automatic creation of a permanent Assistant, and the ability to set any character as a default Assistant. See the documentation for guidance: https://docs.sillytavern.app/usage/welcome-assistants/
- Temporary Chats: Temporary chats can now be restored by importing a previously saved chat file.
- Character Cards: Styles defined in the "Creator's Notes" field are now processed the same way as styles in chat messages and constrained to the Creator's Note block. Added a per-character setting to allow applying styles outside of the Creator's Note block.
- Extensions: Added branch selection to the extension installation dialog. The branch can also be switched in the "Manage extensions" menu.
- UI Themes: "Click-to-Edit" theme toggle is decoupled from the "document mode" style. Added an ability to set toast notifications position in the theme settings. Added a Rounded Square avatar style.
- Style tags defined in greeting messages will now always be applied, even if the message is not rendered. Use the "Pin greeting message styles" user setting to control this behavior.
- World Info: Added per-entry toggles to match entry keys with the character card fields.
- Chat Completion: Added source-specific Reasoning Effort options: Auto, Minimum, Maximum. The "Request model reasoning" toggle now only controls the visibility of the reasoning tokens returned by the model.
- Chat Completion: "Prompt Post-Processing" can be used with any Chat Completion source. Added "Merge into a single user message" option to the post-processing settings. Tool calling is not supported when using Prompt Post-Processing.
- Chat Completion: Added a toggle to control the link between Chat Completion presets and API connections. When enabled (default), API connection settings will be bound to the selected preset.
- Prompt Manager: Added an indication of where the prompts are pulled from. Added an ability to set priorities of prompts on the same injection depth (similar to World Info ordering behavior).
- Text Completion: Added a Post-History Instructions field to the System Prompt settings.
- Text Completion: Added GLM-4 templates. Fixed Lightning 1.1 templates. Pygmalion template merged with Metharme template.
- Advanced Formatting: Non-Markdown Strings do not automatically include chat and examples separators anymore. Use
{{chatStart}},{{chatSeparator}}value to restore the classic behavior. - Backgrounds: Video backgrounds can now be uploaded with automatic conversion to animated WebP format. Requires a converter extension to be installed: https://github.com/SillyTavern/Extension-VideoBackgroundLoader
- Server: Added a
--configPathcommand line argument to override the path to theconfig.yamlfile. Missing default config entries will be added even if the post-install script is not run. - Tags: Added an ability to hide tags on characters in the character lists.
- Various localization updates and fixes.
Extensions
- Image Generation: Added gpt-image-1 model for OpenAI. Added
{{charPrefix}}and{{charNegativePrefix}}global macros. - Image Captioning: Added Pollinations as a source. Added secondary endpoint URL control for Text Completion sources. Fixed llama.cpp captioning support.
- Vector Storage: Added embed-v4.0 model by Cohere.
STscript
- Added
/testand/matchcommands to perform RegEx operations on strings. - Added
raw=falseargument to control the quotes preservation of the message-sending commands (e.g./send,/sendas). - Added
/chat-jumpcommand to quickly scroll to a message by its ID. - Added a
nameargument to the/syscommand to set a name displayed on the message. - Added
/clipboard-getand/clipboard-setcommands to read and write to the system clipboard.
Bug fixes
- Fixed vectors generated by KoboldCpp not being saved correctly.
- Fixed group chat metadata being lost when renaming a group member.
- Fixed visual duplication of Chat Completion presets on renaming.
- Fixed sending a message on Enter press while IME composition is active.
- Fixed an edge case where the Continue suffix was not correctly parsed in instruct mode.
- Fixed compatibility of tool definitions with the DeepSeek backend.
- Fixed xAI selected model not being saved to presets.
- Fixed a server crash on extracting corrupted ZIP archives.
- Fixed "hide muted sprites" toggle not being preserved per group.
- Fixed logprobs token reroll when using auto-parsed reasoning.
Community updates
- Make scrollbars make sense. by @Erquint in #3887
- feat(slash-commands): Add /goto-floor command and implement message highlighting by @awaae001 in #3898
- Thinking Budget 2.5: Electric Googaloo by @Cohee1207 in #3893
- Add reasoning effort control for CC OpenRouter by @Cohee1207 in #3902
- chat preset: GLM-4 by @kallewoof in #3906
- Remove last message role restriction for Cohere by @cloak1505 in #3908
- trivial: remove extraneous \n after sop token by @kallewoof in #3912
- Print full Google response by @cloak1505 in #3914
- Refactor WI init to init function for more consistent startup by @Wolfsblvt in #3915
- Normalize instruct names behavior and repair Lightning 1.1's system prompt by @cloak1505 in #3911
- Vision cleanup by @equal-l2 in #3900
- Fix continuation suffix trimming by @Cohee1207 in #3913
- Check instruct activation regex before selecting context template by @Cohee1207 in #3916
- Update zh-cn translation by @A1KESH1 in #3921
- Allow read-only installation by @wrvsrx in #3857
- Prune Google models by @cloak1505 in #3919
- World Info chat-independent data matching by @BismuthGlass in #3889
- Add both
testandmatchregex commands by @BismuthGlass in #3928 - Check for
erroras well when parsing streaming responses by @Ristellise in #3937 - TC sysprompt: Add Post-History Instructions control by @Cohee1207 in #3926
- Update links to ollama gihub by @huisman in #3942
- Fix the issue where deleting files on Windows may cause the application to crash. by @wickedcode01 in #3940
- Add a named argument of "name" to the
/sysslash command by @InspectorCaracal in #3946 - Adds a check for jailbreaks existing in new TC PHI by @InspectorCaracal in #3948
- Remove Pygmalion instruct template (duplicate of Metharme) by @cloak1505 in #3941
- Add branch selection on extension installer by @Cohee1207 in #3933
- Update ru-ru translation by @Yokayo in #3930
- Export of swipe_right function by @Samueras in #3953
- Upload video bg via converter extension by @Cohee1207 in #3803
- Update zh-tw.json by @RivelleDays in #3957
- Add style pin feature for greeting messages by @Cohee1207 in #3955
- Add support for g...
1.12.14
SillyTavern 1.12.14
Backends
- Google AI Studio, OpenAI, MistralAI, Groq: Added new available models to the lists.
- xAI: Added a Chat Completion source.
- OpenRouter: Allow applying post-processing to the prompt.
- 01.AI: Updated provider endpoints.
- Block Entropy: Removed as it's no longer functional.
Improvements
- Added reasoning templates to Advanced Formatting panel.
- Added Llama 4 context formatting templates.
- Added disk cache for parsed character data for faster initial load.
- Added integrity checks to prevent corrupted chat saves.
- Added an option to rename Chat Completion presets.
- Added macros for retrieving Author's Notes and Character's Notes.
- Increased numeric limits of chat injections from 999 to 9999.
- Allow searching chats by file titles in the Chat Manager.
- Backend: Updated Jimp dependency to introduce optimized image decoding.
- World Info: Added "expand" button to entry content editor.
- World Info: Added a button to move entries between files.
- Disabled extensions are no longer automatically updated.
- Markdown: Improved parsing of triple-tilde code blocks.
- Chat image attachments are now clickable anywhere to expand.
<style>blocks are now excluded from quote styling.- Added a warning if the page is reloaded while the chat is still saved.
- Text Completion: Increased the limits of unlocked sliders.
- OpenRouter: Added a notice that web search option is not free.
Extensions
- Connection Profiles: Added reasoning templates to the connection profiles.
- Character Expressions: Added a "none" classification source option.
- Vector Storage:
- Added KoboldCpp as an embeddings provider.
- Added selectable AI Studio embeddings models.
- Added API URL overrides for supported sources.
STscript
- BREAKING:
/send,/sendas,/sys,/comment,/echono longer remove quotes from literal unnamed arguments. /buttons: Addedmultipleargument to allow multiple buttons to be selected./reasoning-set: Addedcollapseargument to control the reasoning block state./getglobalbooks: Added command to retrieve globally active WI files.
Bug Fixes
- Fixed swipe deletion overwriting reasoning block contents.
- Fixed expression override not applying on switching characters.
- Fixed reasoning from LLM/WebLLM classify response on expression classification.
- Fixed not being able to upload sprite when no sprite existed for an expression.
- Fixed occasional out-of-memory crash when importing characters with large images.
- Fixed Start Reply With trim-out applying to the entire message.
- Fixed group pooled order not choosing randomly.
- Fixed
/member-enableand/member-disablecommands not working. - Fixed OpenRouter OAuth flow not working with user accounts enabled.
- Fixed multiple persona selection not updating macros in the first message.
- Fixed localized API URL examples missing a protocol prefix.
- Fixed potential data loss in file renames with just case changes.
- Fixed TogetherAI models list in Image Generation extension.
- Fixed Google prompt conversion when using tool calling with post-history instructions.
Community Updates
- Workflow hotfixes by @Wolfsblvt in #3694
- gpt-4.5 detection tweak by @Succubyss in #3695
- New connection manager events, ConnectionManagerRequestService by @bmen25124 in #3603
- Fix corruption due to this_chid shift by @Cohee1207 in #3669
- Fix PR workflow by chaining actions by @Wolfsblvt in #3699
- New exported methods by @bmen25124 in #3701
- Hotfix pr workflow v2 by @Wolfsblvt in #3702
- Added "custom_url" to ChatCompletionService by @bmen25124 in #3706
- Fix deleting swipes overwriting reasoning by @Wolfsblvt in #3708
- Update ru-ru translation by @Yokayo in #3705
- Fix Expression Override not resetting if empty by @Wolfsblvt in #3709
- Reasoning templates by @Cohee1207 in #3700
- Add integrity check when saving solo chat files by @Cohee1207 in #3698
- change 01ai endpoint by @GhostXia in #3715
- Fixing user_prompt_bias being incorrectly added using generateRaw() by @qvink in #3711
- Fixing GitHub Workflows - again (maybe this time it works) by @Wolfsblvt in #3719
- Add macros for Author's Notes by @Cohee1207 in #3718
- Added group wrapper events by @bmen25124 in #3720
- Remove forced newline separator from group join wrappers by @Cohee1207 in #3722
- Clean reasoning from LLM/webLLM classify response on expression classification by @Wolfsblvt in #3726
- Fix not being able to upload sprite when no sprite existed for an expression by @Wolfsblvt in #3724
- Adds filtering to expressions to ignore labels that do not have sprites available by @Wolfsblvt in #3725
- Chat titles are now included in the search. Query terms don't have to occur in the same message anymore. by @Erquint in #3727
- Add ESLint PR check action by @Cohee1207 in #3728
- Use Node.js path parser to extract the filename stem in the chats search. by @Erquint in #3729
- OpenRouter: Allow applying prompt post-processing by @Cohee1207 in #3721
- Fix replacing user_prompt_bias on display by @Cohee1207 in #3731
- Add support for toggleable buttons/multiselect in
/buttonscommand by @Wolfsblvt in #3730 - Fix activatePooledorder() by @BrendanMcCauley in #3743
- Added stream support to "custom-request" by @bmen25124 in #3742
- Add disk cache for parsed character JSONs by @Cohee1207 in #3732
- Exported reloadEditor by @bmen25124 in #3744
- Fix group chid data attr in
performGroupMemberActionby @InspectorCaracal in #3746 - Adding option to disable removal of "{{user}}:" and "{{char}}:" in generateRaw() by @qvink in #3737
- added button to rename chat completion preset by @Scarlet-t in #3717
- OpenRouter: Fix OAuth flow with enabled accounts by @Cohee1207 in #3754
- Fix typo for 2.5 Pro Exp vision support by @cloak1505 in #3759
- chore: make layer updates exportable by @Bronya-Rand in #3761
- Add 'none' expression classifier API option and set as default by @Wolfsblvt in #3760
- Remove Block Entropy references by @equal-l2 in #3773
- Fix for generation interceptors messing with WI timed effects by @qvink in #3763
- Add expand editor for WI content by @Cohee1207 in #3765
- No updates for disabled extensions, unless you insist. by @Erquint in #3771
- Added move button for lorebook entries by @bmen25124 in #3768
- Added stop string cleanup, better stopping string param by @bmen25124 in #3766
- Fix persona select on new chat not rerendering first message (and not replacing
{{user}}macro) by @Wolfsblvt in #3778 - Remove prompt manager export popup by @Cohee1207 in #3783
- Add opt-in for rawQuotes in SlashCommand registration by @Cohee1207 in #3776
- Improve tilde code blocks in message formatting and TTS processing by @Cohee1207 in #3786
- Move extension buttons to a separate toolbar by @Cohee1207 in #3775
- Added api check for ConnectionManagerRequestService.handleDropdown by @bmen25124 in #3792
- Add support for KoboldCpp embeddings in Vector Storage by @Cohee1207 in #3795
- Update Jimp and add WASM plugins by @Cohee1207 in #3784
- Clickable image attachments — no more fiddling with the magnifying glass button. by @Erquint in #3793
- Unset chat field on import/export by @Cohee1207 in #3799
- Add beforeunload event listener to prompt user when chat is saving by @Cohee1207 in https://github.co...