Chatting with a [character](/systems/index.html#lindypunk5eva) in a customization of SillyTavern...
Chatting with a character in a customization of SillyTavern...

While I use extensions in VS Code for vibe coding, I also interact with large language models through a local frontend called SillyTavern. It doesn't run the models themselves, but lets you chat as long as you've got access to the model.

The application itself is free, but model access may cost $$$. You can the documentation itself. It's something I'm still learning about! I’m not here to sell it. I’ve spent more time tweaking this thing than I care to admit, and it has a lot of quirks.

Customizing any user experience is paramount for me. I wrote elsewhere about the Sunrise Tearoom, my nice crispy theme for SillyTavern. I also created a couple other themes to go with this, and to suit specific characters I'd created as chatbots.

You can, of course, do much more than theming with SillyTavern. It's open source and very easy to extend. I haven't made any extensions for it myself, being too weak. But I have tried out plenty, and I'll share those here, or at least the ones I thought were actually worth anyone's time.

As I find more extensions, I'll update this. I admittedly do a lot of this just "for the aesthetics" though. Expect that! Got questions or suggestions? Hit me up!

My Favorites

STscripts?

STscript is a language (command chain) built into SillyTavern itself. I'm still learning about it as I go, but I've kept back enough to share a few. You install these within the Quick Reply extension, where each script becomes a little button you can press mid-chat. They chain commands together with the pipe character (|), passing the result of one along to the next as ``. So far I've used them to (for example) rename chats automatically. Nifty!

Renaming a chat using a QR Button in SillyTavern!
Renaming a chat using a QR Button in SillyTavern!

Below is my favorite right now, a script that asks the chatbot to provide an automatic title for the chat. It's useful for me, because it's rather simple, easy to insert as a QR. The point is keeping chats organized which is important since I do a lot of experiments with these models and the cards overlayed on them.

/echo Refreshing title on demand... 
| /gen Generate the best title (must be less than 60 characters) for the entire conversation so far. Reply with only the title and no other acknowledgments. 
| /trimstart 
| /trimend 
| /input default={{pipe}} 
| /renamechat

Here, ask the chatbot any out-of-character question in a popup window. Then, it will slip back into character. Useful if you need a brief (but not logged or present) "ignore all..." moment from the creature.

/input large=on placeholder="OOC question for the model" 
| /genraw instruct=on [Answer out of character, briefly: {{pipe}}] 
| /echo severity=info {{pipe}}

Recapping a long chat into a hidden note only you can see (the chatbot won't read it, since /comment stays out of the prompt):

/messages names=on 0-{{lastMessageId}} |
/setvar key=log {{pipe}} |
/genraw Summarize this conversation in 4-6 well-structured but concise bullet points\: {{getvar::log}} |
/setvar key=sum {{pipe}} |
/comment {{getvar::sum}}

Nudging the chatbot's next reply in a direction without breaking character, then tidying up after itself so the note doesn't linger. Similar to the whole "Guide" thing, and I don't use either much at all, in fact having use both only a handful of times, preferring spontaneous dialogues to the max. Maybe you'll find it useful.

/input large=on wide=on placeholder="how should the next reply go?" 
| /inject id=steer position=chat depth=0 [Direction for your next reply: {{pipe}}] 
| /trigger 
| /flushinject steer

That one uses /inject, which slips a temporary note into the prompt. The /flushinject line cleans it up afterward, but if a script ever leaves an injection behind (say you stopped it halfway), you can clear strays with /flushinject steer. Above should be doing it automatically if you use the whole script. If you don't do that, I guess that could be a problem?

I'm admittedly still learning all about this and there is a lot more you can do with STscript...

Themes for SillyTavern

A twilight sky for the background of my [TFW Midnite theme](/systems/downloads/midnite.json).
A twilight sky for the background of my TFW Midnite theme.

I find vibe coding themes and other paraphernalia for SillyTavern extremely fun. Maybe the creators assumed people would do this and made allowances for the practice early on. Maybe it's just because it's an easily workable framework.

Either way, I made multiple aesthetic, yet amateurish themes for SillyTavern, including:

Read about installing them in the official SillyTavern installation material once you've got it running, of course. I don't know how workable other people will find these, but they've been okay for me. They don't work half bad within Too Many Tabs and other exotic settings, either!

I hope to someday understand enough of these languages to write more elaborate extensions/etc for SillyTavern and related assets, but who knows if that will ever happen? Contact me here if you've suggestions, impressions or questions!