Skip to content

Channels & Bots

DotCraft connects the same workspace to mainstream chat platforms via SDK extensions: QQ, WeCom, Feishu / Lark, Telegram, WeChat. These channels reuse the same session core, memory, skills, and security policy — context you see in Desktop is the same context the bot sees.

DotCraft Channels configuration and conversations

What's Provided

ChannelSDKDocumentation
QQTypeScriptchannel-qq
WeComTypeScriptchannel-wecom
Feishu / LarkTypeScriptchannel-feishu
Telegram (TypeScript)TypeScriptchannel-telegram
WeChatTypeScriptchannel-weixin
Telegram (Python)Pythonpython-telegram

TypeScript channel modules follow the TypeScript Module integration contract: standard manifest, createModule, configDescriptors, and lifecycle states.

Integration Path

DotCraft channel adapter topology

Two integration shapes:

  • Embedded in Desktop: Desktop launches the channel as a subprocess via transport: "subprocess" and builtinModule. Use the Desktop Channels page to fill in platform tokens, callbacks, allowlists, or QR-code auth, then enable in one click.
  • Standalone adapter: An external process connects to AppServer over WebSocket via transport: "websocket". Best for long-running processes on a server or container.

AppServer and channel registration fields live in Entry Points and Services. Platform-specific connection, permission allowlists, and approval timeouts live in adapter-specific files like .craft/qq.json and .craft/wecom.json.

Channels and Unified Session Core

  • A group chat = a Thread; multiple messages from the same user = additional Turns / Items in the Thread.
  • The channel passes group, user, and message-type metadata; DotCraft uses it to attribute messages to threads.
  • When the agent needs approval (write file, shell command), the channel renders the request as a native platform message (button / quote). Execution waits for user consent.
  • Desktop / TUI can connect to the same AppServer to see chat history, take over, or correct replies.

See Unified Session Core for the model.

Scenarios

ScenarioRecommendation
Internal knowledge-base botFeishu / WeCom for enterprise IT
OSS community Q&ATelegram / QQ
Project support / aftermarketWeChat / WeCom
Trigger an Agent CI report from a groupAny channel + Automations
Read group history in Desktop and take overAny channel + Desktop on the same workspace

Security Notes

Connecting an external channel exposes the agent to arbitrary user input. Pair it with:

  • Approval for outside-workspace file and shell actions
  • A narrowed tool surface
  • A strong random AppServer WebSocket token
  • Optionally OpenSandbox for further isolation

Full checklist and exact fields: Security & Sandbox and Configuration Reference.

Building a Custom Channel

DotCraft ships five channels out of the box. To integrate other platforms (Slack, Discord, Lark private deployment, enterprise IM):

Troubleshooting

Adapter cannot connect to AppServer

Confirm AppServer runs in WebSocket mode, the URL contains /ws, and the token matches the client config.

Messages arrive but the agent does not reply

Check that the adapter declared delivery capabilities during initialize. Verify the model provider's merged result on the Dashboard Settings page. Check whether tools were rejected by approval.

Desktop does not see bot conversations

Confirm Desktop and the bot connect to the same workspace / AppServer.

Apache License 2.0