Supported platforms
Create a bot by scanning a QR code (iLink). Private chats only. The first
message auto-creates a session; an expired token requires re-scanning.
Feishu / Lark
WebSocket long connection (no public callback). Supports one-scan creation,
or manual App ID / App Secret. Private chats only, text and rich text.
DingTalk
Stream-mode long connection (no public callback). Fill Client ID + Client Secret;
enable the “robot” capability in the open platform and publish in Stream mode.
One-on-one chats only.
WeCom
Smart-robot long connection. Enable API mode with “long connection” in the admin
console and fill BotID + long-connection Secret. One-on-one chats only.
Binding model
One chat maps durably to one desktop session:- The first message auto-creates a session (working directory from the bot config) and
sends a one-time onboarding message explaining
/new(start a new chat),/clear(compact context), and/stop(stop the task); - Every later message in that chat routes to the same session, and the binding survives an app restart;
- The bot detail page can pin the bot to a specific session (single-session mode).
Access control (owner gate)
The first private-chat sender on each channel becomes the owner; messages from strangers are rejected with a fixed notice — no session is created out of nowhere. The detail page’s “Access control” shows the owner (masked) and can reset it; the next private message becomes the new owner.Reply granularity
A dropdown on the detail page, four levels:Thinking level
The sidecar produces no thinking events by default. Each channel config can set its own thinking level (off / low / medium / high): applied to the session when a binding is created, and to all bound sessions when the config changes. If you pick “Live progress” while thinking is off, the frontend automatically switches the level to low — otherwise there is nothing to push. Higher levels mean slower replies and higher cost.Channel management
The detail page covers: enable/disable (stops polling, keeps the binding), bind/unbind, session selection, reply granularity, working directory, access control (owner view/reset plus send test message), and delete. The test message reuses the channel’s last inbound target; it is rejected while the channel is disabled.Known limits
- Private / one-on-one chats only for now — no group chats;
- Non-text messages (images / voice / files) are ignored at first release;
- Approval and Question interactions have no cards in IM: the desktop still shows the card, and the IM reply tells you to confirm there;
- Credentials are validated first and then encrypted at rest, same storage as model API keys.
Next
Besides IM, the browser and phone can use the desktop as a remote entry point.
