Control Social Stream Ninja with built-in commands, automation, and API integration
Social Stream Ninja includes several built-in commands that your viewers can use in chat, or that you can trigger via the API.
| Command | Description | How to Enable |
|---|---|---|
!joke |
Tells a random geeky dad joke in response | Enable via the extension menu toggle |
hi |
Automatically welcomes anyone who says "hi" in chat | Enable via the extension menu toggle |
!cycle |
When enabled, allows viewers to change OBS scenes | Enable via the extension menu toggle |
Note: Bot commands will only work when the auto-responder is properly configured and you have permission to post messages in the respective platforms.
For the auto-responder to work properly:
If you see a blue debugging bar when auto-responses are triggered, you can hide it by starting Chrome with the --silent-debugger-extension-api flag.
Social Stream Ninja provides a powerful API that allows you to control every aspect of your streaming setup programmatically. The API server can both issue commands to your setup and listen to incoming messages from consolidated chat services.
Control featured messages, clear overlays, and manipulate content appearance in your stream.
Receive events from third-party services like Stripe, Ko-Fi, and Buy Me A Coffee.
Export chat messages to file or forward them via webhook (POST) for custom integrations.
Required Settings (Global settings → Mechanics):
See the full API documentation for detailed setup guides and code samples.
https://io.socialstream.ninja/{sessionID}/{action}/{target}/{value}
Perfect for simple commands from Stream Deck or custom scripts.
wss://io.socialstream.ninja:443
For real-time bidirectional communication with auto-reconnection.
If you prefer to keep connections peer-to-peer without enabling WebSocket mode, you can use the Social Stream Ninja WebRTC SDK. It includes Node and browser samples such as the Social Stream Ninja listener.
https://io.socialstream.ninja/sse/{sessionID}
For one-way real-time updates from the server.
The API uses a channel system for message routing:
- Channel 1: Remote control commands (default for StreamDeck/Bitfocus) - Channel 2: Dock page output - Channel 3: Extension receives commands from Dock - Channel 4: Chat messages from Extension (use this to receive Twitch/YouTube chat!) - Channel 5: Waitlist/giveaway communication - Channels 6-9: Reserved for future use
Connect with your desired channel:
// To receive chat messages (listen on channel 4): wss://io.socialstream.ninja/join/SESSION_ID/4 // To send commands (channel 1 default): wss://io.socialstream.ninja/join/SESSION_ID
| Action | Description | Example |
|---|---|---|
sendChat |
Sends a message to all connected chat platforms | https://io.socialstream.ninja/SESSIONID/sendChat/null/Hello everyone! |
sendEncodedChat |
Sends a URL-encoded message to all platforms | https://io.socialstream.ninja/SESSIONID/sendEncodedChat/null/Hello%20everyone%21 |
clearOverlay |
Clears the featured message from the overlay | https://io.socialstream.ninja/SESSIONID/clearOverlay |
nextInQueue |
Displays the next message in the queue | https://io.socialstream.ninja/SESSIONID/nextInQueue |
autoShow |
Toggles automatic featuring of messages | https://io.socialstream.ninja/SESSIONID/autoShow/toggle |
blockUser |
Blocks a user from a specific platform | https://io.socialstream.ninja/SESSIONID/blockUser/null/{"chatname":"username","type":"twitch"} |
extContent |
Sends external content as a chat message | https://io.socialstream.ninja/SESSIONID/extContent/null/{"chatname":"User","chatmessage":"Hello"} |
Try out the API with our interactive sandbox that provides easy access to all commands and features:
Try all API commands in a safe environment
Get code examples for HTTP, WebSocket, and SSE
See real-time responses from your commands
Generate test messages with random content
Note: Remember to replace SESSIONID with your actual session ID from Social Stream Ninja!
Social Stream Ninja integrates with StreamDeck through multiple methods: native HTTP actions and Bitfocus Companion integration.
Use StreamDeck's "Website" action with "GET request in background" enabled to send commands directly to the API.
Native integration with pre-built actions, real-time feedback, and variables for dynamic content.
Bitfocus Companion provides powerful control of Social Stream Ninja using either WebSocket or HTTP APIs.
| Action | Description | API Method |
|---|---|---|
| Clear Featured Message | Removes the currently featured message from overlay | WebSocket/HTTP |
| Next in Queue | Displays the next queued message | WebSocket/HTTP |
| Toggle Auto-Show | Enables/disables automatic message featuring | WebSocket/HTTP |
| Send Chat Message | Sends a message to all connected platforms | WebSocket/HTTP |
featured_message - Current featured message textfeatured_username - Current featured usernamequeue_size - Number of messages in queueSocial Stream Ninja provides comprehensive AI integration to enhance your streams with AI-powered chat responses, moderation, and more. Choose from local or cloud-based AI providers to match your needs.
Let the AI engage with your viewers automatically, answering questions and keeping the conversation lively even when you're focused on your content.
Use AI to help moderate chat by identifying potentially harmful messages and automatically handling them based on your preferences. Choose between non-blocking or strict blocking modes.
Retrieval-Augmented Generation allows the AI to search through your custom knowledge base to provide accurate answers specific to your content.
Run different bot instances for various purposes: public chat bot, private 1-on-1 bot, censor bot, and even a multimodal AI co-host that can see and hear.
Social Stream Ninja supports multiple AI providers, from fully local browser/runtime models to hosted APIs:
Free, privacy-focused, self-hosted AI models running on your own computer through Ollama's own API.
Run Gemma 4 in the browser using self-hosted model assets instead of a remote API.
Run Qwen 3.5 in the browser from your own hosted model files for local, private responses.
OpenAI APIs including modern chat and realtime voice models.
Google Gemini models including current Gemini 2.5 text and live multimodal options.
Efficient, cost-effective AI models optimized for conversational tasks.
xAI Grok APIs, including realtime voice sessions when using ephemeral client secrets.
Enterprise-grade AI models from various providers including Claude and Llama.
Access to multiple AI models through a unified API interface.
Low-latency OpenAI-compatible chat inference for fast conversational responses.
Connect to llama.cpp, LM Studio, vLLM, or any other OpenAI-compatible endpoint.
Note: Ollama uses its own native API. For llama.cpp, LM Studio, vLLM, or other OpenAI-compatible servers, choose Custom API.
Social Stream Ninja includes comprehensive TTS support for bot messages and featured chat content:
Free, built-in TTS using your operating system's voice synthesizer.
Free, locally-running TTS using WebGPU/CPU for privacy-conscious users.
Lightweight browser-based TTS that downloads a small model for local voice generation.
Premium voice synthesis with natural-sounding, customizable voices.
High-quality voices with extensive language and customization options.
Google's preview neural voice models with selectable voice and language options.
AI-powered text-to-speech with natural voice conversion capabilities.
OpenAI speech synthesis with selectable voices, models, and optional compatible endpoints.
Note: TTS functionality requires the appropriate overlay page to be open in OBS. Each TTS provider offers different voice options, latency, and pricing or hardware requirements.
Social Stream Ninja provides multiple bot instances for different use cases:
| Bot Type | URL | Description |
|---|---|---|
| Primary Chat Bot | /bot.html |
Main bot overlay with optional TTS and public chat responses |
| Private Chat Interface | /chatbot.html |
Dedicated 1-on-1 bot page that does not share the main bot's RAG dataset or chat history |
| Censor Bot | (runs in background) | Filters, sanitizes, or blocks incoming messages automatically |
| AI Co-Host | /cohost.html |
Multimodal AI that can see your screen, hear audio, and interact |
Follow these steps to set up AI integration with the current menu:
Select your provider in Configure LLM Service Provider and fill in the matching fields:
Use the built-in Test selected chat bot button to verify your provider, model, and credentials before going live.
Customize how the bot behaves in chat:
Turn on the features you want around the bot:
/bot.html, /chatbot.html, or /cohost.html in OBS or a browser as neededFor complete setup instructions and deeper TTS coverage, use these guides:
Control Social Stream Ninja using MIDI controllers, keyboard shortcuts, or StreamDeck with MIDI plugins.
| CC Number | Value | Action | Notes |
|---|---|---|---|
| 102 | 1 | Send "1" to chat | Quick reaction |
| 102 | 2 | Send "LUL" to chat | Emote reaction |
| 102 | 3 | Tell a joke | Triggers bot response |
| 102 | 4 | Clear overlay | Removes featured message |
Tip: MIDI control works best with physical controllers but can also be triggered via virtual MIDI devices.
Use keyboard shortcuts for quick access to common functions.
Hotkeys can be configured within the menu settings and work system-wide when the browser is focused or when the app is used.
Social Stream Ninja can receive donations and events from third-party services via webhooks; a few popular ones are below:
Process credit card donations directly through your Stripe account.
https://io.socialstream.ninja/SESSIONID/stripecheckout.session.completed&server to your dock URLReceive coffee donations from your supporters.
https://io.socialstream.ninja/SESSIONID/kofi as the webhook URL&server to your dock URLCollect donations through the popular Buy Me A Coffee platform.
https://io.socialstream.ninja/SESSIONID/bmac as the webhook URL&server to your dock URL to receive eventsSecurity Note: Keep your session ID private, as anyone with it can send fake donations to your overlay. The webhook URL should be treated as sensitive information.
Social Stream Ninja can also send data to third-party services:
| Service | URL Parameter | Description |
|---|---|---|
| Singular Live | &singular=IDENTIFIER |
Sends selected messages to Singular Live for featured message overlay |
| H2R | &h2r=IDENTIFIER |
Sends selected messages to a local H2R server |
| Generic POST | &postserver=URL |
Sends selected messages to a custom endpoint via POST |
| Generic PUT | &putserver=URL |
Sends selected messages to a custom endpoint via PUT |
These parameters should be added to the dock page URL.
You can create your own commands and functionality by customizing the JavaScript code:
custom_sample.js to custom.jsThis method allows for complex customizations and triggers.
You can create completely custom chat overlays from scratch to match your stream's unique style and functino. Social Stream Ninja provides a flexible foundation that you can build upon.
timer.html RemotelyThe timer page is intentionally narrow in scope: one timer, optional operator controls, warning states, overtime, and a few visual styles.
Useful actions include starttimer, pausetimer, resettimer, timeradd, timersubtract, and settimer.
{
"action": "settimer",
"value": {
"seconds": 300,
"label": "Interview",
"mode": "countdown",
"style": "stage",
"warnSeconds": 60,
"dangerSeconds": 15
}
}
To query the current timer state, use gettimerstate with a callback token.
{ "action": "gettimerstate", "get": "timer-state-1" }
Use the page with timer.html?session=YOUR_SESSION&server if you want it controlled directly through the API server.
With these powerful commands and API options, you can create a truly unique and interactive streaming experience.