@symerian/symi 3.0.16 → 3.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  3. package/docs/.i18n/zh-CN.tm.jsonl +0 -20
  4. package/docs/automation/cron-jobs.md +0 -2
  5. package/docs/automation/hooks.md +0 -2
  6. package/docs/automation/poll.md +0 -8
  7. package/docs/automation/webhook.md +0 -2
  8. package/docs/capabilities.md +0 -2
  9. package/docs/channels/broadcast-groups.md +0 -1
  10. package/docs/channels/channel-routing.md +4 -10
  11. package/docs/channels/group-messages.md +0 -2
  12. package/docs/channels/groups.md +0 -10
  13. package/docs/channels/index.md +0 -1
  14. package/docs/channels/matrix.md +0 -2
  15. package/docs/channels/msteams.md +0 -2
  16. package/docs/channels/pairing.md +0 -3
  17. package/docs/channels/signal.md +0 -2
  18. package/docs/channels/troubleshooting.md +0 -7
  19. package/docs/cli/channels.md +0 -6
  20. package/docs/cli/configure.md +0 -1
  21. package/docs/cli/directory.md +0 -1
  22. package/docs/cli/index.md +0 -7
  23. package/docs/cli/message.md +1 -47
  24. package/docs/cli/status.md +0 -1
  25. package/docs/concepts/architecture.md +0 -1
  26. package/docs/concepts/features.md +0 -2
  27. package/docs/concepts/markdown-formatting.md +6 -8
  28. package/docs/concepts/memory.md +0 -4
  29. package/docs/concepts/messages.md +0 -1
  30. package/docs/concepts/models.md +0 -1
  31. package/docs/concepts/multi-agent.md +4 -19
  32. package/docs/concepts/queue.md +0 -3
  33. package/docs/concepts/retry.md +0 -5
  34. package/docs/concepts/session-tool.md +0 -2
  35. package/docs/concepts/session.md +2 -9
  36. package/docs/concepts/streaming.md +0 -2
  37. package/docs/concepts/system-prompt.md +0 -1
  38. package/docs/concepts/timezone.md +0 -1
  39. package/docs/date-time.md +0 -1
  40. package/docs/docs.json +2 -11
  41. package/docs/experiments/plans/cron-add-hardening.md +0 -1
  42. package/docs/experiments/plans/session-binding-channel-agnostic.md +2 -23
  43. package/docs/experiments/plans/thread-bound-subagents.md +7 -64
  44. package/docs/gateway/configuration-examples.md +0 -10
  45. package/docs/gateway/configuration-reference.md +22 -47
  46. package/docs/gateway/configuration.md +0 -3
  47. package/docs/gateway/heartbeat.md +0 -2
  48. package/docs/gateway/security/index.md +1 -6
  49. package/docs/gateway/troubleshooting.md +0 -1
  50. package/docs/help/faq.md +0 -13
  51. package/docs/help/troubleshooting.md +0 -1
  52. package/docs/index.md +0 -6
  53. package/docs/install/ansible.md +2 -3
  54. package/docs/install/docker.md +1 -7
  55. package/docs/install/fly.md +0 -14
  56. package/docs/install/northflank.mdx +7 -11
  57. package/docs/install/railway.mdx +6 -10
  58. package/docs/install/render.mdx +1 -2
  59. package/docs/ja-JP/index.md +0 -3
  60. package/docs/pi.md +3 -5
  61. package/docs/platforms/digitalocean.md +0 -1
  62. package/docs/platforms/mac/voicewake.md +0 -1
  63. package/docs/providers/index.md +0 -2
  64. package/docs/refactor/outbound-session-mirroring.md +0 -2
  65. package/docs/reference/AGENTS.default.md +0 -1
  66. package/docs/reference/RELEASING.md +0 -1
  67. package/docs/reference/session-management-compaction.md +0 -1
  68. package/docs/reference/templates/AGENTS.md +0 -7
  69. package/docs/reference/wizard.md +0 -4
  70. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -1
  71. package/docs/security/README.md +0 -1
  72. package/docs/security/THREAT-MODEL-ATLAS.md +7 -10
  73. package/docs/start/docs-directory.md +0 -1
  74. package/docs/start/hubs.md +0 -1
  75. package/docs/start/lore.md +0 -3
  76. package/docs/start/setup.md +0 -2
  77. package/docs/start/showcase.md +0 -2
  78. package/docs/start/symi.md +0 -4
  79. package/docs/start/wizard-cli-reference.md +0 -4
  80. package/docs/start/wizard.md +3 -4
  81. package/docs/tools/agent-send.md +0 -1
  82. package/docs/tools/elevated.md +0 -2
  83. package/docs/tools/exec-approvals.md +0 -1
  84. package/docs/tools/index.md +0 -7
  85. package/docs/tools/multi-agent-sandbox-tools.md +1 -2
  86. package/docs/tools/reactions.md +0 -1
  87. package/docs/tools/slash-commands.md +0 -14
  88. package/docs/tools/symihub.md +0 -1
  89. package/docs/tts.md +0 -1
  90. package/docs/web/control-ui.md +0 -1
  91. package/docs/zh-CN/automation/cron-jobs.md +0 -2
  92. package/docs/zh-CN/automation/poll.md +0 -8
  93. package/docs/zh-CN/automation/webhook.md +0 -2
  94. package/docs/zh-CN/channels/broadcast-groups.md +0 -1
  95. package/docs/zh-CN/channels/channel-routing.md +4 -9
  96. package/docs/zh-CN/channels/group-messages.md +0 -2
  97. package/docs/zh-CN/channels/groups.md +0 -10
  98. package/docs/zh-CN/channels/imessage.md +0 -2
  99. package/docs/zh-CN/channels/index.md +0 -1
  100. package/docs/zh-CN/channels/msteams.md +0 -2
  101. package/docs/zh-CN/channels/pairing.md +0 -3
  102. package/docs/zh-CN/channels/signal.md +0 -2
  103. package/docs/zh-CN/channels/slack.md +0 -2
  104. package/docs/zh-CN/channels/telegram.md +0 -3
  105. package/docs/zh-CN/channels/troubleshooting.md +0 -2
  106. package/docs/zh-CN/cli/channels.md +0 -6
  107. package/docs/zh-CN/cli/configure.md +0 -1
  108. package/docs/zh-CN/cli/directory.md +0 -1
  109. package/docs/zh-CN/cli/index.md +0 -7
  110. package/docs/zh-CN/cli/message.md +1 -42
  111. package/docs/zh-CN/cli/status.md +0 -1
  112. package/docs/zh-CN/concepts/architecture.md +0 -1
  113. package/docs/zh-CN/concepts/features.md +0 -2
  114. package/docs/zh-CN/concepts/markdown-formatting.md +6 -8
  115. package/docs/zh-CN/concepts/messages.md +0 -1
  116. package/docs/zh-CN/concepts/multi-agent.md +4 -5
  117. package/docs/zh-CN/concepts/queue.md +0 -3
  118. package/docs/zh-CN/concepts/retry.md +0 -5
  119. package/docs/zh-CN/concepts/session-tool.md +0 -2
  120. package/docs/zh-CN/concepts/session.md +3 -11
  121. package/docs/zh-CN/concepts/streaming.md +0 -2
  122. package/docs/zh-CN/concepts/system-prompt.md +0 -2
  123. package/docs/zh-CN/concepts/timezone.md +0 -2
  124. package/docs/zh-CN/date-time.md +0 -1
  125. package/docs/zh-CN/experiments/plans/cron-add-hardening.md +0 -1
  126. package/docs/zh-CN/gateway/configuration-examples.md +0 -7
  127. package/docs/zh-CN/gateway/configuration.md +2 -50
  128. package/docs/zh-CN/gateway/heartbeat.md +0 -2
  129. package/docs/zh-CN/gateway/security/index.md +1 -6
  130. package/docs/zh-CN/gateway/troubleshooting.md +1 -14
  131. package/docs/zh-CN/help/faq.md +0 -15
  132. package/docs/zh-CN/index.md +0 -3
  133. package/docs/zh-CN/install/ansible.md +2 -3
  134. package/docs/zh-CN/install/docker.md +1 -7
  135. package/docs/zh-CN/install/fly.md +0 -14
  136. package/docs/zh-CN/install/northflank.mdx +7 -11
  137. package/docs/zh-CN/install/railway.mdx +6 -10
  138. package/docs/zh-CN/install/render.mdx +1 -2
  139. package/docs/zh-CN/pi.md +3 -5
  140. package/docs/zh-CN/platforms/digitalocean.md +0 -1
  141. package/docs/zh-CN/platforms/mac/voicewake.md +0 -1
  142. package/docs/zh-CN/providers/index.md +0 -2
  143. package/docs/zh-CN/refactor/outbound-session-mirroring.md +0 -2
  144. package/docs/zh-CN/reference/AGENTS.default.md +0 -1
  145. package/docs/zh-CN/reference/RELEASING.md +0 -1
  146. package/docs/zh-CN/reference/session-management-compaction.md +0 -1
  147. package/docs/zh-CN/reference/templates/AGENTS.md +0 -5
  148. package/docs/zh-CN/start/docs-directory.md +0 -1
  149. package/docs/zh-CN/start/getting-started.md +0 -5
  150. package/docs/zh-CN/start/hubs.md +0 -1
  151. package/docs/zh-CN/start/lore.md +0 -3
  152. package/docs/zh-CN/start/setup.md +0 -2
  153. package/docs/zh-CN/start/showcase.md +0 -2
  154. package/docs/zh-CN/start/symi.md +0 -4
  155. package/docs/zh-CN/start/wizard.md +0 -5
  156. package/docs/zh-CN/tools/agent-send.md +0 -1
  157. package/docs/zh-CN/tools/elevated.md +0 -2
  158. package/docs/zh-CN/tools/exec-approvals.md +0 -1
  159. package/docs/zh-CN/tools/index.md +0 -7
  160. package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +1 -2
  161. package/docs/zh-CN/tools/reactions.md +0 -1
  162. package/docs/zh-CN/tools/slash-commands.md +0 -9
  163. package/docs/zh-CN/tts.md +0 -2
  164. package/docs/zh-CN/web/control-ui.md +0 -1
  165. package/package.json +1 -1
  166. package/docs/channels/discord.md +0 -998
  167. package/docs/zh-CN/channels/discord.md +0 -468
@@ -53,17 +53,10 @@ Full troubleshooting: [/channels/whatsapp#troubleshooting-quick](/channels/whats
53
53
 
54
54
  Full troubleshooting: [/channels/telegram#troubleshooting](/channels/telegram#troubleshooting)
55
55
 
56
- ## Discord
57
-
58
- ### Discord failure signatures
59
-
60
56
  | Symptom | Fastest check | Fix |
61
57
  | ------------------------------- | ----------------------------------- | --------------------------------------------------------- |
62
58
  | Bot online but no guild replies | `symi channels status --probe` | Allow guild/channel and verify message content intent. |
63
59
  | Group messages ignored | Check logs for mention gating drops | Mention bot or set guild/channel `requireMention: false`. |
64
- | DM replies missing | `symi pairing list discord` | Approve DM pairing or adjust DM policy. |
65
-
66
- Full troubleshooting: [/channels/discord#troubleshooting](/channels/discord#troubleshooting)
67
60
 
68
61
  ## Slack
69
62
 
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  summary: "CLI reference for `symi channels` (accounts, status, login/logout, logs)"
3
3
  read_when:
4
- - You want to add/remove channel accounts (WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (plugin)/Signal/iMessage)
5
4
  - You want to check channel status or tail channel logs
6
5
  title: "channels"
7
6
  ---
@@ -21,7 +20,6 @@ Related docs:
21
20
  symi channels list
22
21
  symi channels status
23
22
  symi channels capabilities
24
- symi channels capabilities --channel discord --target channel:123
25
23
  symi channels resolve --channel slack "#general" "@jane"
26
24
  symi channels logs --channel all
27
25
  ```
@@ -54,14 +52,11 @@ Fetch provider capability hints (intents/scopes where available) plus static fea
54
52
 
55
53
  ```bash
56
54
  symi channels capabilities
57
- symi channels capabilities --channel discord --target channel:123
58
55
  ```
59
56
 
60
57
  Notes:
61
58
 
62
59
  - `--channel` is optional; omit it to list every channel (including extensions).
63
- - `--target` accepts `channel:<id>` or a raw numeric channel id and only applies to Discord.
64
- - Probes are provider-specific: Discord intents + optional channel permissions; Slack bot + user scopes; Telegram bot flags + webhook; Signal daemon version; MS Teams app token + Graph roles/scopes (annotated where known). Channels without probes report `Probe: unavailable`.
65
60
 
66
61
  ## Resolve names to IDs
67
62
 
@@ -69,7 +64,6 @@ Resolve channel/user names to IDs using the provider directory:
69
64
 
70
65
  ```bash
71
66
  symi channels resolve --channel slack "#general" "@jane"
72
- symi channels resolve --channel discord "My Server/#support" "@someone"
73
67
  symi channels resolve --channel matrix "Project Room"
74
68
  ```
75
69
 
@@ -23,7 +23,6 @@ Related:
23
23
  Notes:
24
24
 
25
25
  - Choosing where the Gateway runs always updates `gateway.mode`. You can select "Continue" without other sections if that is all you need.
26
- - Channel-oriented services (Slack/Discord/Matrix/Microsoft Teams) prompt for channel/room allowlists during setup. You can enter names or IDs; the wizard resolves names to IDs when possible.
27
26
 
28
27
  ## Examples
29
28
 
@@ -34,7 +34,6 @@ symi message send --channel slack --target user:U012ABCDEF --message "hello"
34
34
  - WhatsApp: `+15551234567` (DM), `1234567890-1234567890@g.us` (group)
35
35
  - Telegram: `@username` or numeric chat id; groups are numeric ids
36
36
  - Slack: `user:U…` and `channel:C…`
37
- - Discord: `user:<id>` and `channel:<id>`
38
37
  - Matrix (plugin): `user:@user:server`, `room:!roomId:server`, or `#alias:server`
39
38
  - Microsoft Teams (plugin): `user:<id>` and `conversation:<id>`
40
39
  - Zalo (plugin): user id (Bot API)
package/docs/cli/index.md CHANGED
@@ -372,8 +372,6 @@ Options:
372
372
 
373
373
  ### `channels`
374
374
 
375
- Manage chat channel accounts (WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (plugin)/Signal/iMessage/MS Teams).
376
-
377
375
  Subcommands:
378
376
 
379
377
  - `channels list`: show configured channels and auth profiles.
@@ -387,7 +385,6 @@ Subcommands:
387
385
 
388
386
  Common options:
389
387
 
390
- - `--channel <name>`: `whatsapp|telegram|discord|googlechat|slack|mattermost|signal|imessage|msteams`
391
388
  - `--account <id>`: channel account id (default `default`)
392
389
  - `--name <label>`: display name for the account
393
390
 
@@ -419,8 +416,6 @@ Examples:
419
416
 
420
417
  ```bash
421
418
  symi channels add --channel telegram --account alerts --name "Alerts Bot" --token $TELEGRAM_BOT_TOKEN
422
- symi channels add --channel discord --account work --name "Work Bot" --token $DISCORD_BOT_TOKEN
423
- symi channels remove --channel discord --account work --delete
424
419
  symi channels status --probe
425
420
  symi status --deep
426
421
  ```
@@ -492,7 +487,6 @@ Subcommands:
492
487
  Examples:
493
488
 
494
489
  - `symi message send --target +15555550123 --message "Hi"`
495
- - `symi message poll --channel discord --target channel:123 --poll-question "Snack?" --poll-option Pizza --poll-option Sushi`
496
490
 
497
491
  ### `agent`
498
492
 
@@ -508,7 +502,6 @@ Options:
508
502
  - `--session-id <id>`
509
503
  - `--thinking <off|minimal|low|medium|high|xhigh>` (GPT-5.2 + Codex models only)
510
504
  - `--verbose <on|full|off>`
511
- - `--channel <whatsapp|telegram|discord|slack|mattermost|signal|imessage|msteams>`
512
505
  - `--local`
513
506
  - `--deliver`
514
507
  - `--json`
@@ -9,7 +9,6 @@ title: "message"
9
9
  # `symi message`
10
10
 
11
11
  Single outbound command for sending messages and channel actions
12
- (Discord/Google Chat/Slack/Mattermost (plugin)/Telegram/WhatsApp/Signal/iMessage/MS Teams).
13
12
 
14
13
  ## Usage
15
14
 
@@ -21,13 +20,11 @@ Channel selection:
21
20
 
22
21
  - `--channel` required if more than one channel is configured.
23
22
  - If exactly one channel is configured, it becomes the default.
24
- - Values: `whatsapp|telegram|discord|googlechat|slack|mattermost|signal|imessage|msteams` (Mattermost requires plugin)
25
23
 
26
24
  Target formats (`--target`):
27
25
 
28
26
  - WhatsApp: E.164 or group JID
29
27
  - Telegram: chat id or `@username`
30
- - Discord: `channel:<id>` or `user:<id>` (or `<@id>` mention; raw numeric ids are treated as channels)
31
28
  - Google Chat: `spaces/<spaceId>` or `users/<userId>`
32
29
  - Slack: `channel:<id>` or `user:<id>` (raw channel id is accepted)
33
30
  - Mattermost (plugin): `channel:<id>`, `user:<id>`, or `@username` (bare ids are treated as channels)
@@ -37,7 +34,6 @@ Target formats (`--target`):
37
34
 
38
35
  Name lookup:
39
36
 
40
- - For supported providers (Discord/Slack/etc), channel names like `Help` or `#help` are resolved via the directory cache.
41
37
  - On cache miss, Symi will attempt a live directory lookup when the provider supports it.
42
38
 
43
39
  ## Common flags
@@ -55,7 +51,6 @@ Name lookup:
55
51
  ### Core
56
52
 
57
53
  - `send`
58
- - Channels: WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (plugin)/Signal/iMessage/MS Teams
59
54
  - Required: `--target`, plus `--message` or `--media`
60
55
  - Optional: `--media`, `--reply-to`, `--thread-id`, `--gif-playback`
61
56
  - Telegram only: `--buttons` (requires `channels.telegram.capabilities.inlineButtons` to allow it)
@@ -64,14 +59,11 @@ Name lookup:
64
59
  - WhatsApp only: `--gif-playback`
65
60
 
66
61
  - `poll`
67
- - Channels: WhatsApp/Telegram/Discord/Matrix/MS Teams
68
62
  - Required: `--target`, `--poll-question`, `--poll-option` (repeat)
69
63
  - Optional: `--poll-multi`
70
- - Discord only: `--poll-duration-hours`, `--silent`, `--message`
71
64
  - Telegram only: `--poll-duration-seconds` (5-600), `--silent`, `--poll-anonymous` / `--poll-public`, `--thread-id`
72
65
 
73
66
  - `react`
74
- - Channels: Discord/Google Chat/Slack/Telegram/WhatsApp/Signal
75
67
  - Required: `--message-id`, `--target`
76
68
  - Optional: `--emoji`, `--remove`, `--participant`, `--from-me`, `--target-author`, `--target-author-uuid`
77
69
  - Note: `--remove` requires `--emoji` (omit `--emoji` to clear own reactions where supported; see /tools/reactions)
@@ -79,96 +71,69 @@ Name lookup:
79
71
  - Signal group reactions: `--target-author` or `--target-author-uuid` required
80
72
 
81
73
  - `reactions`
82
- - Channels: Discord/Google Chat/Slack
83
74
  - Required: `--message-id`, `--target`
84
75
  - Optional: `--limit`
85
76
 
86
77
  - `read`
87
- - Channels: Discord/Slack
88
78
  - Required: `--target`
89
79
  - Optional: `--limit`, `--before`, `--after`
90
- - Discord only: `--around`
91
80
 
92
81
  - `edit`
93
- - Channels: Discord/Slack
94
82
  - Required: `--message-id`, `--message`, `--target`
95
83
 
96
84
  - `delete`
97
- - Channels: Discord/Slack/Telegram
98
85
  - Required: `--message-id`, `--target`
99
86
 
100
87
  - `pin` / `unpin`
101
- - Channels: Discord/Slack
102
88
  - Required: `--message-id`, `--target`
103
89
 
104
90
  - `pins` (list)
105
- - Channels: Discord/Slack
106
91
  - Required: `--target`
107
92
 
108
93
  - `permissions`
109
- - Channels: Discord
110
94
  - Required: `--target`
111
95
 
112
96
  - `search`
113
- - Channels: Discord
114
97
  - Required: `--guild-id`, `--query`
115
98
  - Optional: `--channel-id`, `--channel-ids` (repeat), `--author-id`, `--author-ids` (repeat), `--limit`
116
99
 
117
100
  ### Threads
118
101
 
119
102
  - `thread create`
120
- - Channels: Discord
121
103
  - Required: `--thread-name`, `--target` (channel id)
122
104
  - Optional: `--message-id`, `--message`, `--auto-archive-min`
123
105
 
124
106
  - `thread list`
125
- - Channels: Discord
126
107
  - Required: `--guild-id`
127
108
  - Optional: `--channel-id`, `--include-archived`, `--before`, `--limit`
128
109
 
129
110
  - `thread reply`
130
- - Channels: Discord
131
111
  - Required: `--target` (thread id), `--message`
132
112
  - Optional: `--media`, `--reply-to`
133
113
 
134
114
  ### Emojis
135
115
 
136
116
  - `emoji list`
137
- - Discord: `--guild-id`
138
117
  - Slack: no extra flags
139
118
 
140
119
  - `emoji upload`
141
- - Channels: Discord
142
120
  - Required: `--guild-id`, `--emoji-name`, `--media`
143
121
  - Optional: `--role-ids` (repeat)
144
122
 
145
123
  ### Stickers
146
124
 
147
125
  - `sticker send`
148
- - Channels: Discord
149
126
  - Required: `--target`, `--sticker-id` (repeat)
150
127
  - Optional: `--message`
151
128
 
152
129
  - `sticker upload`
153
- - Channels: Discord
154
130
  - Required: `--guild-id`, `--sticker-name`, `--sticker-desc`, `--sticker-tags`, `--media`
155
131
 
156
132
  ### Roles / Channels / Members / Voice
157
133
 
158
- - `role info` (Discord): `--guild-id`
159
- - `role add` / `role remove` (Discord): `--guild-id`, `--user-id`, `--role-id`
160
- - `channel info` (Discord): `--target`
161
- - `channel list` (Discord): `--guild-id`
162
- - `member info` (Discord/Slack): `--user-id` (+ `--guild-id` for Discord)
163
- - `voice status` (Discord): `--guild-id`, `--user-id`
164
-
165
134
  ### Events
166
135
 
167
- - `event list` (Discord): `--guild-id`
168
- - `event create` (Discord): `--guild-id`, `--event-name`, `--start-time`
169
- - Optional: `--end-time`, `--desc`, `--channel-id`, `--location`, `--event-type`
170
-
171
- ### Moderation (Discord)
136
+ - Optional: `--end-time`, `--desc`, `--channel-id`, `--location`, `--event-type`
172
137
 
173
138
  - `timeout`: `--guild-id`, `--user-id` (optional `--duration-min` or `--until`; omit both to clear timeout)
174
139
  - `kick`: `--guild-id`, `--user-id` (+ `--reason`)
@@ -184,27 +149,16 @@ Name lookup:
184
149
 
185
150
  ## Examples
186
151
 
187
- Send a Discord reply:
188
-
189
152
  ```
190
- symi message send --channel discord \
191
153
  --target channel:123 --message "hi" --reply-to 456
192
154
  ```
193
155
 
194
- Send a Discord message with components:
195
-
196
156
  ```
197
- symi message send --channel discord \
198
157
  --target channel:123 --message "Choose:" \
199
158
  --components '{"text":"Choose a path","blocks":[{"type":"actions","buttons":[{"label":"Approve","style":"success"},{"label":"Decline","style":"danger"}]}]}'
200
159
  ```
201
160
 
202
- See [Discord components](/channels/discord#interactive-components) for the full schema.
203
-
204
- Create a Discord poll:
205
-
206
161
  ```
207
- symi message poll --channel discord \
208
162
  --target channel:123 \
209
163
  --poll-question "Snack?" \
210
164
  --poll-option Pizza --poll-option Sushi \
@@ -19,7 +19,6 @@ symi status --usage
19
19
 
20
20
  Notes:
21
21
 
22
- - `--deep` runs live probes (WhatsApp Web + Telegram + Discord + Google Chat + Slack + Signal).
23
22
  - Output includes per-agent session stores when multiple agents are configured.
24
23
  - Overview includes Gateway + node host service install/runtime status when available.
25
24
  - Overview includes update channel + git SHA (for source checkouts).
@@ -12,7 +12,6 @@ Last updated: 2026-01-22
12
12
  ## Overview
13
13
 
14
14
  - A single long‑lived **Gateway** owns all messaging surfaces (WhatsApp via
15
- Baileys, Telegram via grammY, Slack, Discord, Signal, iMessage, WebChat).
16
15
  - Control-plane clients (macOS app, CLI, web UI, automations) connect to the
17
16
  Gateway over **WebSocket** on the configured bind host (default
18
17
  `127.0.0.1:18789`).
@@ -9,7 +9,6 @@ title: "Features"
9
9
 
10
10
  <Columns>
11
11
  <Card title="Channels" icon="message-square">
12
- WhatsApp, Telegram, Discord, and iMessage with a single Gateway.
13
12
  </Card>
14
13
  <Card title="Plugins" icon="plug">
15
14
  Add Mattermost and more with extensions.
@@ -32,7 +31,6 @@ title: "Features"
32
31
 
33
32
  - WhatsApp integration via WhatsApp Web (Baileys)
34
33
  - Telegram bot support (grammY)
35
- - Discord bot support (channels.discord.js)
36
34
  - Mattermost bot support (plugin)
37
35
  - iMessage integration via local imsg CLI (macOS)
38
36
  - Agent bridge for Pi in RPC mode with tool streaming
@@ -57,7 +57,6 @@ IR (schematic):
57
57
  ## Where it is used
58
58
 
59
59
  - Slack, Telegram, and Signal outbound adapters render from the IR.
60
- - Other channels (WhatsApp, iMessage, MS Teams, Discord) still use plain text or
61
60
  their own formatting rules, with Markdown table conversion applied before
62
61
  chunking when enabled.
63
62
 
@@ -74,13 +73,12 @@ Config keys:
74
73
 
75
74
  ```yaml
76
75
  channels:
77
- discord:
78
- markdown:
79
- tables: code
80
- accounts:
81
- work:
82
- markdown:
83
- tables: off
76
+ markdown:
77
+ tables: code
78
+ accounts:
79
+ work:
80
+ markdown:
81
+ tables: off
84
82
  ```
85
83
 
86
84
  ## Chunking rules
@@ -203,9 +203,7 @@ out to QMD for retrieval. Key points:
203
203
  Default is DM-only (`deny` all, `allow` direct chats); loosen it to surface QMD
204
204
  hits in groups/channels.
205
205
  - `match.keyPrefix` matches the **normalized** session key (lowercased, with any
206
- leading `agent:<id>:` stripped). Example: `discord:channel:`.
207
206
  - `match.rawKeyPrefix` matches the **raw** session key (lowercased), including
208
- `agent:<id>:`. Example: `agent:main:discord:`.
209
207
  - Legacy: `match.keyPrefix: "agent:..."` is still treated as a raw-key prefix,
210
208
  but prefer `rawKeyPrefix` for clarity.
211
209
  - When `scope` denies a search, Symi logs a warning with the derived
@@ -238,9 +236,7 @@ memory: {
238
236
  rules: [
239
237
  { action: "allow", match: { chatType: "direct" } },
240
238
  // Normalized session-key prefix (strips `agent:<id>:`).
241
- { action: "deny", match: { keyPrefix: "discord:channel:" } },
242
239
  // Raw session-key prefix (includes `agent:<id>:`).
243
- { action: "deny", match: { rawKeyPrefix: "agent:main:discord:" } },
244
240
  ]
245
241
  },
246
242
  paths: [
@@ -52,7 +52,6 @@ Config (global default + per-channel overrides):
52
52
  byChannel: {
53
53
  whatsapp: 5000,
54
54
  slack: 1500,
55
- discord: 1500,
56
55
  },
57
56
  },
58
57
  },
@@ -104,7 +104,6 @@ You can switch models for the current session without restarting:
104
104
  Notes:
105
105
 
106
106
  - `/model` (and `/model list`) is a compact, numbered picker (model family + available providers).
107
- - On Discord, `/model` and `/models` open an interactive picker with provider and model dropdowns plus a Submit step.
108
107
  - `/model <#>` selects from that picker.
109
108
  - `/model status` is the detailed view (auth candidates and, when configured, provider endpoint `baseUrl` + `api` mode).
110
109
  - Model refs are parsed by splitting on the **first** `/`. Use `provider/model` when typing `/model <ref>`.
@@ -90,7 +90,6 @@ Each agent gets its own workspace with `SYMICORE.md`, `AGENTS.md`, and optional
90
90
 
91
91
  Create one account per agent on your preferred channels:
92
92
 
93
- - Discord: one bot per agent, enable Message Content Intent, copy each token.
94
93
  - Telegram: one bot per agent via BotFather, copy each token.
95
94
  - WhatsApp: link each phone number per account.
96
95
 
@@ -98,8 +97,6 @@ Create one account per agent on your preferred channels:
98
97
  symi channels login --channel whatsapp --account work
99
98
  ```
100
99
 
101
- See channel guides: [Discord](/channels/discord), [Telegram](/channels/telegram), [WhatsApp](/channels/whatsapp).
102
-
103
100
  </Step>
104
101
 
105
102
  <Step title="Add agents, accounts, and bindings">
@@ -175,12 +172,10 @@ Bindings are **deterministic** and **most-specific wins**:
175
172
 
176
173
  1. `peer` match (exact DM/group/channel id)
177
174
  2. `parentPeer` match (thread inheritance)
178
- 3. `guildId + roles` (Discord role routing)
179
- 4. `guildId` (Discord)
180
- 5. `teamId` (Slack)
181
- 6. `accountId` match for a channel
182
- 7. channel-level match (`accountId: "*"`)
183
- 8. fallback to default agent (`agents.list[].default`, else first list entry, default: `main`)
175
+ 3. `teamId` (Slack)
176
+ 4. `accountId` match for a channel
177
+ 5. channel-level match (`accountId: "*"`)
178
+ 6. fallback to default agent (`agents.list[].default`, else first list entry, default: `main`)
184
179
 
185
180
  If multiple bindings match in the same tier, the first one in config order wins.
186
181
  If a binding sets multiple match fields (for example `peer` + `guildId`), all specified fields are required (`AND` semantics).
@@ -200,10 +195,6 @@ multiple phone numbers without mixing sessions.
200
195
 
201
196
  ## Platform examples
202
197
 
203
- ### Discord bots per agent
204
-
205
- Each Discord bot account maps to a unique `accountId`. Bind each account to an agent and keep allowlists per bot.
206
-
207
198
  ```json5
208
199
  {
209
200
  agents: {
@@ -213,15 +204,11 @@ Each Discord bot account maps to a unique `accountId`. Bind each account to an a
213
204
  ],
214
205
  },
215
206
  bindings: [
216
- { agentId: "main", match: { channel: "discord", accountId: "default" } },
217
- { agentId: "coding", match: { channel: "discord", accountId: "coding" } },
218
207
  ],
219
208
  channels: {
220
- discord: {
221
209
  groupPolicy: "allowlist",
222
210
  accounts: {
223
211
  default: {
224
- token: "DISCORD_BOT_TOKEN_MAIN",
225
212
  guilds: {
226
213
  "123456789012345678": {
227
214
  channels: {
@@ -231,7 +218,6 @@ Each Discord bot account maps to a unique `accountId`. Bind each account to an a
231
218
  },
232
219
  },
233
220
  coding: {
234
- token: "DISCORD_BOT_TOKEN_CODING",
235
221
  guilds: {
236
222
  "123456789012345678": {
237
223
  channels: {
@@ -249,7 +235,6 @@ Each Discord bot account maps to a unique `accountId`. Bind each account to an a
249
235
  Notes:
250
236
 
251
237
  - Invite each bot to the guild and enable Message Content Intent.
252
- - Tokens live in `channels.discord.accounts.<id>.token` (default account can use `DISCORD_BOT_TOKEN`).
253
238
 
254
239
  ### Telegram bots per agent
255
240
 
@@ -36,7 +36,6 @@ Inbound messages can steer the current run, wait for a followup turn, or do both
36
36
  Steer-backlog means you can get a followup response after the steered run, so
37
37
  streaming surfaces can look like duplicates. Prefer `collect`/`steer` if you want
38
38
  one response per inbound message.
39
- Send `/queue collect` as a standalone command (per-session) or set `messages.queue.byChannel.discord: "collect"`.
40
39
 
41
40
  Defaults (when unset in config):
42
41
 
@@ -52,7 +51,6 @@ Configure globally or per channel via `messages.queue`:
52
51
  debounceMs: 1000,
53
52
  cap: 20,
54
53
  drop: "summarize",
55
- byChannel: { discord: "collect" },
56
54
  },
57
55
  },
58
56
  }
@@ -77,7 +75,6 @@ Defaults: `debounceMs: 1000`, `cap: 20`, `drop: summarize`.
77
75
 
78
76
  ## Scope and guarantees
79
77
 
80
- - Applies to auto-reply agent runs across all inbound channels that use the gateway reply pipeline (WhatsApp web, Telegram, Slack, Discord, Signal, iMessage, webchat, etc.).
81
78
  - Default lane (`main`) is process-wide for inbound + main heartbeats; set `agents.defaults.maxConcurrent` to allow multiple sessions in parallel.
82
79
  - Additional lanes may exist (e.g. `cron`, `subagent`) so background jobs can run in parallel without blocking inbound replies.
83
80
  - Per-session lanes guarantee that only one agent run touches a given session at a time.
@@ -21,14 +21,10 @@ title: "Retry Policy"
21
21
  - Jitter: 0.1 (10 percent)
22
22
  - Provider defaults:
23
23
  - Telegram min delay: 400 ms
24
- - Discord min delay: 500 ms
25
24
 
26
25
  ## Behavior
27
26
 
28
- ### Discord
29
-
30
27
  - Retries only on rate-limit errors (HTTP 429).
31
- - Uses Discord `retry_after` when available, otherwise exponential backoff.
32
28
 
33
29
  ### Telegram
34
30
 
@@ -51,7 +47,6 @@ Set retry policy per provider in `~/.symi/symi.json`:
51
47
  jitter: 0.1,
52
48
  },
53
49
  },
54
- discord: {
55
50
  retry: {
56
51
  attempts: 3,
57
52
  minDelayMs: 500,
@@ -47,7 +47,6 @@ Row shape (JSON):
47
47
 
48
48
  - `key`: session key (string)
49
49
  - `kind`: `main | group | cron | hook | node | other`
50
- - `channel`: `whatsapp | telegram | discord | signal | imessage | webchat | internal | unknown`
51
50
  - `displayName` (group display label if available)
52
51
  - `updatedAt` (ms)
53
52
  - `sessionId`
@@ -121,7 +120,6 @@ Policy-based blocking by channel/chat type (not per session id).
121
120
  "sendPolicy": {
122
121
  "rules": [
123
122
  {
124
- "match": { "channel": "discord", "chatType": "group" },
125
123
  "action": "deny"
126
124
  }
127
125
  ],
@@ -106,7 +106,6 @@ the workspace is writable. See [Memory](/concepts/memory) and
106
106
  - Daily reset: defaults to **4:00 AM local time on the gateway host**. A session is stale once its last update is earlier than the most recent daily reset time.
107
107
  - Idle reset (optional): `idleMinutes` adds a sliding idle window. When both daily and idle resets are configured, **whichever expires first** forces a new session.
108
108
  - Legacy idle-only: if you set `session.idleMinutes` without any `session.reset`/`resetByType` config, Symi stays in idle-only mode for backward compatibility.
109
- - Per-type overrides (optional): `resetByType` lets you override the policy for `direct`, `group`, and `thread` sessions (thread = Slack/Discord threads, Telegram topics, Matrix threads when provided by the connector).
110
109
  - Per-channel overrides (optional): `resetByChannel` overrides the reset policy for a channel (applies to all session types for that channel and takes precedence over `reset`/`resetByType`).
111
110
  - Reset triggers: exact `/new` or `/reset` (plus any extras in `resetTriggers`) start a fresh session id and pass the remainder of the message through. `/new <model>` accepts a model alias, `provider/model`, or provider name (fuzzy match) to set the new session model. If `/new` or `/reset` is sent alone, Symi runs a short “hello” greeting turn to confirm the reset.
112
111
  - Manual reset: delete specific keys from the store or remove the JSONL transcript; the next message recreates them.
@@ -121,10 +120,8 @@ Block delivery for specific session types without listing individual ids.
121
120
  session: {
122
121
  sendPolicy: {
123
122
  rules: [
124
- { action: "deny", match: { channel: "discord", chatType: "group" } },
125
123
  { action: "deny", match: { keyPrefix: "cron:" } },
126
124
  // Match the raw session key (including the `agent:<id>:` prefix).
127
- { action: "deny", match: { rawKeyPrefix: "agent:main:discord:" } },
128
125
  ],
129
126
  default: "allow",
130
127
  },
@@ -147,9 +144,7 @@ Runtime override (owner only):
147
144
  session: {
148
145
  scope: "per-sender", // keep group keys separate
149
146
  dmScope: "main", // DM continuity (set per-channel-peer/per-account-channel-peer for shared inboxes)
150
- identityLinks: {
151
- alice: ["telegram:123456789", "discord:987654321012345678"],
152
- },
147
+ identityLinks: {},
153
148
  reset: {
154
149
  // Defaults: mode=daily, atHour=4 (gateway host local time).
155
150
  // If you also set idleMinutes, whichever expires first wins.
@@ -162,9 +157,7 @@ Runtime override (owner only):
162
157
  direct: { mode: "idle", idleMinutes: 240 },
163
158
  group: { mode: "idle", idleMinutes: 120 },
164
159
  },
165
- resetByChannel: {
166
- discord: { mode: "idle", idleMinutes: 10080 },
167
- },
160
+ resetByChannel: {},
168
161
  resetTriggers: ["/new", "/reset"],
169
162
  store: "~/.symi/agents/{agentId}/sessions/sessions.json",
170
163
  mainKey: "main",
@@ -45,7 +45,6 @@ Legend:
45
45
  - `agents.defaults.blockStreamingCoalesce`: `{ minChars?, maxChars?, idleMs? }` (merge streamed blocks before send).
46
46
  - Channel hard cap: `*.textChunkLimit` (e.g., `channels.whatsapp.textChunkLimit`).
47
47
  - Channel chunk mode: `*.chunkMode` (`length` default, `newline` splits on blank lines (paragraph boundaries) before length chunking).
48
- - Discord soft cap: `channels.discord.maxLinesPerMessage` (default 17) splits tall replies to avoid UI clipping.
49
48
 
50
49
  **Boundary semantics:**
51
50
 
@@ -78,7 +77,6 @@ progressive output.
78
77
  - Joiner is derived from `blockStreamingChunk.breakPreference`
79
78
  (`paragraph` → `\n\n`, `newline` → `\n`, `sentence` → space).
80
79
  - Channel overrides are available via `*.blockStreamingCoalesce` (including per-account configs).
81
- - Default coalesce `minChars` is bumped to 1500 for Signal/Slack/Discord unless overridden.
82
80
 
83
81
  ## Human-like pacing between blocks
84
82
 
@@ -123,7 +123,6 @@ This keeps the base prompt small while still enabling targeted skill usage.
123
123
 
124
124
  When available, the system prompt includes a **Documentation** section that points to the
125
125
  local Symi docs directory (either `docs/` in the repo workspace or the bundled npm
126
- package docs) and also notes the public mirror, source repo, community Discord, and
127
126
  SymiHub ([https://symihub.com](https://symihub.com)) for skills discovery. The prompt instructs the model to consult local docs first
128
127
  for Symi behavior, commands, configuration, or architecture, and to run
129
128
  `symi status` itself when possible (asking the user only when it lacks access).
@@ -62,7 +62,6 @@ You can override this with:
62
62
 
63
63
  ## Tool payloads (raw provider data + normalized fields)
64
64
 
65
- Tool calls (`channels.discord.readMessages`, `channels.slack.readMessages`, etc.) return **raw provider timestamps**.
66
65
  We also attach normalized fields for consistency:
67
66
 
68
67
  - `timestampMs` (UTC epoch milliseconds)
package/docs/date-time.md CHANGED
@@ -116,7 +116,6 @@ Channel tools return **provider-native timestamps** and add normalized fields fo
116
116
  Raw provider fields are preserved so nothing is lost.
117
117
 
118
118
  - Slack: epoch-like strings from the API
119
- - Discord: UTC ISO timestamps
120
119
  - Telegram/WhatsApp: provider-specific numeric/ISO timestamps
121
120
 
122
121
  If you need local time, convert it downstream using the known timezone.
package/docs/docs.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "$schema": "https://mintlify.com/docs.json",
3
3
  "name": "Symi",
4
- "description": "Self-hosted gateway that connects WhatsApp, Telegram, Discord, iMessage, and more to AI coding agents. Run a single Gateway process on your own machine and message your AI assistant from anywhere.",
5
4
  "theme": "mint",
6
5
  "icons": {
7
6
  "library": "lucide"
@@ -123,10 +122,7 @@
123
122
  "source": "/message",
124
123
  "destination": "/cli/message"
125
124
  },
126
- {
127
- "source": "/providers/discord",
128
- "destination": "/channels/discord"
129
- },
125
+ {},
130
126
  {
131
127
  "source": "/providers/googlechat",
132
128
  "destination": "/channels/googlechat"
@@ -307,10 +303,7 @@
307
303
  "source": "/device-models",
308
304
  "destination": "/reference/device-models"
309
305
  },
310
- {
311
- "source": "/discord",
312
- "destination": "/channels/discord"
313
- },
306
+ {},
314
307
  {
315
308
  "source": "/discovery",
316
309
  "destination": "/gateway/discovery"
@@ -883,7 +876,6 @@
883
876
  "pages": [
884
877
  "channels/whatsapp",
885
878
  "channels/telegram",
886
- "channels/discord",
887
879
  "channels/irc",
888
880
  "channels/slack",
889
881
  "channels/feishu",
@@ -1397,7 +1389,6 @@
1397
1389
  "pages": [
1398
1390
  "zh-CN/channels/whatsapp",
1399
1391
  "zh-CN/channels/telegram",
1400
- "zh-CN/channels/discord",
1401
1392
  "zh-CN/channels/slack",
1402
1393
  "zh-CN/channels/feishu",
1403
1394
  "zh-CN/channels/googlechat",