Channels
Channels are the ingress and egress layer between humans and matic. Each channel adapter normalizes platform-native events such as Slack messages, terminal input, and inbound webhooks into a canonical signal envelope, then formats agent responses back into the transport the human is using. This section covers the shared interface all channels implement, the registry that discovers and manages them, the routing and normalization contracts that keep the signal pipeline transport-agnostic, and the built-in channel implementations.
Channel Interface
Channel Interface explains the ChannelImplementation contract that every channel adapter must satisfy, including configuration lifecycle, server creation, and the ChannelServer start/stop/sendMessage runtime surface.
Channel Registry
Channel Registry describes how matic discovers, validates, and stores channel records under .matic/channels/, including plugin-contributed channels and conflict detection when two plugins register the same type.
Handle Routing Hints
Handle Routing Hints covers how channels extract @agent and @group mentions from inbound messages and attach routing metadata to the signal envelope, enabling direct-address dispatch before subscription matching.
Signal Payload Normalization
Signal Payload Normalization defines the canonical SignalPayload structure, including text, attachments, refs, and author context, and the rules each channel follows to transform platform-native events into it.
Slack
Slack documents the full Slack integration, including app setup, Events API ingestion, Block Kit rendering, slash commands, thread context tracking, @mention routing, and notification delivery.
Terminal
Terminal explains the in-process terminal channel used by matic chat, including stdin signal ingestion, stdout rendering, PTY session binding, ANSI formatting, and collaborative mode hints.
Webhook and Email
Webhook and Email covers stateless inbound channels: HTTP webhook receivers and SMTP/IMAP email adapters that convert request bodies and messages into signals without maintaining a persistent connection.