@symerian/symi 3.0.16 → 3.0.18

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 (310) hide show
  1. package/dist/{audio-preflight-CBDFctZN.js → audio-preflight-BfmZbg4Y.js} +4 -4
  2. package/dist/{audio-preflight-gsZSpG-6.js → audio-preflight-DcuC-liM.js} +4 -4
  3. package/dist/build-info.json +3 -3
  4. package/dist/bundled/boot-md/handler.js +8 -8
  5. package/dist/bundled/session-memory/handler.js +7 -7
  6. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  7. package/dist/{chrome-nPMY1XTJ.js → chrome-Bo7cbvFK.js} +5 -5
  8. package/dist/{chrome-BjVab8gM.js → chrome-DYp18Q0t.js} +5 -5
  9. package/dist/{deliver-D-QFqm31.js → deliver-ChSIbiMM.js} +1 -1
  10. package/dist/{deliver-B4-bcot9.js → deliver-DEgRQM4J.js} +1 -1
  11. package/dist/extensionAPI.js +7 -7
  12. package/dist/{image-CDwtQjmt.js → image-Bx-hvoNJ.js} +1 -1
  13. package/dist/{image-CcS-vzTA.js → image-CQl_mjWk.js} +1 -1
  14. package/dist/llm-slug-generator.js +7 -7
  15. package/dist/{manager-BnEdHzmO.js → manager-D_pn0urG.js} +1 -1
  16. package/dist/{manager-09r0qPze.js → manager-YQxK2t0C.js} +1 -1
  17. package/dist/{pi-embedded-CWsY69-4.js → pi-embedded-CLw_ZzEZ.js} +16 -16
  18. package/dist/{pi-embedded-helpers-BBMy-lqr.js → pi-embedded-helpers-B5I53aw6.js} +4 -4
  19. package/dist/{pi-embedded-helpers-ChEYbgVj.js → pi-embedded-helpers-sUAEIC9X.js} +4 -4
  20. package/dist/plugin-sdk/{accounts-BfyWsC_i.js → accounts-CWFytwbR.js} +3 -3
  21. package/dist/plugin-sdk/{active-listener-DcJW7xAT.js → active-listener-BkZ4jHrL.js} +2 -2
  22. package/dist/plugin-sdk/{agent-scope-ChbGV6of.js → agent-scope-C9gfY_Gk.js} +2 -2
  23. package/dist/plugin-sdk/{audio-preflight-D3GtNLqW.js → audio-preflight-HKbdzXLZ.js} +21 -21
  24. package/dist/plugin-sdk/{bindings-CN2Qmefj.js → bindings-BaKIqPPy.js} +2 -2
  25. package/dist/plugin-sdk/{channel-web-DTyqujjA.js → channel-web-D5nWiTH1.js} +18 -18
  26. package/dist/plugin-sdk/{chrome-BKzAKr3K.js → chrome-klTSnz-9.js} +3 -3
  27. package/dist/plugin-sdk/{chunk-DhDkBujV.js → chunk-BbrYSny_.js} +1 -1
  28. package/dist/plugin-sdk/{command-format-CVrYFyZS.js → command-format-BN6tyZt6.js} +1 -1
  29. package/dist/plugin-sdk/{commands-registry-17yfZkHZ.js → commands-registry-CTzKKtY6.js} +4 -4
  30. package/dist/plugin-sdk/{config-7wk65zKC.js → config-Crv2qEdJ.js} +9 -9
  31. package/dist/plugin-sdk/{consolidate-exbAW0ml.js → consolidate-DT1QH65Q.js} +2 -2
  32. package/dist/plugin-sdk/{deliver-TxAcw7J5.js → deliver-7rOvAlrc.js} +12 -12
  33. package/dist/plugin-sdk/{diagnostic-Debx4frd.js → diagnostic-0nsxhWp7.js} +1 -1
  34. package/dist/plugin-sdk/{fs-safe-wBYbAkJF.js → fs-safe-DfWYBeWF.js} +1 -1
  35. package/dist/plugin-sdk/{gemini-auth-7U2pm2Ky.js → gemini-auth-C0N0_u49.js} +1 -1
  36. package/dist/plugin-sdk/{image-BtDVmYA5.js → image-WOSl2apK.js} +4 -4
  37. package/dist/plugin-sdk/index.js +43 -43
  38. package/dist/plugin-sdk/{ir-CKMvRrGW.js → ir-9J84MTls.js} +4 -4
  39. package/dist/plugin-sdk/{local-roots-c_gaPs01.js → local-roots-OLRDbvyY.js} +3 -3
  40. package/dist/plugin-sdk/{login-DUym1Jy0.js → login-C7x4q0i2.js} +7 -7
  41. package/dist/plugin-sdk/{login-qr-B-WBdvrX.js → login-qr-Dv5_MoAW.js} +9 -9
  42. package/dist/plugin-sdk/{manager-B71SCzos.js → manager-C83tK17x.js} +8 -8
  43. package/dist/plugin-sdk/{manifest-registry-Dnic6Chh.js → manifest-registry-CJMV-PI7.js} +1 -1
  44. package/dist/plugin-sdk/{markdown-tables-Dur7OTlM.js → markdown-tables-DXNKz5y_.js} +1 -1
  45. package/dist/plugin-sdk/{message-channel-BrAhJJV_.js → message-channel-aGy1HbQQ.js} +1 -1
  46. package/dist/plugin-sdk/{model-selection-B9qaVQSJ.js → model-selection-C-3-tpe7.js} +4 -4
  47. package/dist/plugin-sdk/{outbound-DB1wDM8b.js → outbound-DquCeSy5.js} +6 -6
  48. package/dist/plugin-sdk/{pi-auth-json-ZO118hoy.js → pi-auth-json-D9PDCXGn.js} +1 -1
  49. package/dist/plugin-sdk/{pi-embedded-helpers-s_U0Un7j.js → pi-embedded-helpers-D3ygfH7l.js} +16 -16
  50. package/dist/plugin-sdk/{plugins-DF81oSaI.js → plugins-DOwnSg9D.js} +4 -4
  51. package/dist/plugin-sdk/{pw-ai-CTwP02uv.js → pw-ai-rlengLjb.js} +8 -8
  52. package/dist/plugin-sdk/{qmd-manager-CBaSGant.js → qmd-manager-BzxFjRFa.js} +4 -4
  53. package/dist/plugin-sdk/{registry-CZVURNhF.js → registry-5iFfixlB.js} +2 -2
  54. package/dist/plugin-sdk/{replies-hwRbkU3z.js → replies-BXOzO_H5.js} +7 -7
  55. package/dist/plugin-sdk/{reply-prefix-CaXmzZlx.js → reply-prefix-INAKTqCU.js} +1 -1
  56. package/dist/plugin-sdk/{resolve-outbound-target-fxVSOBmk.js → resolve-outbound-target-DvbxHtqp.js} +2 -2
  57. package/dist/plugin-sdk/{resolve-route-ClCyiOeu.js → resolve-route-URXlY3AK.js} +3 -3
  58. package/dist/plugin-sdk/{runner-Cq5jvwQ7.js → runner-Bv0_DWoH.js} +9 -9
  59. package/dist/plugin-sdk/{session-B_TkB65Y.js → session-C3r8l7ou.js} +4 -4
  60. package/dist/plugin-sdk/{skill-commands-0LF9HTGr.js → skill-commands-KjLUGIdZ.js} +5 -5
  61. package/dist/plugin-sdk/{skills-BIT_O7J0.js → skills-BrsD4L5c.js} +7 -7
  62. package/dist/plugin-sdk/{sqlite-Bx5Y5U5X.js → sqlite-CjW7ME1H.js} +1 -1
  63. package/dist/plugin-sdk/{subsystem-CXqYeDy-.js → subsystem-DcOg1xJr.js} +1 -1
  64. package/dist/plugin-sdk/{synthesis-DtsYAj1E.js → synthesis-CY7YAasV.js} +38 -38
  65. package/dist/plugin-sdk/{target-errors-B8mokOeH.js → target-errors-BVWJGWFq.js} +2 -2
  66. package/dist/plugin-sdk/{thinking-Ca0DhqzO.js → thinking-CtsTDPOi.js} +3 -3
  67. package/dist/plugin-sdk/{tokens-CvlONEqh.js → tokens-8lqOTZCB.js} +1 -1
  68. package/dist/plugin-sdk/{tool-images-DpBaWEHT.js → tool-images-Cl_rGIUZ.js} +2 -2
  69. package/dist/plugin-sdk/{tool-loop-detection-BOvUFa0f.js → tool-loop-detection-Da4WUT_P.js} +2 -2
  70. package/dist/plugin-sdk/{unified-runner-CnM7lyNd.js → unified-runner-nwMnsZyj.js} +60 -60
  71. package/dist/plugin-sdk/web-BlweOZDp.js +54 -0
  72. package/dist/plugin-sdk/{whatsapp-actions-CvnfsFJm.js → whatsapp-actions-DpfaGYs7.js} +21 -21
  73. package/dist/{pw-ai-BW8_KeDf.js → pw-ai-BqxJG-Wh.js} +1 -1
  74. package/dist/{pw-ai-j9IE1K0-.js → pw-ai-C-NSGye0.js} +1 -1
  75. package/dist/{runner-8ALr2UII.js → runner-COGFTeDw.js} +1 -1
  76. package/dist/{runner-C4-9kFdR.js → runner-DhCi2lT1.js} +1 -1
  77. package/dist/{synthesis-Cph3LhA1.js → synthesis-CXZu24Vx.js} +7 -7
  78. package/dist/{synthesis-Cus0A2dL.js → synthesis-DrPxcMlQ.js} +7 -7
  79. package/dist/{unified-runner-CX80YMTk.js → unified-runner-iByUazvW.js} +16 -16
  80. package/dist/{web-ChozvJ7I.js → web-EsMQBIYf.js} +7 -7
  81. package/dist/{web-DFlsbXmQ.js → web-PPg5y6xI.js} +7 -7
  82. package/docs/.i18n/zh-CN.tm.jsonl +0 -20
  83. package/docs/automation/cron-jobs.md +0 -2
  84. package/docs/automation/hooks.md +0 -2
  85. package/docs/automation/poll.md +0 -8
  86. package/docs/automation/webhook.md +0 -2
  87. package/docs/capabilities.md +0 -2
  88. package/docs/channels/broadcast-groups.md +0 -1
  89. package/docs/channels/channel-routing.md +4 -10
  90. package/docs/channels/group-messages.md +0 -2
  91. package/docs/channels/groups.md +0 -10
  92. package/docs/channels/index.md +0 -1
  93. package/docs/channels/matrix.md +0 -2
  94. package/docs/channels/msteams.md +0 -2
  95. package/docs/channels/pairing.md +0 -3
  96. package/docs/channels/signal.md +0 -2
  97. package/docs/channels/troubleshooting.md +0 -7
  98. package/docs/cli/channels.md +0 -6
  99. package/docs/cli/configure.md +0 -1
  100. package/docs/cli/directory.md +0 -1
  101. package/docs/cli/index.md +0 -7
  102. package/docs/cli/message.md +1 -47
  103. package/docs/cli/status.md +0 -1
  104. package/docs/concepts/architecture.md +0 -1
  105. package/docs/concepts/features.md +0 -2
  106. package/docs/concepts/markdown-formatting.md +6 -8
  107. package/docs/concepts/memory.md +0 -4
  108. package/docs/concepts/messages.md +0 -1
  109. package/docs/concepts/models.md +0 -1
  110. package/docs/concepts/multi-agent.md +4 -19
  111. package/docs/concepts/queue.md +0 -3
  112. package/docs/concepts/retry.md +0 -5
  113. package/docs/concepts/session-tool.md +0 -2
  114. package/docs/concepts/session.md +2 -9
  115. package/docs/concepts/streaming.md +0 -2
  116. package/docs/concepts/system-prompt.md +0 -1
  117. package/docs/concepts/timezone.md +0 -1
  118. package/docs/date-time.md +0 -1
  119. package/docs/docs.json +2 -11
  120. package/docs/experiments/plans/cron-add-hardening.md +0 -1
  121. package/docs/experiments/plans/session-binding-channel-agnostic.md +2 -23
  122. package/docs/experiments/plans/thread-bound-subagents.md +7 -64
  123. package/docs/gateway/configuration-examples.md +0 -10
  124. package/docs/gateway/configuration-reference.md +22 -47
  125. package/docs/gateway/configuration.md +0 -3
  126. package/docs/gateway/heartbeat.md +0 -2
  127. package/docs/gateway/security/index.md +1 -6
  128. package/docs/gateway/troubleshooting.md +0 -1
  129. package/docs/help/faq.md +0 -13
  130. package/docs/help/troubleshooting.md +0 -1
  131. package/docs/index.md +0 -6
  132. package/docs/install/ansible.md +2 -3
  133. package/docs/install/docker.md +1 -7
  134. package/docs/install/fly.md +0 -14
  135. package/docs/install/northflank.mdx +7 -11
  136. package/docs/install/railway.mdx +6 -10
  137. package/docs/install/render.mdx +1 -2
  138. package/docs/ja-JP/index.md +0 -3
  139. package/docs/pi.md +3 -5
  140. package/docs/platforms/digitalocean.md +0 -1
  141. package/docs/platforms/mac/voicewake.md +0 -1
  142. package/docs/providers/index.md +0 -2
  143. package/docs/refactor/outbound-session-mirroring.md +0 -2
  144. package/docs/reference/AGENTS.default.md +0 -1
  145. package/docs/reference/RELEASING.md +0 -1
  146. package/docs/reference/session-management-compaction.md +0 -1
  147. package/docs/reference/templates/AGENTS.md +0 -7
  148. package/docs/reference/wizard.md +0 -4
  149. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -1
  150. package/docs/security/README.md +0 -1
  151. package/docs/security/THREAT-MODEL-ATLAS.md +7 -10
  152. package/docs/start/docs-directory.md +0 -1
  153. package/docs/start/hubs.md +0 -1
  154. package/docs/start/lore.md +0 -3
  155. package/docs/start/setup.md +0 -2
  156. package/docs/start/showcase.md +0 -2
  157. package/docs/start/symi.md +0 -4
  158. package/docs/start/wizard-cli-reference.md +0 -4
  159. package/docs/start/wizard.md +3 -4
  160. package/docs/tools/agent-send.md +0 -1
  161. package/docs/tools/elevated.md +0 -2
  162. package/docs/tools/exec-approvals.md +0 -1
  163. package/docs/tools/index.md +0 -7
  164. package/docs/tools/multi-agent-sandbox-tools.md +1 -2
  165. package/docs/tools/reactions.md +0 -1
  166. package/docs/tools/slash-commands.md +0 -14
  167. package/docs/tools/symihub.md +0 -1
  168. package/docs/tts.md +0 -1
  169. package/docs/web/control-ui.md +0 -1
  170. package/docs/zh-CN/automation/cron-jobs.md +0 -2
  171. package/docs/zh-CN/automation/poll.md +0 -8
  172. package/docs/zh-CN/automation/webhook.md +0 -2
  173. package/docs/zh-CN/channels/broadcast-groups.md +0 -1
  174. package/docs/zh-CN/channels/channel-routing.md +4 -9
  175. package/docs/zh-CN/channels/group-messages.md +0 -2
  176. package/docs/zh-CN/channels/groups.md +0 -10
  177. package/docs/zh-CN/channels/imessage.md +0 -2
  178. package/docs/zh-CN/channels/index.md +0 -1
  179. package/docs/zh-CN/channels/msteams.md +0 -2
  180. package/docs/zh-CN/channels/pairing.md +0 -3
  181. package/docs/zh-CN/channels/signal.md +0 -2
  182. package/docs/zh-CN/channels/slack.md +0 -2
  183. package/docs/zh-CN/channels/telegram.md +0 -3
  184. package/docs/zh-CN/channels/troubleshooting.md +0 -2
  185. package/docs/zh-CN/cli/channels.md +0 -6
  186. package/docs/zh-CN/cli/configure.md +0 -1
  187. package/docs/zh-CN/cli/directory.md +0 -1
  188. package/docs/zh-CN/cli/index.md +0 -7
  189. package/docs/zh-CN/cli/message.md +1 -42
  190. package/docs/zh-CN/cli/status.md +0 -1
  191. package/docs/zh-CN/concepts/architecture.md +0 -1
  192. package/docs/zh-CN/concepts/features.md +0 -2
  193. package/docs/zh-CN/concepts/markdown-formatting.md +6 -8
  194. package/docs/zh-CN/concepts/messages.md +0 -1
  195. package/docs/zh-CN/concepts/multi-agent.md +4 -5
  196. package/docs/zh-CN/concepts/queue.md +0 -3
  197. package/docs/zh-CN/concepts/retry.md +0 -5
  198. package/docs/zh-CN/concepts/session-tool.md +0 -2
  199. package/docs/zh-CN/concepts/session.md +3 -11
  200. package/docs/zh-CN/concepts/streaming.md +0 -2
  201. package/docs/zh-CN/concepts/system-prompt.md +0 -2
  202. package/docs/zh-CN/concepts/timezone.md +0 -2
  203. package/docs/zh-CN/date-time.md +0 -1
  204. package/docs/zh-CN/experiments/plans/cron-add-hardening.md +0 -1
  205. package/docs/zh-CN/gateway/configuration-examples.md +0 -7
  206. package/docs/zh-CN/gateway/configuration.md +2 -50
  207. package/docs/zh-CN/gateway/heartbeat.md +0 -2
  208. package/docs/zh-CN/gateway/security/index.md +1 -6
  209. package/docs/zh-CN/gateway/troubleshooting.md +1 -14
  210. package/docs/zh-CN/help/faq.md +0 -15
  211. package/docs/zh-CN/index.md +0 -3
  212. package/docs/zh-CN/install/ansible.md +2 -3
  213. package/docs/zh-CN/install/docker.md +1 -7
  214. package/docs/zh-CN/install/fly.md +0 -14
  215. package/docs/zh-CN/install/northflank.mdx +7 -11
  216. package/docs/zh-CN/install/railway.mdx +6 -10
  217. package/docs/zh-CN/install/render.mdx +1 -2
  218. package/docs/zh-CN/pi.md +3 -5
  219. package/docs/zh-CN/platforms/digitalocean.md +0 -1
  220. package/docs/zh-CN/platforms/mac/voicewake.md +0 -1
  221. package/docs/zh-CN/providers/index.md +0 -2
  222. package/docs/zh-CN/refactor/outbound-session-mirroring.md +0 -2
  223. package/docs/zh-CN/reference/AGENTS.default.md +0 -1
  224. package/docs/zh-CN/reference/RELEASING.md +0 -1
  225. package/docs/zh-CN/reference/session-management-compaction.md +0 -1
  226. package/docs/zh-CN/reference/templates/AGENTS.md +0 -5
  227. package/docs/zh-CN/start/docs-directory.md +0 -1
  228. package/docs/zh-CN/start/getting-started.md +0 -5
  229. package/docs/zh-CN/start/hubs.md +0 -1
  230. package/docs/zh-CN/start/lore.md +0 -3
  231. package/docs/zh-CN/start/setup.md +0 -2
  232. package/docs/zh-CN/start/showcase.md +0 -2
  233. package/docs/zh-CN/start/symi.md +0 -4
  234. package/docs/zh-CN/start/wizard.md +0 -5
  235. package/docs/zh-CN/tools/agent-send.md +0 -1
  236. package/docs/zh-CN/tools/elevated.md +0 -2
  237. package/docs/zh-CN/tools/exec-approvals.md +0 -1
  238. package/docs/zh-CN/tools/index.md +0 -7
  239. package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +1 -2
  240. package/docs/zh-CN/tools/reactions.md +0 -1
  241. package/docs/zh-CN/tools/slash-commands.md +0 -9
  242. package/docs/zh-CN/tts.md +0 -2
  243. package/docs/zh-CN/web/control-ui.md +0 -1
  244. package/package.json +1 -1
  245. package/dist/plugin-sdk/web-CIPJBHAU.js +0 -54
  246. package/docs/channels/discord.md +0 -998
  247. package/docs/zh-CN/channels/discord.md +0 -468
  248. package/skills/1password/SKILL.md +0 -71
  249. package/skills/1password/references/cli-examples.md +0 -29
  250. package/skills/1password/references/get-started.md +0 -17
  251. package/skills/apple-notes/SKILL.md +0 -78
  252. package/skills/apple-reminders/SKILL.md +0 -119
  253. package/skills/bear-notes/SKILL.md +0 -108
  254. package/skills/blogwatcher/SKILL.md +0 -70
  255. package/skills/blucli/SKILL.md +0 -48
  256. package/skills/bluebubbles/SKILL.md +0 -132
  257. package/skills/camsnap/SKILL.md +0 -46
  258. package/skills/canvas/SKILL.md +0 -204
  259. package/skills/connect-email/SKILL.md +0 -142
  260. package/skills/document-generation/SKILL.md +0 -83
  261. package/skills/eightctl/SKILL.md +0 -51
  262. package/skills/food-order/SKILL.md +0 -49
  263. package/skills/gemini/SKILL.md +0 -44
  264. package/skills/gh-issues/SKILL.md +0 -865
  265. package/skills/gifgrep/SKILL.md +0 -80
  266. package/skills/github/SKILL.md +0 -164
  267. package/skills/gog/SKILL.md +0 -117
  268. package/skills/goplaces/SKILL.md +0 -53
  269. package/skills/healthcheck/SKILL.md +0 -246
  270. package/skills/himalaya/SKILL.md +0 -258
  271. package/skills/himalaya/references/configuration.md +0 -184
  272. package/skills/himalaya/references/message-composition.md +0 -199
  273. package/skills/imsg/SKILL.md +0 -122
  274. package/skills/long-task/SKILL.md +0 -58
  275. package/skills/long-task/scripts/detach-task.sh +0 -187
  276. package/skills/nano-banana-pro/SKILL.md +0 -59
  277. package/skills/nano-banana-pro/scripts/generate_image.py +0 -184
  278. package/skills/nano-pdf/SKILL.md +0 -39
  279. package/skills/notion/SKILL.md +0 -173
  280. package/skills/obsidian/SKILL.md +0 -82
  281. package/skills/openai-image-gen/SKILL.md +0 -90
  282. package/skills/openai-image-gen/scripts/gen.py +0 -240
  283. package/skills/openai-whisper/SKILL.md +0 -39
  284. package/skills/openai-whisper-api/SKILL.md +0 -53
  285. package/skills/openai-whisper-api/scripts/transcribe.sh +0 -85
  286. package/skills/openhue/SKILL.md +0 -113
  287. package/skills/oracle/SKILL.md +0 -126
  288. package/skills/ordercli/SKILL.md +0 -79
  289. package/skills/peekaboo/SKILL.md +0 -191
  290. package/skills/reactions-extensive/SKILL.md +0 -30
  291. package/skills/reactions-minimal/SKILL.md +0 -31
  292. package/skills/safe-edit/SKILL.md +0 -51
  293. package/skills/sag/SKILL.md +0 -88
  294. package/skills/sherpa-onnx-tts/SKILL.md +0 -104
  295. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
  296. package/skills/songsee/SKILL.md +0 -50
  297. package/skills/sonoscli/SKILL.md +0 -66
  298. package/skills/spotify-player/SKILL.md +0 -65
  299. package/skills/symihub/SKILL.md +0 -78
  300. package/skills/things-mac/SKILL.md +0 -87
  301. package/skills/tmux/SKILL.md +0 -153
  302. package/skills/tmux/scripts/find-sessions.sh +0 -112
  303. package/skills/tmux/scripts/wait-for-text.sh +0 -83
  304. package/skills/trello/SKILL.md +0 -96
  305. package/skills/video-frames/SKILL.md +0 -47
  306. package/skills/video-frames/scripts/frame.sh +0 -81
  307. package/skills/voice-call/SKILL.md +0 -46
  308. package/skills/wacli/SKILL.md +0 -73
  309. package/skills/weather/SKILL.md +0 -113
  310. package/skills/xurl/SKILL.md +0 -462
@@ -11,7 +11,6 @@ title: "Polls"
11
11
  ## Supported channels
12
12
 
13
13
  - WhatsApp (web channel)
14
- - Discord
15
14
  - MS Teams (Adaptive Cards)
16
15
 
17
16
  ## CLI
@@ -23,10 +22,7 @@ symi message poll --target +15555550123 \
23
22
  symi message poll --target 123456789@g.us \
24
23
  --poll-question "Meeting time?" --poll-option "10am" --poll-option "2pm" --poll-option "4pm" --poll-multi
25
24
 
26
- # Discord
27
- symi message poll --channel discord --target channel:123456789 \
28
25
  --poll-question "Snack?" --poll-option "Pizza" --poll-option "Sushi"
29
- symi message poll --channel discord --target channel:123456789 \
30
26
  --poll-question "Plan?" --poll-option "A" --poll-option "B" --poll-duration-hours 48
31
27
 
32
28
  # MS Teams
@@ -36,9 +32,7 @@ symi message poll --channel msteams --target conversation:19:abc@thread.tacv2 \
36
32
 
37
33
  Options:
38
34
 
39
- - `--channel`: `whatsapp` (default), `discord`, or `msteams`
40
35
  - `--poll-multi`: allow selecting multiple options
41
- - `--poll-duration-hours`: Discord-only (defaults to 24 when omitted)
42
36
 
43
37
  ## Gateway RPC
44
38
 
@@ -57,13 +51,11 @@ Params:
57
51
  ## Channel differences
58
52
 
59
53
  - WhatsApp: 2-12 options, `maxSelections` must be within option count, ignores `durationHours`.
60
- - Discord: 2-10 options, `durationHours` clamped to 1-768 hours (default 24). `maxSelections > 1` enables multi-select; Discord does not support a strict selection count.
61
54
  - MS Teams: Adaptive Card polls (Symi-managed). No native poll API; `durationHours` is ignored.
62
55
 
63
56
  ## Agent tool (Message)
64
57
 
65
58
  Use the `message` tool with `poll` action (`to`, `pollQuestion`, `pollOption`, optional `pollMulti`, `pollDurationHours`, `channel`).
66
59
 
67
- Note: Discord has no “pick exactly N” mode; `pollMulti` maps to multi-select.
68
60
  Teams polls are rendered as Adaptive Cards and require the gateway to stay online
69
61
  to record votes in `~/.symi/msteams-polls.json`.
@@ -83,8 +83,6 @@ Payload:
83
83
  - `sessionKey` optional (string): The key used to identify the agent's session. By default this field is rejected unless `hooks.allowRequestSessionKey=true`.
84
84
  - `wakeMode` optional (`now` | `next-heartbeat`): Whether to trigger an immediate heartbeat (default `now`) or wait for the next periodic check.
85
85
  - `deliver` optional (boolean): If `true`, the agent's response will be sent to the messaging channel. Defaults to `true`. Responses that are only heartbeat acknowledgments are automatically skipped.
86
- - `channel` optional (string): The messaging channel for delivery. One of: `last`, `whatsapp`, `telegram`, `discord`, `slack`, `mattermost` (plugin), `signal`, `imessage`, `msteams`. Defaults to `last`.
87
- - `to` optional (string): The recipient identifier for the channel (e.g., phone number for WhatsApp/Signal, chat ID for Telegram, channel ID for Discord/Slack/Mattermost (plugin), conversation ID for MS Teams). Defaults to the last recipient in the main session.
88
86
  - `model` optional (string): Model override (e.g., `anthropic/claude-3-5-sonnet` or an alias). Must be in the allowed model list if restricted.
89
87
  - `thinking` optional (string): Thinking level override (e.g., `low`, `medium`, `high`).
90
88
  - `timeoutSeconds` optional (number): Maximum duration for the agent run in seconds.
@@ -34,7 +34,6 @@ block (Stage 3.5).
34
34
  | `channel-routing` | Messaging conventions and channel routing rules. Reply in current session auto-routes to the source channel; cross-session messaging via sessions_send; sub-agent orchestration via subagents tool; syst | message, messaging, channel, route, routing, send, sessions_send, subagent |
35
35
  | `coding-agent` | "Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large co | coding-agent, coding, agent |
36
36
  | `connect-email` | Connect a user's email account (Outlook 365 or Gmail) to Symi. Use when the user asks to connect, link, set up, configure, or troubleshoot email — including any mention of "my email", "work email", "o | connect-email, connect, email |
37
- | `discord` | "Discord ops via the message tool (channel=discord)." | discord |
38
37
  | `document-generation` | Generate Word (.docx), Excel (.xlsx), PowerPoint (.pptx), and PDF documents via npm packages bundled with Symi. Write a short Node.js script (.cjs for CommonJS), execute via exec with host=gateway. Us | document, docx, xlsx, pptx, pdf, word, excel, powerpoint |
39
38
  | `eightctl` | Control Eight Sleep pods (status, temperature, alarms, schedules). | eightctl |
40
39
  | `food-order` | Reorder Foodora orders + track ETA/status with ordercli. Never confirm without explicit user approval. Triggers: order food, reorder, track ETA. | food-order, food, order |
@@ -97,7 +96,6 @@ auth providers all live here. Each ships its own `package.json`.
97
96
  | `bluebubbles` | 2.9.4 | Symi BlueBubbles channel plugin |
98
97
  | `copilot-proxy` | 2.9.4 | Symi Copilot Proxy provider plugin |
99
98
  | `diagnostics-otel` | 2.9.4 | Symi diagnostics OpenTelemetry exporter |
100
- | `discord` | 2.9.4 | Symi Discord channel plugin |
101
99
  | `feishu` | 2.9.4 | Symi Feishu/Lark channel plugin (community maintained by @m1heng) |
102
100
  | `google-antigravity-auth` | 2.9.4 | Symi Google Antigravity OAuth provider plugin |
103
101
  | `google-gemini-cli-auth` | 2.9.4 | Symi Gemini CLI OAuth provider plugin |
@@ -278,7 +278,6 @@ Broadcast groups currently work with:
278
278
 
279
279
  - ✅ WhatsApp (implemented)
280
280
  - 🚧 Telegram (planned)
281
- - 🚧 Discord (planned)
282
281
  - 🚧 Slack (planned)
283
282
 
284
283
  ### Routing
@@ -1,5 +1,4 @@
1
1
  ---
2
- summary: "Routing rules per channel (WhatsApp, Telegram, Discord, Slack) and shared context"
3
2
  read_when:
4
3
  - Changing channel routing or inbox behavior
5
4
  title: "Channel Routing"
@@ -13,7 +12,6 @@ host configuration.
13
12
 
14
13
  ## Key terms
15
14
 
16
- - **Channel**: `whatsapp`, `telegram`, `discord`, `slack`, `signal`, `imessage`, `webchat`.
17
15
  - **AccountId**: per‑channel account instance (when supported).
18
16
  - **AgentId**: an isolated workspace + session store (“brain”).
19
17
  - **SessionKey**: the bucket key used to store context and control concurrency.
@@ -31,13 +29,11 @@ Groups and channels remain isolated per channel:
31
29
 
32
30
  Threads:
33
31
 
34
- - Slack/Discord threads append `:thread:<threadId>` to the base key.
35
32
  - Telegram forum topics embed `:topic:<topicId>` in the group key.
36
33
 
37
34
  Examples:
38
35
 
39
36
  - `agent:main:telegram:group:-1001234567890:topic:42`
40
- - `agent:main:discord:channel:123456:thread:987654`
41
37
 
42
38
  ## Routing rules (how an agent is chosen)
43
39
 
@@ -45,12 +41,10 @@ Routing picks **one agent** for each inbound message:
45
41
 
46
42
  1. **Exact peer match** (`bindings` with `peer.kind` + `peer.id`).
47
43
  2. **Parent peer match** (thread inheritance).
48
- 3. **Guild + roles match** (Discord) via `guildId` + `roles`.
49
- 4. **Guild match** (Discord) via `guildId`.
50
- 5. **Team match** (Slack) via `teamId`.
51
- 6. **Account match** (`accountId` on the channel).
52
- 7. **Channel match** (any account on that channel, `accountId: "*"`).
53
- 8. **Default agent** (`agents.list[].default`, else first list entry, fallback to `main`).
44
+ 3. **Team match** (Slack) via `teamId`.
45
+ 4. **Account match** (`accountId` on the channel).
46
+ 5. **Channel match** (any account on that channel, `accountId: "*"`).
47
+ 6. **Default agent** (`agents.list[].default`, else first list entry, fallback to `main`).
54
48
 
55
49
  When a binding includes multiple match fields (`peer`, `guildId`, `teamId`, `roles`), **all provided fields must match** for that binding to apply.
56
50
 
@@ -9,8 +9,6 @@ title: "Group Messages"
9
9
 
10
10
  Goal: let Symi sit in WhatsApp groups, wake up only when pinged, and keep that thread separate from the personal DM session.
11
11
 
12
- Note: `agents.list[].groupChat.mentionPatterns` is now used by Telegram/Discord/Slack/iMessage as well; this doc focuses on WhatsApp-specific behavior. For multi-agent setups, set `agents.list[].groupChat.mentionPatterns` per agent (or use `messages.groupChat.mentionPatterns` as a global fallback).
13
-
14
12
  ## What’s implemented (2025-12-03)
15
13
 
16
14
  - Activation modes: `mention` (default) or `always`. `mention` requires a ping (real WhatsApp @-mentions via `mentionedJids`, regex patterns, or the bot’s E.164 anywhere in the text). `always` wakes the agent on every message but it should reply only when it can add meaningful value; otherwise it returns the silent token `NO_REPLY`. Defaults can be set in config (`channels.whatsapp.groups`) and overridden per group via `/activation`. When `channels.whatsapp.groups` is set, it also acts as a group allowlist (include `"*"` to allow all).
@@ -1,5 +1,4 @@
1
1
  ---
2
- summary: "Group chat behavior across surfaces (WhatsApp/Telegram/Discord/Slack/Signal/iMessage/Microsoft Teams)"
3
2
  read_when:
4
3
  - Changing group chat behavior or mention gating
5
4
  title: "Groups"
@@ -7,8 +6,6 @@ title: "Groups"
7
6
 
8
7
  # Groups
9
8
 
10
- Symi treats group chats consistently across surfaces: WhatsApp, Telegram, Discord, Slack, Signal, iMessage, Microsoft Teams.
11
-
12
9
  ## Beginner intro (2 minutes)
13
10
 
14
11
  Symi “lives” on your own messaging accounts. There is no separate WhatsApp bot user.
@@ -152,7 +149,6 @@ Control how group/room messages are handled per channel:
152
149
  groupPolicy: "disabled",
153
150
  groupAllowFrom: ["user@org.com"],
154
151
  },
155
- discord: {
156
152
  groupPolicy: "allowlist",
157
153
  guilds: {
158
154
  GUILD_ID: { channels: { help: { allow: true } } },
@@ -184,10 +180,8 @@ Notes:
184
180
 
185
181
  - `groupPolicy` is separate from mention-gating (which requires @mentions).
186
182
  - WhatsApp/Telegram/Signal/iMessage/Microsoft Teams: use `groupAllowFrom` (fallback: explicit `allowFrom`).
187
- - Discord: allowlist uses `channels.discord.guilds.<id>.channels`.
188
183
  - Slack: allowlist uses `channels.slack.channels`.
189
184
  - Matrix: allowlist uses `channels.matrix.groups` (room IDs, aliases, or names). Use `channels.matrix.groupAllowFrom` to restrict senders; per-room `users` allowlists are also supported.
190
- - Group DMs are controlled separately (`channels.discord.dm.*`, `channels.slack.dm.*`).
191
185
  - Telegram allowlist can match user IDs (`"123456789"`, `"telegram:123456789"`, `"tg:123456789"`) or usernames (`"@alice"` or `"alice"`); prefixes are case-insensitive.
192
186
  - Default is `groupPolicy: "allowlist"`; if your group allowlist is empty, group messages are blocked.
193
187
 
@@ -201,8 +195,6 @@ Quick mental model (evaluation order for group messages):
201
195
 
202
196
  Group messages require a mention unless overridden per group. Defaults live per subsystem under `*.groups."*"`.
203
197
 
204
- Replying to a bot message counts as an implicit mention (when the channel supports reply metadata). This applies to Telegram, WhatsApp, Slack, Discord, and Microsoft Teams.
205
-
206
198
  ```json5
207
199
  {
208
200
  channels: {
@@ -245,7 +237,6 @@ Notes:
245
237
  - Surfaces that provide explicit mentions still pass; patterns are a fallback.
246
238
  - Per-agent override: `agents.list[].groupChat.mentionPatterns` (useful when multiple agents share a group).
247
239
  - Mention gating is only enforced when mention detection is possible (native mentions or `mentionPatterns` are configured).
248
- - Discord defaults live in `channels.discord.guilds."*"` (overridable per guild/channel).
249
240
  - Group history context is wrapped uniformly across channels and is **pending-only** (messages skipped due to mention gating); use `messages.groupChat.historyLimit` for the global default and `channels.<channel>.historyLimit` (or `channels.<channel>.accounts.*.historyLimit`) for overrides. Set `0` to disable.
250
241
 
251
242
  ## Group/channel tool restrictions (optional)
@@ -285,7 +276,6 @@ Example (Telegram):
285
276
  Notes:
286
277
 
287
278
  - Group/channel tool restrictions are applied in addition to global/agent tool policy (deny still wins).
288
- - Some channels use different nesting for rooms/channels (e.g., Discord `guilds.*.channels.*`, Slack `channels.*`, MS Teams `teams.*.channels.*`).
289
279
 
290
280
  ## Group allowlists
291
281
 
@@ -15,7 +15,6 @@ Text is supported everywhere; media and reactions vary by channel.
15
15
 
16
16
  - [WhatsApp](/channels/whatsapp) — Most popular; uses Baileys and requires QR pairing.
17
17
  - [Telegram](/channels/telegram) — Bot API via grammY; supports groups.
18
- - [Discord](/channels/discord) — Discord Bot API + Gateway; supports servers, channels, and DMs.
19
18
  - [IRC](/channels/irc) — Classic IRC servers; channels + DMs with pairing/allowlist controls.
20
19
  - [Slack](/channels/slack) — Bolt SDK; workspace apps.
21
20
  - [Feishu](/channels/feishu) — Feishu/Lark bot via WebSocket (plugin, installed separately).
@@ -138,8 +138,6 @@ Once verified, the bot can decrypt messages in encrypted rooms.
138
138
 
139
139
  ## Multi-account
140
140
 
141
- Multi-account support: use `channels.matrix.accounts` with per-account credentials and optional `name`. See [`gateway/configuration`](/gateway/configuration#telegramaccounts--discordaccounts--slackaccounts--signalaccounts--imessageaccounts) for the shared pattern.
142
-
143
141
  Each account runs as a separate Matrix user on any homeserver. Per-account config
144
142
  inherits from the top-level `channels.matrix` settings and can override any option
145
143
  (DM policy, groups, encryption, etc.).
@@ -439,8 +439,6 @@ Symi handles this by returning quickly and sending replies proactively, but very
439
439
 
440
440
  ### Formatting
441
441
 
442
- Teams markdown is more limited than Slack or Discord:
443
-
444
442
  - Basic formatting works: **bold**, _italic_, `code`, links
445
443
  - Complex markdown (tables, nested lists) may not render correctly
446
444
  - Adaptive Cards are supported for polls and arbitrary card sends (see below)
@@ -36,8 +36,6 @@ symi pairing list telegram
36
36
  symi pairing approve telegram <CODE>
37
37
  ```
38
38
 
39
- Supported channels: `telegram`, `whatsapp`, `signal`, `imessage`, `discord`, `slack`, `feishu`.
40
-
41
39
  ### Where the state lives
42
40
 
43
41
  Stored under `~/.symi/credentials/`:
@@ -99,5 +97,4 @@ Stored under `~/.symi/devices/`:
99
97
  - Signal: [Signal](/channels/signal)
100
98
  - BlueBubbles (iMessage): [BlueBubbles](/channels/bluebubbles)
101
99
  - iMessage (legacy): [iMessage](/channels/imessage)
102
- - Discord: [Discord](/channels/discord)
103
100
  - Slack: [Slack](/channels/slack)
@@ -99,8 +99,6 @@ Example:
99
99
  }
100
100
  ```
101
101
 
102
- Multi-account support: use `channels.signal.accounts` with per-account config and optional `name`. See [`gateway/configuration`](/gateway/configuration#telegramaccounts--discordaccounts--slackaccounts--signalaccounts--imessageaccounts) for the shared pattern.
103
-
104
102
  ## Onboarding (option B): register dedicated bot number (SMS, Linux)
105
103
 
106
104
  Use this when you want a dedicated bot number instead of linking an existing Signal app account.
@@ -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>`.