Adding a Channel
v1 status: stub. Step-by-step walkthrough TBD. In the meantime, see
examples/custom_channel.rsin the rantaiclaw repo and read Concepts → Channels & Providers.
The shape
- Create
src/channels/<your_channel>.rsand implement theChanneltrait - Register the factory key in
src/channels/mod.rs - Add a config struct under
src/config/schema.rsfor channel-specific settings (auth, allowlists, transport options) - Add tests for auth, allowlist enforcement, and disconnect/reconnect
- Document in Reference → Channels
Reference implementations
src/channels/discord.rs— WebSocket transport with reconnectsrc/channels/telegram.rs— long-poll transportsrc/channels/email.rs— IMAP listen + SMTP sendsrc/channels/cli.rs— stdin/stdout for the simplest possible channel
Allowlists
Every channel must respect an allowlist. The default for an empty allowlist is offline, not open. This is enforced by review, not by the trait — but it is a hard requirement for in-tree channels.
Last updated on