channels#
Run / inspect chat-channel bots (Telegram, Discord, Slack, WeChat)
usage: openprogram channels [-h] verb ...
channels list#
Show per-platform enable + config status
channels setup#
Interactive wizard — pick channel, log in (QR / token), bind to an agent. One command instead of accounts add + accounts login + bindings add. Channels run inside the background service — start it by running openprogram.
channels accounts#
Manage channel bot accounts (WeChat, Telegram, etc.)
channels accounts list#
List every channel account
channels accounts add#
Create a new channel account and prompt for credentials
| Option | Description |
|---|---|
channel |
Channel id (telegram, discord, slack, wechat) |
--id ID |
Account id (default: 'default') |
channels accounts rm#
Delete a channel account (also drops its bindings)
| Option | Description |
|---|---|
channel |
Channel id the account belongs to |
account_id |
Account id to remove |
channels accounts login#
Re-run the login flow for an account (e.g. WeChat QR)
| Option | Description |
|---|---|
channel |
Channel id to log into |
--id ID |
Account id (default: 'default') |
channels accounts set#
Set an account behavior setting (e.g. telegram group semantics: group_sessions=shared|per-user, require_mention=on|off). Restart the worker to apply.
| Option | Description |
|---|---|
channel |
Channel id |
key |
Setting key (see channel docs) |
value |
Setting value |
--id ID |
Account id (default: 'default') |
channels access#
Inbound sender access control: allowlist + pairing codes. Unknown senders get a pairing code instead of driving the agent; approve them here (never from the chat itself). An account takes any number of approved senders — they share one agent and one memory, which records who said what.
channels access list#
Show policy, allowlist and pending pairing codes
| Option | Description |
|---|---|
channel |
Limit to one channel (optional) |
channels access approve#
Approve a pending sender by pairing code
| Option | Description |
|---|---|
channel |
|
code |
Pairing code the sender received |
--id ID |
Account id (default: 'default') |
channels access allow#
Allowlist a platform user id directly (no pairing code needed)
| Option | Description |
|---|---|
channel |
|
user_id |
Platform-native sender id |
--id ID |
Account id (default: 'default') |
channels access revoke#
Remove a sender from the allowlist (and pending list)
| Option | Description |
|---|---|
channel |
|
user_id |
Platform-native sender id |
--id ID |
Account id (default: 'default') |
channels bindings#
Route inbound channel messages to agents
channels bindings list#
Show every routing rule
channels bindings add#
Add a binding: inbound messages matching (channel, account, optional peer) go to the given agent
| Option | Description |
|---|---|
agent_id |
Agent that matching inbound messages route to |
--channel CHANNEL |
Channel id this binding matches |
--account ACCOUNT |
Account id (omit for channel-wide) |
--peer PEER |
Specific peer id (user_id / chat_id) — omit for broad rule |
--peer-kind PEER_KIND |
Peer kind: direct | group (default: direct) |
channels bindings rm#
Remove a binding by its id (see bindings list)
| Option | Description |
|---|---|
binding_id |
Binding id to remove (see channels bindings list) |