When Claude extended thinking is used, generateRaw may return just the
first empty text block ('\n\n') WITHOUT throwing, since it's technically
truthy. The catch block never fires, and only a few or zero messages
get parsed.
Fix: after generateRaw returns, always compare result length against
the captured raw API data. If raw data has significantly more content,
use that instead.
Also added diagnostic console.warn logging to livestream flow
(stopLivestream caller trace, queue counts, display progress) to help
diagnose if the timer chain is being interrupted.
|
||
|---|---|---|
| chat-styles | ||
| connection_utils.js | ||
| index.js | ||
| LICENSE | ||
| manifest.json | ||
| README.md | ||
| settings.html | ||
| style.css | ||
🗣️ EchoChamber for SillyTavern
Bring your stories and conversations to life with a dynamic, AI-powered audience.
🆕 What's New
v4.2.1
- General fixes: Stopped generation on style change, fixed the limited chat history (it was getting trimmed)
- Proper structure: Fixed the structure of generation calls
v4.2.0
- Pop-out window: Open the chat in a separate window to move to another screen
- Improved panel controls: Power button now truly enables/disables the extension (hides panel AND stops generation). Separate collapse arrow for just hiding the panel
- Include Summary: Option to include chat summary from the Summarize extension
- Include World Info: Option to include active World Info/Lorebook entries
- Include Persona/Character: Options to include persona and character descriptions in context (thanks to leDissolution!)
- Style dropdown fix: Menu now opens upward when panel is at bottom position
- Livestream resume: Messages continue rolling after page refresh
ver4.1.4
- Increased max token limit calculations by user counts to prevent cut-offs.
ver4.1.3
- Updated the generation logic for Connection Profile, Ollama, and OpenAI-Compatible sources to use your global Max Response Length setting in SillyTavern.
- Added an optional API Key field to the "OpenAI Compatible" settings section.
ver4.1.2
- Fixed the bug that prevented you from generating the chat feed if the last message in the chat was the user's.
EchoChamber is a powerful extension for SillyTavern that generates a live reaction feed alongside your story. Whether it's a salt-fueled Discord chat, a viral Twitter feed, dramatic breaking news, or a sarcastic MST3K roasting session—EchoChamber immerses you in the world with AI-generated audience reactions.
EchoChamber panel on the right side with Discord/Twitch style reactions
✨ Feature Highlights
| Feature | Description |
|---|---|
| 🎭 10+ Chat Styles | Discord/Twitch, Twitter/X, Breaking News, MST3K, Thoughtful Analysis, Doomscrollers, and more |
| 🔌 Flexible Backends | Use your existing SillyTavern connection, or connect to Ollama, KoboldCPP, LM Studio, vLLM |
| 📍 4 Panel Positions | Place the feed at the Bottom, Top, Left, or Right of your chat |
| ⚡ Quick Controls | Instantly switch styles, adjust user count, and regenerate from the panel header |
| 🎨 Theme-Aware | Automatically inherits your SillyTavern theme colors |
| ✏️ Style Manager | Create, edit, import, and export custom chat styles |
| 🔤 Markdown Support | Full support for bold, italics, underline, and code in reactions |
📸 Style Showcase
Experience how EchoChamber reacts to your story with these built-in styles:
💬 Social Media & Live Chat
| 🎮 Discord / Twitch High-energy slang, emotes, and hype |
🐦 Twitter / X Viral threads, hot takes, and hashtags |
📺 Dramatic & Commentary
| 📢 Breaking News Dramatic ticker-style headlines |
🍿 Mystery Science Theater 3000 Sarcastic roasting and dry wit |
👀 Click to see more styles (Thoughtful, Doomscrollers, Dumb & Dumber)
| 🧠 Thoughtful Analysis Literate, philosophical discussions |
🤪 Dumb & Dumber Hilariously wrong interpretations |
| 💀 Doomscrollers Existential dread and gallows humor |
|
🔞 NSFW / Erotic Styles (Adult Content - Click to Expand)
⚠️ Warning: These styles contain explicit sexual content. Ava (Female) and Kai (Male) are provocative narrator personas.
| Ava NSFW | Kai NSFW |
🖼️ Panel Positions
EchoChamber adapts to your preferred layout. Position the reaction panel anywhere:
| Position | Best For |
|---|---|
| Bottom | Default, flows below chat input |
| Top | Fixed header above conversation |
| Left | Side panel, great for wide monitors |
| Right | Side panel, immersive reading experience |
Top position with Visual Novel mode and custom background
🛠️ Installation
- Open SillyTavern and click the Extensions button (🧩 puzzle piece icon)
- Select Install Extension
- Paste this URL:
https://github.com/mattjaybe/SillyTavern-EchoChamber - Click Install and refresh SillyTavern
⚙️ Configuration
Settings Panel
Access EchoChamber settings from the Extensions panel:
Generation Engine Options
| Engine | Description |
|---|---|
| Connection Profile ⭐ | Use your existing SillyTavern connection profiles (Recommended) |
| Ollama | Connect directly to local Ollama instance |
| OpenAI Compatible | Works with KoboldCPP, LM Studio, vLLM, TabbyAPI, etc. |
💡 Tip: Using Connection Profile is the easiest setup—it uses your existing SillyTavern API configuration with no extra setup needed.
Content Settings
- Style — Choose from 10+ built-in styles or your custom creations
- Position — Bottom, Top, Left, or Right panel placement
- Users — Number of chat participants to generate (1-20)
- Font — Adjust text size for readability
- Opacity — Control panel transparency
- Include User Input — Include your messages in the reaction context
🎨 Style Manager
Create, edit, and share custom chat styles with the powerful built-in Style Editor.
Style Editor
Click Manage in the Style Manager section to open the full editor:
Edit any style's prompt template, export styles, or create new ones
Features:
- Left sidebar — Browse all built-in and custom styles
- Prompt editor — Full control over the style's system prompt
- Export — Save styles as
.mdfiles to share with others - Delete — Remove custom styles (built-in styles can be hidden)
Creating New Styles
Click + New to create a custom style. Choose between two creation modes:
| ✨ Easy Mode Guided form-based creation |
⚡ Advanced Mode Direct prompt editing |
Easy Mode Fields
| Field | Description |
|---|---|
| Style Name | Display name for your style |
| Style Type | Chat (multiple users) or Narrator (single voice) |
| Output Format | Message structure, e.g., username: message |
| Identity/Setting | Who are the participants? What's the context? |
| Personality Guidelines | Tone, vocabulary, and behavior |
| Tone | Overall mood and energy level |
Advanced Mode
For full control, switch to Advanced mode to directly edit the system prompt. This is ideal for:
- Porting existing prompts from other tools
- Fine-tuning complex style behaviors
- Creating narrator-style single-voice reactions
Import & Export
- Import — Click Import in settings to load
.mdstyle files - Export — Click Export in the Style Editor to share your creations
🎯 Quick Controls
The panel header provides instant access to common actions:
| Icon | Action |
|---|---|
| Power | Toggle EchoChamber on/off |
| Refresh | Regenerate reactions |
| Layout | Change panel position |
| Users | Adjust user count |
| Font | Change text size |
Click the Style indicator bar below the header to quickly switch between styles.
🔒 Requirements
- SillyTavern: Version 1.12.0 or higher
- Backend: Any of the following:
- Your existing SillyTavern Chat Completion API
- Ollama (local)
- OpenAI-compatible API (KoboldCPP, LM Studio, vLLM, etc.)
🌟 Extras
🎨 EyeCare Theme
The screenshots use a custom high-contrast theme optimized for readability. Copy the JSON below and save as a .json file to import into SillyTavern:
Click to view Theme JSON
{
"name": "EyeCare",
"blur_strength": 0,
"main_text_color": "rgba(230, 240, 255, 1)",
"italics_text_color": "rgba(150, 220, 255, 1)",
"underline_text_color": "rgba(255, 200, 100, 1)",
"quote_text_color": "rgba(180, 255, 180, 1)",
"blur_tint_color": "rgba(15, 20, 28, 1)",
"chat_tint_color": "rgba(15, 20, 28, 1)",
"user_mes_blur_tint_color": "rgba(22, 28, 38, 1)",
"bot_mes_blur_tint_color": "rgba(18, 24, 32, 1)",
"shadow_color": "rgba(0, 0, 0, 1)",
"shadow_width": 0,
"border_color": "rgba(70, 100, 140, 1)",
"font_scale": 1,
"fast_ui_mode": true,
"waifuMode": false,
"avatar_style": 2,
"chat_display": 1,
"toastr_position": "toast-top-right",
"noShadows": true,
"chat_width": 50,
"timer_enabled": false,
"timestamps_enabled": true,
"timestamp_model_icon": true,
"mesIDDisplay_enabled": false,
"hideChatAvatars_enabled": false,
"message_token_count_enabled": false,
"expand_message_actions": true,
"enableZenSliders": false,
"enableLabMode": false,
"hotswap_enabled": false,
"custom_css": "",
"bogus_folders": false,
"zoomed_avatar_magnification": false,
"reduced_motion": true,
"compact_input_area": false,
"show_swipe_num_all_messages": false,
"click_to_edit": false,
"media_display": "list"
}
🎙️ Featured Scenario: Real Talk Podcast
The reactions in the screenshots are based on this original character card. Use it to test EchoChamber:
|
Right-click & Save to import |
The Story:
Victoria Cross, 38, built her podcast empire dissecting male mediocrity and modern dating's failures—until Daniel, 18, calls in and systematically dismantles her worldview on air. Their explosive debates accidentally spark the "New Pond Movement," urging older women to pursue younger men and leave the "stagnant pond" behind. Import Options:
|
📝 Changelog
Recent Updates
- Style Manager — Create, edit, and export custom styles from the UI
- Connection Profiles — Use your existing SillyTavern connections (recommended)
- 4 Panel Positions — Place the feed at Bottom, Top, Left, or Right
- Theme-Aware Colors — Automatically adapts to your SillyTavern theme
- Improved Cancel UX — Friendly "Processing cancelled" message when stopping generation
- Quick Style Switching — Click the style indicator bar to instantly change styles
🤝 Contributing
Contributions are welcome! Feel free to:
- Submit bug reports and feature requests via Issues
- Share your custom styles with the community
- Submit pull requests for improvements
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ for the SillyTavern community