You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I’m currently building a local desktop application (Python + local UI) that integrates multiple streaming platforms (Twitch, YouTube, Kick) into a single control panel for streamers.
The application:
Runs entirely on the user’s machine
Is only active while the streamer has it open
Does not run persistently in the background
Is not a cloud service or SaaS
Is similar in nature to an OBS plugin or StreamDeck-style desktop tooling
For Twitch, reading live chat is straightforward via client-initiated connections (IRC / WebSocket).
For Kick, I understand that the officially supported way to receive chat messages is via webhook events (chat.message.sent), which works very well for cloud-based services.
However, for desktop / local-first applications, the webhook-only model introduces some structural challenges:
Webhooks require a publicly reachable backend, even when the app is purely local
Chat events are delivered even when the local application is offline
A backend must maintain routing/state to determine whether a local client is currently connected
This effectively forces desktop tools into a cloud-service architecture, even when they don’t need one
From a desktop tooling perspective, this feels like a mismatch, as the natural model is:
client-initiated
scoped to an authenticated user/session
active only while the application is running
read-only access to live chat messages
With that context, I wanted to ask:
• Is there any existing (even undocumented) way to read live chat messages via a client-initiated approach (polling, SSE, WebSocket, etc.) intended for local/desktop applications?
• Is such a capability planned or being considered as part of the API’s future direction?
• Or is the webhook-based model intentionally the only supported way to consume chat messages by design?
I’ve reviewed the KickDevDocs and roadmap, and I see many chat-related improvements focused on webhook payloads, but nothing that seems to cover local/desktop consumption of live chat.
The goal here is mainly to understand the intended direction, before resorting to non-official approaches that emulate the web frontend.
Thanks a lot for the work you’re doing on the API, and for any clarification you can share 🙏
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Hi Kick team 👋,
I’m currently building a local desktop application (Python + local UI) that integrates multiple streaming platforms (Twitch, YouTube, Kick) into a single control panel for streamers.
The application:
For Twitch, reading live chat is straightforward via client-initiated connections (IRC / WebSocket).
For Kick, I understand that the officially supported way to receive chat messages is via webhook events (chat.message.sent), which works very well for cloud-based services.
However, for desktop / local-first applications, the webhook-only model introduces some structural challenges:
From a desktop tooling perspective, this feels like a mismatch, as the natural model is:
With that context, I wanted to ask:
• Is there any existing (even undocumented) way to read live chat messages via a client-initiated approach (polling, SSE, WebSocket, etc.) intended for local/desktop applications?
• Is such a capability planned or being considered as part of the API’s future direction?
• Or is the webhook-based model intentionally the only supported way to consume chat messages by design?
I’ve reviewed the KickDevDocs and roadmap, and I see many chat-related improvements focused on webhook payloads, but nothing that seems to cover local/desktop consumption of live chat.
The goal here is mainly to understand the intended direction, before resorting to non-official approaches that emulate the web frontend.
Thanks a lot for the work you’re doing on the API, and for any clarification you can share 🙏
Beta Was this translation helpful? Give feedback.
All reactions