Skip to main content

Module channels

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§

ChannelMessage
A message received from or sent to a channel
CliChannel
CLI channel — stdin/stdout, always available, zero deps
DiscordChannel
Discord channel — connects via Gateway WebSocket for real-time messages
EmailChannel
FilesystemChannel
Filesystem change source as a Channel.
GmailPushChannel
MessageDebouncer
Accumulates rapid inbound messages per sender and fires a single combined message after the debounce window elapses without new input.
SendMessage
Message to send through a channel
SqliteSessionBackend
SQLite-backed session store with FTS5 and WAL mode.
StallWatchdog
TelegramChannel
Telegram channel — long-polls the Bot API for updates
TtsManager
WebhookChannel
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 OpenClaw default).

Traits§

Channel
Core channel trait — implement for any messaging platform.
SessionBackend
Trait for session persistence backends. Implementations must be Send + Sync for sharing across async tasks.
TtsProvider
Trait for pluggable TTS backends.

Functions§

bind_channel_identity_into
Add identity to 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 None for a type with no operator-bind surface. None is the closed-set gate: only telegram / wechat / line can 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§

ChannelIdentityNormalizer
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.