Skip to content

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.

Twitch
YouTube

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.

1

Connect your channel

Register via OAuth. Twitch or YouTube — your channel, your data.

2

Configure automation

Set up commands, timers, moderation rules, and song queues through the API.

3

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.

terminal
# 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