╔══════════════════════════════════════════════════════╗
║ ║
║ ⊹ C H A R S W I T C H P R O ⊹ ║
║ ║
║ A power-user switcher for SillyTavern ║
║ ║
╚══════════════════════════════════════════════════════╝
Switch characters in a blink · Fuzzy search · Global command palette · Tag filtering
CharSwitch Pro turns character switching into a one-gesture move. Right-click the character drawer for an instant quick menu, or summon a VSCode-style command palette from anywhere with a hotkey. Search by name, filter by tag, jump between a character's past chats, and run quick actions — all without leaving the keyboard.
It's a single drop-in module: no bundler, no build step, no external dependencies. It reads your live SillyTavern data and follows your active theme automatically.
A modernized fork of SillyTavern-CharSwitch by LenAnderson, rebuilt with a command palette, fuzzy search, a settings UI, full mobile support, and more.
|
Right-click (or long-press) the drawer icon.
|
Global hotkey:
|
|
A real UI, not JSON editing.
|
Lean, modern, theme-aware.
|
The palette is context-aware. Type a prefix to focus your search:
| Prefix | Mode | Example | Shows |
|---|---|---|---|
| (none) | Default | alice |
Characters · Groups · Chats · Actions |
/ |
Commands | /sendas |
Registered slash commands |
> |
Actions | >regen |
Quick actions |
@ |
Tags | @nsfw |
Characters with a matching tag |
# |
Chats | # |
The current character's past chats |
◦ New chat with current character
◦ Close right sidebar
◦ Open persona selector
◦ Regenerate last message
◦ Continue last message
◦ Open CharSwitch Pro settings
- Open Extensions → Manage Extensions → Install from URL
- Paste:
https://github.com/aceeenvw/charswitchpro.git - Reload SillyTavern.
cd /path/to/SillyTavern/public/scripts/extensions/third-party
git clone https://github.com/aceeenvw/charswitchpro.gitln -s /path/to/your/local/charswitch-fork \
/path/to/SillyTavern/public/scripts/extensions/third-party/charswitchproThe folder name is flexible — the extension resolves its own install path at runtime, so any name works. After install, reload SillyTavern; it appears as ⊹ CHARSWITCH PRO ⊹ in the Extensions drawer.
Right-click the right drawer icon
└─ Recently switched shown up top
├─ Type to filter (fuzzy) · × to clear
├─ Click a tag chip to narrow
├─ Hover a character for a chat preview
└─ ↑↓ navigate · Enter select · Esc close
Press Ctrl+Shift+K (anywhere)
└─ Type to search characters, groups, chats, actions
├─ / → slash commands
├─ > → quick actions
├─ @ → filter by tag
└─ # → current character's past chats
/charswitch open the palette
/charswitch alice open the palette, pre-filtered
/cswp short alias
Open Extensions → ⊹ CHARSWITCH PRO ⊹.
| Section | Setting | Default |
|---|---|---|
| Quick Menu | Show current character avatar on drawer icon | on |
| Quick Menu | Sort favorites first | off |
| Quick Menu | Show only favorites | off |
| Quick Menu | Highlight favorites | on |
| Quick Menu | Characters shown in menu | 12 |
| Quick Menu | Layout | List |
| Quick Menu | Density | Comfortable |
| Palette | Enable command palette (global hotkey) | on |
| Palette | Palette hotkey | Ctrl+Shift+K |
| Palette | Enable chat content search | on |
| Advanced | Show last message preview on hover | on |
| Advanced | Cache composite group avatars | on |
- Click the Palette hotkey field — it highlights and shows
... - Press your combination (include at least one of
Ctrl/Shift/Alt/Cmd) - Release — the binding saves immediately. Press
Escto cancel.
CharSwitch Pro is fully usable on phones and tablets. It detects touch devices and adapts its gestures and layout automatically.
| Interaction | Desktop | Mobile / Touch |
|---|---|---|
| Open quick menu | Right-click drawer icon | Long-press drawer icon |
| Open command palette | Ctrl+Shift+K | Floating button · or /charswitch |
| Character preview | Hover | Long-press a list item |
| Navigate results | Arrow keys | Tap |
| Close overlays | Esc | Tap outside / back gesture |
- ✦ Draggable floating button — reposition anywhere; position is saved
- ✦ Full-screen palette on narrow viewports
- ✦ Finger-friendly targets and grid tiles
- ✦ Haptic feedback on long-press where supported
- ✦ Safe-area aware for notches and gesture bars
Mobile options live under ⊹ CHARSWITCH PRO ⊹ → Mobile / Touch:
| Setting | Default | Options |
|---|---|---|
| Floating button | Auto |
Auto (touch only) · Always · Never |
| Long-press for preview | on |
toggle |
| Long-press duration | 450ms |
200–2000ms |
| Layer | Technology |
|---|---|
| Language | Vanilla JavaScript (ESM) |
| DOM | Native + jQuery (ships with SillyTavern) |
| Styling | Plain CSS, SmartTheme variables |
| i18n | JSON resource files — en-us · ru-ru |
| Build | None — drop-in install |
| Dependencies | Zero external |
Everything resolves to current SillyTavern core modules:
script.js → characters, events, selectCharacterById,
getThumbnailUrl, getPastCharacterChats, openCharacterChat
extensions.js → extension_settings, getContext
group-chats.js → groups, openGroupById, selected_group
tags.js → tag_map, tags
slash-commands/ → SlashCommand, SlashCommandParser, ARGUMENT_TYPE<install-folder>/
├── manifest.json Extension metadata · i18n registration
├── index.js Main module (commented sections)
├── style.css SmartTheme-aware styles
├── i18n/
│ ├── en-us.json English (primary)
│ └── ru-ru.json Russian
├── README.md This file
└── CHANGELOG.md Version history
LenAnderson — creator of the original SillyTavern-CharSwitch. The core idea, the composite group-avatar canvas, and Discord-layout detection originate from their work.
SillyTavern team & contributors — for the platform and the extension APIs this builds on.
Inspiration — VSCode & Raycast command palettes, and the floating-menu pattern from the SillyTavern extension ecosystem.
Maintained by aceenvw.
⊹ ⊹
Built with care for the SillyTavern community.
⊹ ⊹