Chat buddy for
streamers. On autopilot.
Custom commands, timers, moderation filters, and a song request queue — managed through a clean HTTP API. Connect Twitch or YouTube and let Kli handle the rest.
Everything you need to automate chat
Powerful features, simple API. No bloat.
Custom Commands
Template variables, permission levels, aliases, and cooldowns. {user}, {count}, {args} and more.
Recurring Messages
Schedule timed messages with minimum chat line thresholds. Fires only when your channel is live and connected.
Moderation Filters
Caps, symbols, links, and blacklist rules. Delete, timeout, or ban via IRC dot-commands. Opt-in per channel.
Song Requests
Queue management with play-next, skip, and status transitions. Track what's playing now.
Live WebSocket Feed
Real-time chat.message and moderation.flag events. Origin-checked upgrades, graceful close.
Twitch EventSub
HMAC signature verification, replay deduplication. Handles follows, subs, and raids securely.
How it works
Three steps to automated chat.
Connect your channel
Register via OAuth. Twitch or YouTube — your channel, your data.
Configure automation
Set up commands, timers, moderation rules, and song queues through the API.
Bot joins and automates
Kli connects to IRC, runs moderation, executes commands, and logs everything.
Clean HTTP API
RESTful endpoints, JSON responses, HMAC-signed sessions.
# Create a custom command
curl -X POST localhost:8080/api/channels/$CH/commands \
-H "Content-Type: application/json" \
-d '{"name":"!discord","response_template":"Join $(user): https://discord.gg/demo"}'
# Add a recurring message
curl -X POST localhost:8080/api/channels/$CH/timers \
-H "Content-Type: application/json" \
-d '{"name":"social","message":"Follow me!","interval_seconds":600}'
# Queue a song request
curl -X POST localhost:8080/api/channels/$CH/songs \
-H "Content-Type: application/json" \
-d '{"source":"youtube","title":"Never Gonna Give You Up"}'
Security first
Built with security best practices from day one.
HMAC-SHA256 Sessions
Session tokens are HMAC-signed. Secrets and tokens are never logged.
Ownership Verification
All handlers verify ownership. Unknown ownership returns 404, not 403.
EventSub HMAC
Webhook signature verification and replay deduplication built in.
WebSocket Origin Check
Upgrades restricted to same-origin plus configured CORS origin.
Ready to automate your chat?
Self-host in two minutes. MIT licensed. No external services needed.
View Source on GitLab — Free & Open Source