- JavaScript 86.5%
- HTML 9.5%
- CSS 4%
Adds context parameter to macro provider and group value function Allows groupOverride from context to bypass nickname-based group computation Fixes issue where group value was not respecting overrides in macro evaluation |
||
|---|---|---|
| src | ||
| templates | ||
| index.js | ||
| LICENSE | ||
| manifest.json | ||
| README.md | ||
| style.css | ||
SillyTavern Nicknames [Extension]
Set nicknames for characters and personas to be used in the UI, chat messages, and prompts. Features a dedicated nickname editor in Persona/Character Management, three context levels (global, character, chat), and slash commands.
Note
This extension requires the Experimental Macro Engine to be enabled for full functionality.
Installation
Install using SillyTavern's extension installer from the URL:
https://github.com/SillyTavern/SillyTavern-Nicknames
Features
Nickname Editor
A dedicated nickname editor appears directly in Persona Management (for user/persona nicknames) and Character Management (for character nicknames).
- Three context levels — Set nicknames at different scopes:
- Global: Applies across all chats and characters
- Character-level: Persona-specific nickname for a specific character (personas only)
- Chat-level: Nickname stored in the chat file
- Visual indicator — Shows which context level the displayed nickname is currently being sourced from
- Persistent — Nicknames are stored in settings and chat metadata, surviving exports and backups
- Quick actions — Set, update, or remove nicknames directly from the editor
Context Levels
| Level | Description | User/Persona | Character |
|---|---|---|---|
| Global | Applies everywhere for this entity | ✅ | ✅ |
| Character | For a specific character-persona pair | ✅ | ❌ |
| Chat | Specific to this chat file only | ✅ | ✅ |
When reading nicknames, the extension checks in order: Chat → Character → Global, using the first one found.
Slash Commands
| Command | Description |
|---|---|
/nickname-user [for=global|char|chat] [nickname] |
Get or set the user/persona nickname |
/nickname-char [for=global|char|chat] [nickname] |
Get or set the character nickname |
Use #reset as the nickname to clear it from the specified context level.
Examples:
/nickname-user Alex- Sets global persona nickname to "Alex"/nickname-user for=chat "The Real Alex"- Sets chat-level persona nickname/nickname-char Bob- Sets global character nickname to "Bob"/nickname-char for=global #reset- Removes global character nickname
Settings
Access the extension settings under Extensions → Nicknames in the SillyTavern settings panel.
All settings are disabled by default — enable them as needed:
- Character list — Display nicknames instead of original names in the character list
- Chat messages — Use nicknames as sender names for chat messages
- Macros & prompts — Replace
{{user}}and{{char}}(in all relevant macros) with nicknames in prompts sent to the AI. - V3 spec compatibility — Sync global character nicknames with the character card's
data.nicknamefield. When enabled, nicknames are saved into the card and can be read from imported cards. If both the card and extension have different nicknames, a conflict resolution popup appears.
Nickname Macros
Four macros are always available regardless of the Macros & prompts override setting:
| Macro | Description |
|---|---|
{{userFull}} |
Always returns the original Persona username, never substituted with a nickname |
{{charFull}} |
Always returns the original character name, never substituted with a nickname |
{{userNickname}} |
Returns the Persona nickname if one is set, otherwise falls back to the original username |
{{charNickname}} |
Returns the character nickname if one is set, otherwise falls back to the original character name |
These are useful when you want explicit control over whether a prompt uses the full name or the nickname, independent of the global override toggle.
Cleanup Extension Data
Note
This feature requires the staging branch of SillyTavern.
All extension settings and saved nicknames, except for chat-bound nicknames, can be removed via the extensions list or during uninstall.
Roadmap
Planned features for future releases:
- Dedicated
{{userFull}}/{{charFull}}and{{userNickname}}/{{charNickname}}macros — always return the original full name or the nickname (if set), regardless of macro override settings - Import/export nickname mappings (bulk export all global and char-level data)
- Optional visual indicator when nicknames are active (tooltip/label in char list and chat)
- Allow the model to set nicknames (via function calling)
ToDo List
- Migrate away from jQuery
- Extension versioning and migration system
License
AGPL-3.0
Contribution
- Discord:
@Wolfsblvt - Issues and pull requests are welcome.
- Any features/fixes should be submitted as a PR to the
devbranch.