Docs/Resonant/Channels

Channels

Resonant supports multiple communication channels. Your companion is the same entity across all of them — same memory, same identity, same conversation history.

Web UI

The default interface. Runs at http://localhost:3002 after starting Resonant.

Features:

  • Real-time streaming with tool call visualisation
  • Thread management (daily rotation + named threads)
  • Keyword search (Ctrl+K) and semantic search
  • Canvas editor (markdown, code, text, HTML)
  • Message reactions and reply-to
  • Voice recording with transcription
  • Text-to-speech responses
  • File sharing and image preview
  • Themeable via CSS variables
  • PWA support — installable on mobile

Password Protection

Set a password in resonant.yaml or via Settings > Preferences:

auth:
  password: "your-password"

Discord

Full Discord bot integration with per-server configuration.

Setup

  1. Create a bot at discord.com/developers
  2. Enable the Message Content Intent under Bot settings
  3. Generate an invite URL with bot and applications.commands scopes
  4. Add the bot to your server
  5. Configure in resonant.yaml:
channels:
  discord:
    enabled: true
    token: "your-bot-token"
  1. Restart Resonant — the bot comes online automatically

How It Works

  • Responds to DMs and @mentions in configured channels
  • Per-server and per-channel rules (set via Settings or chat commands)
  • Pairing system — link your Discord identity to your Resonant identity
  • Full message formatting with embeds
  • File and image sharing

Managing Discord

Through the Settings page or chat:

  • Enable/disable per channel
  • Set response rules (always respond, mentions only, off)
  • Manage pairings between Discord users and companion identities

Telegram

Direct messaging through a Telegram bot.

Setup

  1. Chat with @BotFather on Telegram
  2. Run /newbot and follow the prompts to create your bot
  3. Copy the token BotFather gives you
  4. Configure in resonant.yaml:
channels:
  telegram:
    enabled: true
    token: "your-telegram-token"
  1. Restart Resonant

How It Works

  • Responds to private messages and group mentions
  • Media sharing (images, voice notes, files)
  • Voice notes are automatically transcribed

Voice

Resonant supports both voice input and voice output.

Voice Input (Speech-to-Text)

Record voice messages in the web UI. They’re transcribed using Groq Whisper and sent as text messages to your companion.

Configure in resonant.yaml:

voice:
  stt:
    provider: groq
    apiKey: "your-groq-key"

Voice Output (Text-to-Speech)

Your companion can speak its responses using ElevenLabs.

voice:
  tts:
    provider: elevenlabs
    apiKey: "your-elevenlabs-key"
    voiceId: "your-voice-id"

Prosody Analysis (Optional)

With Hume AI, Resonant can analyse the emotional tone of voice messages — not just what was said, but how it was said.

voice:
  prosody:
    provider: hume
    apiKey: "your-hume-key"

Push Notifications

Web push notifications via VAPID. Your companion can notify you even when the browser tab is closed.

Managed through Settings > Devices in the web UI. Each browser/device registers separately.

All Channels, One Companion

The key principle: every channel connects to the same backend. A message sent on Discord and a message sent in the web UI are part of the same conversation history. Your companion remembers everything across all channels.

This means your companion can reference a Discord conversation while chatting on the web, or follow up on a Telegram message during a scheduled autonomous session.