Module channels
Modules§
- acp_
server - ACP (Agent Control Protocol) Server — JSON-RPC 2.0 over stdio.
- link_
enricher - Link enricher: auto-detects URLs in inbound messages, fetches their content, and prepends summaries so the agent has link context without explicit tool calls.
- media_
pipeline - Automatic media understanding pipeline for inbound channel messages.
- session_
backend - session_
sqlite - telegram
- transcription
Structs§
- Channel
Message - A message received from or sent to a channel
- CliChannel
- CLI channel — stdin/stdout, always available, zero deps
- Discord
Channel - Discord channel — connects via Gateway WebSocket for real-time messages
- Email
Channel - Filesystem
Channel - Filesystem change source as a
Channel. - Gmail
Push Channel - Message
Debouncer - Accumulates rapid inbound messages per sender and fires a single combined message after the debounce window elapses without new input.
- Send
Message - Message to send through a channel
- Sqlite
Session Backend - SQLite-backed session store with FTS5 and WAL mode.
- Stall
Watchdog - Telegram
Channel - Telegram channel — long-polls the Bot API for updates
- TtsManager
- Webhook
Channel - Generic Webhook channel — receives messages via HTTP POST and sends replies to a configurable outbound URL. This is the “universal adapter” for any system that supports webhooks.
Constants§
- BOOTSTRAP_
MAX_ CHARS - Maximum characters per injected workspace file (matches
OpenClawdefault).
Traits§
- Channel
- Core channel trait — implement for any messaging platform.
- Session
Backend - Trait for session persistence backends.
Implementations must be
Send + Syncfor sharing across async tasks. - TtsProvider
- Trait for pluggable TTS backends.
Functions§
- bind_
channel_ identity_ into - Add
identityto the peer group bound to<type>.<alias>in-place. - bind_
telegram_ identity - build_
channel_ map - build_
system_ prompt - build_
system_ prompt_ with_ mode - build_
system_ prompt_ with_ mode_ and_ autonomy - channel_
alias_ configured - Whether a
[channels.<type>.<alias>]section exists. Rust has no reflection over the typed channel maps, so this stays an explicit per-type match; only this arm grows when a new pairing channel lands. - channel_
identity_ normalizer - Resolve the identity normalizer for a pairing-capable channel type, or
Nonefor a type with no operator-bind surface.Noneis the closed-set gate: onlytelegram/wechat/linecan be bound this way. - conversation_
history_ key - deliver_
announcement - doctor_
channels - Run health checks for configured channels.
- handle_
command - register_
channels_ for_ tools - send_
channel_ message - Send a one-off message to a configured channel.
- start_
channels - Start all configured channels and route messages to the agent
Type Aliases§
- Channel
Identity Normalizer - Per-channel-type identity normalizer. The operator-bind op is otherwise identical across the pairing-capable channels; the only variance is how a raw identity is canonicalized before it is stored in the allowlist.