Channels

Bring Feishu, DingTalk, WeChat, WeChat Work, QQ, Telegram, Discord, and WhatsApp messages into Klaus, plus the access-control levels for direct and group chats.

The channels page is the unified messaging entry point that brings messages from external instant-messaging platforms into Klaus for processing. Supported platforms: Feishu, DingTalk, WeChat, WeChat Work, QQ, Telegram, Discord, and WhatsApp. Once connected, conversations from these channels appear in the sidebar.

Each platform's credentials (bot token, webhook URL, and so on) are stored in local settings and are never handed to the model. A message travels from the platform to the engine through several steps — deduplication, access control, ownership verification, and context binding. See How channel messages come in for details; "the message arrived but it ignored it" usually means it was silently dropped at the access-control step.

  • Access control is configured per platform in one file: ~/.klaus/channels/<platform>/access.json. If this file does not exist, that platform has no access control and everything is processed; if the file is corrupted, the opposite applies — everything is blocked, and it never turns into an open door.
  • Direct chats have four levels: pairing (the default — a stranger's direct message first receives a pairing code, and the conversation is allowed only after you approve it in the UI), allowlist (only people on the list can send direct messages; the rest are silently dropped), open (direct messages from anyone are accepted), and disabled (no direct messages are accepted). Discord has no open level — only three.
  • On most platforms, disabled blocks only direct chats; group messages still follow the group registry. Only Discord's disabled blocks groups as well.
  • Group chats must be registered first: any unregistered group is dropped entirely — that file itself is the list of which groups are enabled. After registering a group, you can additionally give it a member allowlist (leave it empty to allow anyone in the group).
  • In groups, an @ mention is required by default before it replies. If you want it to answer every message in a particular group, explicitly turn off that group's "requires @" setting.
  • Blocked messages are completely silent to the sender — there is no "you are not allowed" reply — so from the sender's perspective it simply looks like nobody responded.
  • WeChat and WhatsApp sign in by scanning a QR code; this step can only be done in the UI, Klaus cannot do it for you. Discord additionally has a full set of admission and delivery settings (direct-message policy, pending pairing codes, whether @ is required in groups, message chunk length, and reply format); changing group configuration or delivery format is a full overwrite, not a field-by-field merge.