Merlin Docs
Channels
Web, TUI, CLI, Telegram, Discord, iMessage, Signal, webhook, cron, and mesh share the runtime.
Channels are entrypoints into the same cwd-local runtime. A web message, terminal message, cron tick, Telegram message, Discord message, iMessage message, Signal message, webhook request, or mesh handoff all become runtime send inputs.
Channel Model
| Channel | Use it for |
|---|---|
| Web | Dashboard chat, sessions, agents, skills, extensions, cron, SOUL, and installed Project Sessions. |
| TUI | Terminal-native chat against the same cwd runtime. |
| CLI | One-shot or resumed turns from scripts and shells. |
| Telegram / Discord / iMessage / Signal | Messaging surfaces preserving channel identity and room links. |
| Webhook | HTTP turns that return outbound messages in the response. |
| Cron | Scheduled turns with stable cron:<job-id> session keys. |
| Mesh | Agent-to-agent handoffs inside a room. |
Session Keys
Normal channel sessions are keyed from channel identity, account, chat, thread, control command, and selected agent. Room-linked traffic collapses onto room:<id> or room:<id>:agent:<id>, so multiple channel identities can share one room transcript.