Chat Completion: support for model-provided web search capabilities (Google AI Studio, OpenRouter).
Auth: added auto-extension of session cookies.
Build: added experimental support for running under Electron.
Extensions
Extensions can now provide their own i18n strings via the manifest.
Connection Profiles: added "Start Reply With" to profile settings.
Expressions: now supports multiple sprites per expressions.
Talkinghead: removed as Extras API is not being maintained.
Vector Storage: added WebLLM extension as a source of embeddings.
Gallery: added ability to change a displayed folder and sort order.
Regex: added infoblock with flag hints. Script with min depth 0 no longer apply to message being continued.
Image Captioning: now supports Cohere as a multimodal provider.
Chat Translation: now supports translating the reasoning block.
TTS: added kokoro-js as a TTS provider.
STscript
Added /regex-toggle command.
Added "name" argument to /hide and /unhide commands to hide messages by name.
Added "onCancel" and "onSuccess" handlers for /input command.
Added "return" argument to /reasoning-parse command to return the parsed message.
Bug fixes
Fixed duplication of existing reasoning on swipe.
Fixed continue from reasoning not being parsed correctly.
Fixed summaries sometimes not being loaded on chat change.
Fixed config.yaml not being auto-migrated in Docker.
Fixed emojis being desaturated in reasoning blocks.
Fixed request proxy bypass configuration not being applied.
Fixed rate and pitch not being applied to system TTS.
Fixed World Info cache not being invalidated on file deletion.
Fixed unlocked response length slider max value not being restored on load.
Fixed toggle for replacing macro instruct sequences not working.
Fixed additional lorebooks and character Author's Note connections being lost on rename.
Fixed group VN mode when reduced motion is enabled.
Community updates
Vectors: Don't use headers for source-specific fields in requests by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3495
Add 'return' and 'strict' to /reasoning-parse, and make all reasoning parsing strict by default by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3496
Implement reasoning parsing during streaming, based on provided prefix/suffix by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3484
Update ru-ru translation by @Yokayo in https://github.com/SillyTavern/SillyTavern/pull/3486
Fix renaming characters losing connections of several aux fields by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3497
Move access.log to data root by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3499
autoswipe length tooltip by @underscorex86 in https://github.com/SillyTavern/SillyTavern/pull/3510
Move webpack cache to data root by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3500
Auto-extend session cookie every 30 minutes by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3512
Feature: Add configurable X-Real-IP header support for rate limiting by @Zhen-Bo in https://github.com/SillyTavern/SillyTavern/pull/3504
Fix hidden reasoning models blocking auto-parsing from working by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3531
Update reasoning block coloring to CSS vars by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3530
add reasoning display switch in custom source by @yokuminto in https://github.com/SillyTavern/SillyTavern/pull/3535
Add Separate Access Logging Middleware with Configuration Option by @Zhen-Bo in https://github.com/SillyTavern/SillyTavern/pull/3526
Updated Groq model options to sync with official playground by @Kas1o in https://github.com/SillyTavern/SillyTavern/pull/3537
Support multiple expressions by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3403
Reasoning edit/parse updates by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3538
Update zh-tw.json by @RivelleDays in https://github.com/SillyTavern/SillyTavern/pull/3539
Optimize Dockerfile to use apk add with --no-cache by @PeterDaveHello in https://github.com/SillyTavern/SillyTavern/pull/3540
Update zh-tw.json: Added Missing Translations & Support for Third-Party Extensions by @RivelleDays in https://github.com/SillyTavern/SillyTavern/pull/3541
Assorted summary improvements by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3542
Get chat completion presets from preset manager by @qvink in https://github.com/SillyTavern/SillyTavern/pull/3544
Improve zh-TW Traditional Chinese locale a bit by @PeterDaveHello in https://github.com/SillyTavern/SillyTavern/pull/3547
Sonnet 3.7 by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3548
Claude 3.7 think mode by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3551
Exported getTextGenServer, extractMessageFromData methods. added opti… by @bmen25124 in https://github.com/SillyTavern/SillyTavern/pull/3554
New exports - getChatCompletionModel by @bmen25124 in https://github.com/SillyTavern/SillyTavern/pull/3558
Fix syncing swipe data on reasoning parse & utility function to sync swipe data by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3561
Immutable config by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3521
Expand Persona links/locking to characters and allowing more control on which persona to choose/load by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3346
Show forwarded IP in whitelist denied message by @stevelittlefish in https://github.com/SillyTavern/SillyTavern/pull/3563
Add CHARACTER_RENAMED_IN_PAST_CHAT event by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3564
Update TFS and DynaTemp Exponent to use 3 sig dig by @Reithan in https://github.com/SillyTavern/SillyTavern/pull/3574
Add locale data loading for extensions by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3573
Remove group chat starter message by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3572
Refactor server startup by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3567
Debug function to track missing dynamic translation fields (t and translate calls) by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3576
Add gpt-4.5-preview (best model ™️ - most expensive for sure) by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3577
add printMessages in st-context.getContext() by @AyeeMinerva in https://github.com/SillyTavern/SillyTavern/pull/3580
Always use string for this_chid by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3584
Account for generated depth on non-continue by @Reithan in https://github.com/SillyTavern/SillyTavern/pull/3587
Use chalk lib for console colorization by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3585
Whitelist Docker hosts by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3578
Revert "Account for generated depth on non-continue" by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3591
Added support for NovelAI Diffusion V4 Full via API to Image Generation extension. by @DAurielS in https://github.com/SillyTavern/SillyTavern/pull/3586
Allow specifying API in presetManager.getPresetList() by @qvink in https://github.com/SillyTavern/SillyTavern/pull/3592
Add missing samplers to TC restore preset by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3593
zh-CN translation by @Tosd0 in https://github.com/SillyTavern/SillyTavern/pull/3596
Update third-party dependencies by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3590
Generic generate methods by @bmen25124 in https://github.com/SillyTavern/SillyTavern/pull/3566
Fix continue duplicating reasoning block by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3606
Added error field check by @bmen25124 in https://github.com/SillyTavern/SillyTavern/pull/3609
Add gallery folder and sort order controls by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3605
Aya Vision support by @equal-l2 in https://github.com/SillyTavern/SillyTavern/pull/3615
Added time to first token by @bmen25124 in https://github.com/SillyTavern/SillyTavern/pull/3610
Add server events emitter by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3624
Add support for Electron by @annoawesome in https://github.com/SillyTavern/SillyTavern/pull/3618
Lazy load characters by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3614
Added translation to reasoning block by @bmen25124 in https://github.com/SillyTavern/SillyTavern/pull/3617
Add backend-provided websearch connectors for OpenRouter and Gemini by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3625
Add gemini tools support. by @Sorro123 in https://github.com/SillyTavern/SillyTavern/pull/3621
Update OpenRouter providers by @cloak1505 in https://github.com/SillyTavern/SillyTavern/pull/3630
Make mesExamples macros consistent by @kingbri1 in https://github.com/SillyTavern/SillyTavern/pull/3629
Re-enable logit bias and stop strings for 4.5 by @Succubyss in https://github.com/SillyTavern/SillyTavern/pull/3640
Vectors WebLLM by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3631
Prevent rollover on keyboard left swipe if repeating by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3644
Fix auto-parsing of continue from reasoning by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3634
Fix persona auto-lock to chat not working when the persona was already selected by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3646
Add 'start-reply-with' to Connection Profiles by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3632
(CC) Move continue nudge at the end of completion by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3611
Add info block for find regex flags by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3648
Add /input arguments to execute closures on success and on cancel by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3651
Use default middleware for parsing request body by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3652
Fix /buttons buttons not being displayed on log popup texts by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3657
Fix group creation inheriting tags from characters[0] by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3653
feature: 'kokoro-js' supports TTS #3412 by @felger1115 in https://github.com/SillyTavern/SillyTavern/pull/3656
Fix "Response Length" slider having wrong max value, caused by Mad Lab Mode init by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3659
Add markdown hotkeys support for expando editor on textareas that support markdown by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3662
Add group pooled order by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3660
Add "name" argument to /hide and /unhide by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3664
Dont count Continue as message 0 by @Reithan in https://github.com/SillyTavern/SillyTavern/pull/3594
exporting parseReasoningFromString() by @qvink in https://github.com/SillyTavern/SillyTavern/pull/3673
New context methods, added type parameter to message events by @bmen25124 in https://github.com/SillyTavern/SillyTavern/pull/3671
Added command-a-03-2025 and command-a tokenizer by @bmen25124 in https://github.com/SillyTavern/SillyTavern/pull/3679
Update github workflows for better issue & PR management, automating chores by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3678
chat-template: gemma 3 by @kallewoof in https://github.com/SillyTavern/SillyTavern/pull/3685
Add /regex-toggle slash command by @Wolfsblvt in https://github.com/SillyTavern/SillyTavern/pull/3682
Gemini inline images by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3681
Gemma 3 by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3686
No swiping hotkeys when modifiers are held. by @Erquint in https://github.com/SillyTavern/SillyTavern/pull/3688
Staging by @Cohee1207 in https://github.com/SillyTavern/SillyTavern/pull/3690
New Contributors
@Zhen-Bo made their first contribution in https://github.com/SillyTavern/SillyTavern/pull/3504
@yokuminto made their first contribution in https://github.com/SillyTavern/SillyTavern/pull/3535
@PeterDaveHello made their first contribution in https://github.com/SillyTavern/SillyTavern/pull/3540
@stevelittlefish made their first contribution in https://github.com/SillyTavern/SillyTavern/pull/3563
@Reithan made their first contribution in https://github.com/SillyTavern/SillyTavern/pull/3574
@AyeeMinerva made their first contribution in https://github.com/SillyTavern/SillyTavern/pull/3580
@DAurielS made their first contribution in https://github.com/SillyTavern/SillyTavern/pull/3586
@annoawesome made their first contribution in https://github.com/SillyTavern/SillyTavern/pull/3618
@Sorro123 made their first contribution in https://github.com/SillyTavern/SillyTavern/pull/3621
@felger1115 made their first contribution in https://github.com/SillyTavern/SillyTavern/pull/3656
@Erquint made their first contribution in https://github.com/SillyTavern/SillyTavern/pull/3688
Full Changelog: https://github.com/SillyTavern/SillyTavern/compare/1.12.12...1.12.13