Skip to content
 
 

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

        ╔══════════════════════════════════════════════════════╗
        ║                                                      ║
        ║         ⊹  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

Version SillyTavern Platform Author Build i18n

Features · Install · Usage · Settings · Mobile · Changelog


⟡ Overview

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.


◆ Features

◇ Quick Menu

Right-click (or long-press) the drawer icon.

  • Recently switched — your last 5 jumps, pinned on top
  • Fuzzy search — instant filter, one-tap clear
  • List or grid layout — comfortable or compact density
  • Tag filter chips — native SillyTavern tags
  • Keyboard nav Enter Esc
  • Chat preview — peek a character's last message
  • Favorites first — optional sort + gold highlight

◈ Command Palette

Global hotkey: Ctrl+Shift+K (rebindable).

  • Unified search across every content type
  • Recents + favorites surfaced first
  • Mode prefixes/ > @ # for targeted search
  • Chat content search — find past chats by what was said
  • Jump between a character's chats with #
  • Quick actions & slash-command runner

◇ Settings Panel

A real UI, not JSON editing.

  • ✦ Toggles, dropdowns, numeric inputs
  • ✦ Layout & density pickers
  • Hotkey recorder — click & press any combo
  • ✦ Clean sectioned layout with descriptions
  • ✦ Applies instantly

◈ Built Well

Lean, modern, theme-aware.

  • ✦ Follows your SmartTheme colors
  • Lazy-loaded avatars — fast opens, light on the GPU
  • ✦ Event-driven, no idle polling
  • ✦ Quiet, namespaced console output
  • ✦ Legacy settings migrated automatically

⟡ Palette Modes

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

Quick actions

  ◦  New chat with current character
  ◦  Close right sidebar
  ◦  Open persona selector
  ◦  Regenerate last message
  ◦  Continue last message
  ◦  Open CharSwitch Pro settings

◆ Install

From the SillyTavern UI

  1. Open Extensions → Manage Extensions → Install from URL
  2. Paste:
    https://github.com/aceeenvw/charswitchpro.git
    
  3. Reload SillyTavern.

Manual clone

cd /path/to/SillyTavern/public/scripts/extensions/third-party
git clone https://github.com/aceeenvw/charswitchpro.git

Symlink (for development)

ln -s /path/to/your/local/charswitch-fork \
      /path/to/SillyTavern/public/scripts/extensions/third-party/charswitchpro

The 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.


◆ Usage

Quick menu

  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

Command palette

  Press Ctrl+Shift+K (anywhere)
  └─ Type to search characters, groups, chats, actions
     ├─ /  →  slash commands
     ├─ >  →  quick actions
     ├─ @  →  filter by tag
     └─ #  →  current character's past chats

Slash command

  /charswitch                 open the palette
  /charswitch alice           open the palette, pre-filtered
  /cswp                       short alias

⟡ Settings

Open Extensions → ⊹ CHARSWITCH PRO ⊹.

SectionSettingDefault
Quick MenuShow current character avatar on drawer iconon
Quick MenuSort favorites firstoff
Quick MenuShow only favoritesoff
Quick MenuHighlight favoriteson
Quick MenuCharacters shown in menu12
Quick MenuLayoutList
Quick MenuDensityComfortable
PaletteEnable command palette (global hotkey)on
PalettePalette hotkeyCtrl+Shift+K
PaletteEnable chat content searchon
AdvancedShow last message preview on hoveron
AdvancedCache composite group avatarson

Rebinding the hotkey

  1. Click the Palette hotkey field — it highlights and shows ...
  2. Press your combination (include at least one of Ctrl / Shift / Alt / Cmd)
  3. Release — the binding saves immediately. Press Esc to cancel.

⟡ Mobile

CharSwitch Pro is fully usable on phones and tablets. It detects touch devices and adapts its gestures and layout automatically.

InteractionDesktopMobile / Touch
Open quick menuRight-click drawer iconLong-press drawer icon
Open command paletteCtrl+Shift+KFloating button · or /charswitch
Character previewHoverLong-press a list item
Navigate resultsArrow keysTap
Close overlaysEscTap 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

⟡ Tech Stack

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

⟡ File Layout

<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

◆ Credits

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.
    ⊹                                                               ⊹

About

A power-user fork of SillyTavern-CharSwitch. Adds a VSCode-style command palette with fuzzy search across characters, groups, chat content, tags, and slash commands. Works on desktop and mobile.

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages