Skip to main content

Bots

Heimdall bots are standalone Rust services that connect a chat platform to the Heimdall API. They are independent runtimes (separate from the API itself) and communicate with the backend over GraphQL, REST, and a WebSocket data-sync channel that uses Protocol Buffers (protobuf) for message framing.

Shared architecture

  • Standalone Rust binaries, deployed independently of the API.
  • Talk to the Heimdall API over GraphQL / REST.
  • Real-time data-sync over WebSocket using protobuf-encoded messages.

Status

BotStatusDocs
DiscordImplemented — commands, RBAC, i18n, WebSocket data-sync, moderation, embedsDiscord bot
TwitchPlanned (scaffold only)Twitch bot
YouTubePlanned (scaffold only)YouTube bot

Only the Discord bot is a working runtime today. The Twitch and YouTube bots currently exist as scaffolding (config and build files) with no commands, client, or data-sync implemented yet.

Bot runtime vs. platform integration

Do not confuse the bot runtime with the platform OAuth integration:

  • Bot runtime — the chat-platform service described above. Only Discord has a functional runtime for now.
  • OAuth integration — account linking for external providers (Twitch, YouTube, Kick, Trovo, and more), including scopes and token refresh. This already works and is independent of whether a bot runtime exists for that platform. See Integrations.

In other words: linking a Twitch or YouTube account to Heimdall is supported today via the OAuth integration, even though their bot runtimes are still planned.