A client-side extension that enables SMS functionality in SillyTavern through Google Messages integration. Works together with the Google Messages server plugin.
This extension provides the user interface and LLM integration for Google Messages:
- β Slash commands for manual SMS control
- β Function tools so LLMs can send/read messages
- β Background polling for automatic message sync
- β System messages display SMS in chat
- β Prompt injection makes LLM aware of new messages
- β Character mapping links contacts to characters
- β Settings panel for easy configuration
Extension (browser) β YOU ARE HERE
β
Plugin (server)
β
FastAPI Server
β
Google Messages
- β
Server Plugin installed (
SillyTavern-GoogleMessages) - β
FastAPI Server running (
server.py) - β SillyTavern installed
# Copy to third-party extensions directory
cp -r Extension-GoogleMessages /path/to/SillyTavern/public/scripts/extensions/third-party/google-messages
# OR if you're in SillyTavern directory:
cd public/scripts/extensions/third-party
git clone <your-repo> google-messagesReload the page or restart the server.
- Click the Extensions button (puzzle piece icon)
- Find "π± Google Messages" in the list
- Toggle it ON
- Go to Extensions β Google Messages
- Enable the extension
- Configure your preferences
| Setting | Description | Default |
|---|---|---|
| Enable integration | Master on/off switch | Off |
| Auto-fetch interval | How often to check for new messages | 60 seconds |
| Show SMS in chat | Display messages as system messages | On |
| Notification sound | Play audio alert for new messages | On |
| Unread badge | Show unread count in header | On |
| Prompt injection | Inject SMS info into LLM prompts | On |
| Only mapped contacts | Filter to only mapped characters | Off |
Map conversation IDs to character names for better integration:
Conversation ID β Character Name
Cgg2CrOaHA5ZAxIEMTA1NA β Mom
AnotherConversationID β Best Friend
Benefits:
- Use character names in slash commands
- Filter messages by current character
- Better context for the LLM
/send-sms to="Mom" Hey, I'll be home late!
Send an SMS message to someone.
Arguments:
to(required) - Recipient name or conversation ID- Message content (required) - The text to send
/check-sms
Manually check for new SMS messages immediately.
/list-conversations
Show all active SMS conversations with preview text.
/read-conversation name="Mom" limit=20
Display recent message history from a conversation.
Arguments:
nameorid(required) - Recipient name or IDlimit(optional) - Number of messages (default: 10)
/map-sms id="Cgg2CrOaHA5ZAxIEMTA1NA" char="Mom"
Create a mapping between a conversation ID and a character name.
Arguments:
id(required) - Conversation short IDchar(required) - Character name
When enabled, LLMs can use these tools automatically:
{
"name": "sendSMS",
"description": "Send an SMS text message",
"parameters": {
"recipient": "Mom",
"message": "I'll be home by 6pm"
}
}When LLM uses it:
User: "Text my mom that I'll be home by 6"
AI: calls sendSMS tool
AI: "I've sent a text to your mom letting her know you'll be home by 6pm!"
{
"name": "checkSMS",
"description": "Check for unread SMS messages"
}When LLM uses it:
User: "Did anyone text me?"
AI: calls checkSMS tool
AI: "You have 2 unread messages from Mom and 1 from Work."
{
"name": "readSMSConversation",
"description": "Read recent message history",
"parameters": {
"recipient": "Mom",
"limit": 10
}
}When LLM uses it:
User: "What did my mom say earlier?"
AI: calls readSMSConversation tool
AI: "Your mom asked if you were coming to dinner tonight. She mentioned that..."
The extension automatically checks for new messages every X seconds (configurable).
When a new message arrives:
- π¨ Message appears in chat as system message
- π Toast notification pops up
- π Sound plays (if enabled)
- π΄ Badge updates with unread count
- π€ LLM is informed via prompt injection
Example in chat:
π± SMS from Mom:
"Are you coming to dinner tonight?"
5m ago
Before the LLM generates a response, the extension automatically injects unread SMS information:
π± **SMS Notifications:**
- 2 unread message(s) from Mom
Latest: "Are you coming to dinner tonight?"
- 1 unread message(s) from Work
Latest: "Can you review the report by EOD?"
Effect: The LLM naturally becomes aware of messages and can react:
AI: "Oh, I see you got a text from your mom about dinner. Would you like me to help you respond?"
SMS messages appear as styled system messages in your chat:
ββββββββββββββββββββββββββββββββββββββββββ
β π± SMS from Mom: β
β "Are you coming to dinner tonight?" β
β 5m ago β
ββββββββββββββββββββββββββββββββββββββββββ
A floating badge in the top-right shows unread count:
βββββββ
β 5 β β Unread messages
βββββββ
Click to view (future feature).
When you map conversations to characters:
Before:
- "Send SMS to Cgg2CrOaHA5ZAxIEMTA1NA"
After:
- "Send SMS to Mom" β¨
The extension automatically resolves recipients:
"Mom" β Looks up in mappings
"John Doe" β Looks up in conversation names
"Cgg2CrOaHA5ZAxIEMTA1NA" β Uses directly as IDProblem: Extension doesn't appear in the list
Solutions:
- Check extension is in correct directory
- Refresh browser (Ctrl+F5)
- Check browser console for errors
Problem: "Plugin not available" error on load
Solutions:
- Ensure server plugin is installed
- Check SillyTavern has
enableServerPlugins: true - Restart SillyTavern server
- Check plugin loads in server logs
Problem: Messages not showing up in chat
Solutions:
- Enable extension in settings
- Check "Show SMS in chat" is enabled
- Verify FastAPI server is running
- Check browser console for errors
- Use
/check-smsto manually refresh
Problem: LLM can't use SMS tools
Solutions:
- Check your LLM API supports function calling
- Supported: OpenAI, Claude, Cohere, Groq, etc.
- Not supported: Some local models
- Check function tools are enabled in SillyTavern
Problem: Commands don't autocomplete
Solutions:
- Extension must be enabled
- Refresh page after enabling
- Type
/to see all commands - Check console for registration errors
User: Can you text my mom that I'll be late?
AI: [uses sendSMS tool]
AI: I've sent a text to your mom letting her know you'll be late.
[System message appears in chat]
π± SMS to Mom:
"I'll be late, see you soon!"
[Background poll detects new message]
[Toast notification appears]
π± SMS Received
New message from Mom
[System message in chat]
π± SMS from Mom:
"Okay, drive safe!"
5s ago
[On next AI generation]
AI: I see your mom replied. She said to drive safe!
User: Did anyone text me?
AI: [uses checkSMS tool]
AI: Yes! You have 2 unread messages - one from your mom
about dinner, and one from work about the report.
Would you like me to read them for you?
User: Yes please
AI: [uses readSMSConversation tool for each]
AI: Your mom asked: "Are you coming to dinner tonight?"
And your work said: "Can you review the report by EOD?"
Create mappings for frequently texted contacts:
/map-sms id="Cgg..." char="Mom"
/map-sms id="Aaa..." char="Best Friend"
- Fast (30s): For active conversations
- Normal (60s): General use
- Slow (120s+): Background monitoring
Keep it enabled! The LLM works much better when it knows about new messages naturally.
If you have lots of conversations, enable "Only show mapped contacts" to reduce noise.
Combine with other SillyTavern features:
// In custom STscript
{{run: /check-sms}}
{{if: {{getvar::google_messages_unread}} > 0}}
You have unread messages!
{{/if}}Set character-specific instructions:
System: When the user receives an SMS, help them craft
an appropriate response based on your character.
See the main project README for contribution guidelines.
- 1.0.0 - Initial release
- Slash commands
- Function tools
- Background polling
- Prompt injection
- Character mapping
- Settings UI
MIT License - See LICENSE file
Happy messaging! π±β¨
Part of the Google Messages integration suite