Channels
Current channels
Section titled “Current channels”The current platform codebase supports two active channels:
- Web — the primary rich client in
apps/web - Telegram — the messaging adapter in
apps/telegram
The roadmap still leaves room for WhatsApp later, but the live product today is Web + Telegram.
The important rule
Section titled “The important rule”Channels are adapters.
They change:
- transport
- rendering style
- authentication path
- upload flow
- response delivery format
They do not change:
- the canonical user identity
- the active skill’s business logic
- the entitlement model
- the worker verification model
Web channel
Section titled “Web channel”The web app uses:
- Supabase JWT auth
- SSE streaming for
/chat - a dedicated resume extraction route
- direct billing checkout and portal requests through the ClawOS API
Relevant files:
apps/web/src/lib/api.tsapps/web/src/hooks/useSSEChat.tsapps/api/src/routes/chat.tsapps/api/src/routes/resume.ts
Telegram channel
Section titled “Telegram channel”The Telegram adapter uses:
- Telegram webhook delivery
- service-auth headers to call the Agent API
- channel identity mapping into the canonical ClawOS user
/link <token>account linking for Telegram-to-web merge
Relevant files:
apps/telegram/src/index.tsapps/telegram/src/link.tsapps/api/src/auth.tsapps/api/src/routes/link-token.ts
Why this structure is better
Section titled “Why this structure is better”ClawOS does not fork business logic per channel.
Web and Telegram both route into the same platform core, which means:
- one user identity
- one entitlement model
- one session model
- one platform trust boundary
That is the right mental model for the docs and for the product.