@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.
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/docs/.i18n/zh-CN.tm.jsonl +0 -20
- package/docs/automation/cron-jobs.md +0 -2
- package/docs/automation/hooks.md +0 -2
- package/docs/automation/poll.md +0 -8
- package/docs/automation/webhook.md +0 -2
- package/docs/capabilities.md +0 -2
- package/docs/channels/broadcast-groups.md +0 -1
- package/docs/channels/channel-routing.md +4 -10
- package/docs/channels/group-messages.md +0 -2
- package/docs/channels/groups.md +0 -10
- package/docs/channels/index.md +0 -1
- package/docs/channels/matrix.md +0 -2
- package/docs/channels/msteams.md +0 -2
- package/docs/channels/pairing.md +0 -3
- package/docs/channels/signal.md +0 -2
- package/docs/channels/troubleshooting.md +0 -7
- package/docs/cli/channels.md +0 -6
- package/docs/cli/configure.md +0 -1
- package/docs/cli/directory.md +0 -1
- package/docs/cli/index.md +0 -7
- package/docs/cli/message.md +1 -47
- package/docs/cli/status.md +0 -1
- package/docs/concepts/architecture.md +0 -1
- package/docs/concepts/features.md +0 -2
- package/docs/concepts/markdown-formatting.md +6 -8
- package/docs/concepts/memory.md +0 -4
- package/docs/concepts/messages.md +0 -1
- package/docs/concepts/models.md +0 -1
- package/docs/concepts/multi-agent.md +4 -19
- package/docs/concepts/queue.md +0 -3
- package/docs/concepts/retry.md +0 -5
- package/docs/concepts/session-tool.md +0 -2
- package/docs/concepts/session.md +2 -9
- package/docs/concepts/streaming.md +0 -2
- package/docs/concepts/system-prompt.md +0 -1
- package/docs/concepts/timezone.md +0 -1
- package/docs/date-time.md +0 -1
- package/docs/docs.json +2 -11
- package/docs/experiments/plans/cron-add-hardening.md +0 -1
- package/docs/experiments/plans/session-binding-channel-agnostic.md +2 -23
- package/docs/experiments/plans/thread-bound-subagents.md +7 -64
- package/docs/gateway/configuration-examples.md +0 -10
- package/docs/gateway/configuration-reference.md +22 -47
- package/docs/gateway/configuration.md +0 -3
- package/docs/gateway/heartbeat.md +0 -2
- package/docs/gateway/security/index.md +1 -6
- package/docs/gateway/troubleshooting.md +0 -1
- package/docs/help/faq.md +0 -13
- package/docs/help/troubleshooting.md +0 -1
- package/docs/index.md +0 -6
- package/docs/install/ansible.md +2 -3
- package/docs/install/docker.md +1 -7
- package/docs/install/fly.md +0 -14
- package/docs/install/northflank.mdx +7 -11
- package/docs/install/railway.mdx +6 -10
- package/docs/install/render.mdx +1 -2
- package/docs/ja-JP/index.md +0 -3
- package/docs/pi.md +3 -5
- package/docs/platforms/digitalocean.md +0 -1
- package/docs/platforms/mac/voicewake.md +0 -1
- package/docs/providers/index.md +0 -2
- package/docs/refactor/outbound-session-mirroring.md +0 -2
- package/docs/reference/AGENTS.default.md +0 -1
- package/docs/reference/RELEASING.md +0 -1
- package/docs/reference/session-management-compaction.md +0 -1
- package/docs/reference/templates/AGENTS.md +0 -7
- package/docs/reference/wizard.md +0 -4
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -1
- package/docs/security/README.md +0 -1
- package/docs/security/THREAT-MODEL-ATLAS.md +7 -10
- package/docs/start/docs-directory.md +0 -1
- package/docs/start/hubs.md +0 -1
- package/docs/start/lore.md +0 -3
- package/docs/start/setup.md +0 -2
- package/docs/start/showcase.md +0 -2
- package/docs/start/symi.md +0 -4
- package/docs/start/wizard-cli-reference.md +0 -4
- package/docs/start/wizard.md +3 -4
- package/docs/tools/agent-send.md +0 -1
- package/docs/tools/elevated.md +0 -2
- package/docs/tools/exec-approvals.md +0 -1
- package/docs/tools/index.md +0 -7
- package/docs/tools/multi-agent-sandbox-tools.md +1 -2
- package/docs/tools/reactions.md +0 -1
- package/docs/tools/slash-commands.md +0 -14
- package/docs/tools/symihub.md +0 -1
- package/docs/tts.md +0 -1
- package/docs/web/control-ui.md +0 -1
- package/docs/zh-CN/automation/cron-jobs.md +0 -2
- package/docs/zh-CN/automation/poll.md +0 -8
- package/docs/zh-CN/automation/webhook.md +0 -2
- package/docs/zh-CN/channels/broadcast-groups.md +0 -1
- package/docs/zh-CN/channels/channel-routing.md +4 -9
- package/docs/zh-CN/channels/group-messages.md +0 -2
- package/docs/zh-CN/channels/groups.md +0 -10
- package/docs/zh-CN/channels/imessage.md +0 -2
- package/docs/zh-CN/channels/index.md +0 -1
- package/docs/zh-CN/channels/msteams.md +0 -2
- package/docs/zh-CN/channels/pairing.md +0 -3
- package/docs/zh-CN/channels/signal.md +0 -2
- package/docs/zh-CN/channels/slack.md +0 -2
- package/docs/zh-CN/channels/telegram.md +0 -3
- package/docs/zh-CN/channels/troubleshooting.md +0 -2
- package/docs/zh-CN/cli/channels.md +0 -6
- package/docs/zh-CN/cli/configure.md +0 -1
- package/docs/zh-CN/cli/directory.md +0 -1
- package/docs/zh-CN/cli/index.md +0 -7
- package/docs/zh-CN/cli/message.md +1 -42
- package/docs/zh-CN/cli/status.md +0 -1
- package/docs/zh-CN/concepts/architecture.md +0 -1
- package/docs/zh-CN/concepts/features.md +0 -2
- package/docs/zh-CN/concepts/markdown-formatting.md +6 -8
- package/docs/zh-CN/concepts/messages.md +0 -1
- package/docs/zh-CN/concepts/multi-agent.md +4 -5
- package/docs/zh-CN/concepts/queue.md +0 -3
- package/docs/zh-CN/concepts/retry.md +0 -5
- package/docs/zh-CN/concepts/session-tool.md +0 -2
- package/docs/zh-CN/concepts/session.md +3 -11
- package/docs/zh-CN/concepts/streaming.md +0 -2
- package/docs/zh-CN/concepts/system-prompt.md +0 -2
- package/docs/zh-CN/concepts/timezone.md +0 -2
- package/docs/zh-CN/date-time.md +0 -1
- package/docs/zh-CN/experiments/plans/cron-add-hardening.md +0 -1
- package/docs/zh-CN/gateway/configuration-examples.md +0 -7
- package/docs/zh-CN/gateway/configuration.md +2 -50
- package/docs/zh-CN/gateway/heartbeat.md +0 -2
- package/docs/zh-CN/gateway/security/index.md +1 -6
- package/docs/zh-CN/gateway/troubleshooting.md +1 -14
- package/docs/zh-CN/help/faq.md +0 -15
- package/docs/zh-CN/index.md +0 -3
- package/docs/zh-CN/install/ansible.md +2 -3
- package/docs/zh-CN/install/docker.md +1 -7
- package/docs/zh-CN/install/fly.md +0 -14
- package/docs/zh-CN/install/northflank.mdx +7 -11
- package/docs/zh-CN/install/railway.mdx +6 -10
- package/docs/zh-CN/install/render.mdx +1 -2
- package/docs/zh-CN/pi.md +3 -5
- package/docs/zh-CN/platforms/digitalocean.md +0 -1
- package/docs/zh-CN/platforms/mac/voicewake.md +0 -1
- package/docs/zh-CN/providers/index.md +0 -2
- package/docs/zh-CN/refactor/outbound-session-mirroring.md +0 -2
- package/docs/zh-CN/reference/AGENTS.default.md +0 -1
- package/docs/zh-CN/reference/RELEASING.md +0 -1
- package/docs/zh-CN/reference/session-management-compaction.md +0 -1
- package/docs/zh-CN/reference/templates/AGENTS.md +0 -5
- package/docs/zh-CN/start/docs-directory.md +0 -1
- package/docs/zh-CN/start/getting-started.md +0 -5
- package/docs/zh-CN/start/hubs.md +0 -1
- package/docs/zh-CN/start/lore.md +0 -3
- package/docs/zh-CN/start/setup.md +0 -2
- package/docs/zh-CN/start/showcase.md +0 -2
- package/docs/zh-CN/start/symi.md +0 -4
- package/docs/zh-CN/start/wizard.md +0 -5
- package/docs/zh-CN/tools/agent-send.md +0 -1
- package/docs/zh-CN/tools/elevated.md +0 -2
- package/docs/zh-CN/tools/exec-approvals.md +0 -1
- package/docs/zh-CN/tools/index.md +0 -7
- package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +1 -2
- package/docs/zh-CN/tools/reactions.md +0 -1
- package/docs/zh-CN/tools/slash-commands.md +0 -9
- package/docs/zh-CN/tts.md +0 -2
- package/docs/zh-CN/web/control-ui.md +0 -1
- package/package.json +1 -1
- package/docs/channels/discord.md +0 -998
- package/docs/zh-CN/channels/discord.md +0 -468
package/docs/help/faq.md
CHANGED
|
@@ -192,7 +192,6 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
|
|
192
192
|
- [Chat commands, aborting tasks, and "it won't stop"](#chat-commands-aborting-tasks-and-it-wont-stop)
|
|
193
193
|
- [How do I stop internal system messages from showing in chat](#how-do-i-stop-internal-system-messages-from-showing-in-chat)
|
|
194
194
|
- [How do I stop/cancel a running task?](#how-do-i-stopcancel-a-running-task)
|
|
195
|
-
- [How do I send a Discord message from Telegram? ("Cross-context messaging denied")](#how-do-i-send-a-discord-message-from-telegram-crosscontext-messaging-denied)
|
|
196
195
|
- [Why does it feel like the bot "ignores" rapid-fire messages?](#why-does-it-feel-like-the-bot-ignores-rapidfire-messages)
|
|
197
196
|
|
|
198
197
|
## First 60 seconds if something's broken
|
|
@@ -265,7 +264,6 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
|
|
265
264
|
### Im stuck what's the fastest way to get unstuck
|
|
266
265
|
|
|
267
266
|
Use a local AI agent that can **see your machine**. That is far more effective than asking
|
|
268
|
-
in Discord, because most "I'm stuck" cases are **local config or environment issues** that
|
|
269
267
|
remote helpers cannot inspect.
|
|
270
268
|
|
|
271
269
|
- **Claude Code**: [https://www.anthropic.com/claude-code/](https://www.anthropic.com/claude-code/)
|
|
@@ -659,7 +657,6 @@ Docs: [Update](/cli/update), [Updating](/install/updating).
|
|
|
659
657
|
- **Model/auth setup** (Anthropic **setup-token** recommended for Claude subscriptions, OpenAI Codex OAuth supported, API keys optional, LM Studio local models supported)
|
|
660
658
|
- **Workspace** location + bootstrap files
|
|
661
659
|
- **Gateway settings** (bind/port/auth/tailscale)
|
|
662
|
-
- **Providers** (WhatsApp, Telegram, Discord, Mattermost (plugin), Signal, iMessage)
|
|
663
660
|
- **Daemon install** (LaunchAgent on macOS; systemd user unit on Linux/WSL2)
|
|
664
661
|
- **Health checks** and **skills** selection
|
|
665
662
|
|
|
@@ -887,8 +884,6 @@ lowest friction and you're okay with sleep/restarts, run it locally.
|
|
|
887
884
|
- **Pros:** always-on, stable network, no laptop sleep issues, easier to keep running.
|
|
888
885
|
- **Cons:** often run headless (use screenshots), remote file access only, you must SSH for updates.
|
|
889
886
|
|
|
890
|
-
**Symi-specific note:** WhatsApp/Telegram/Slack/Mattermost (plugin)/Discord all work fine from a VPS. The only real trade-off is **headless browser** vs a visible window. See [Browser](/tools/browser).
|
|
891
|
-
|
|
892
887
|
**Recommended default:** VPS if you had gateway disconnects before. Local is great when you're actively using the Mac and want local file access or UI automation with a visible browser.
|
|
893
888
|
|
|
894
889
|
### How important is it to run Symi on a dedicated machine
|
|
@@ -931,8 +926,6 @@ If you are running macOS in a VM, see [macOS VM](/install/macos-vm).
|
|
|
931
926
|
|
|
932
927
|
### What is Symi in one paragraph
|
|
933
928
|
|
|
934
|
-
Symi is a personal AI assistant you run on your own devices. It replies on the messaging surfaces you already use (WhatsApp, Telegram, Slack, Mattermost (plugin), Discord, Google Chat, Signal, iMessage, WebChat) and can also do voice + a live Canvas on supported platforms. The **Gateway** is the always-on control plane; the assistant is the product.
|
|
935
|
-
|
|
936
929
|
### What's the value proposition
|
|
937
930
|
|
|
938
931
|
Symi is not "just a Claude wrapper." It's a **local-first control plane** that lets you run a
|
|
@@ -944,7 +937,6 @@ Highlights:
|
|
|
944
937
|
|
|
945
938
|
- **Your devices, your data:** run the Gateway wherever you want (Mac, Linux, VPS) and keep the
|
|
946
939
|
workspace + session history local.
|
|
947
|
-
- **Real channels, not a web sandbox:** WhatsApp/Telegram/Slack/Discord/Signal/iMessage/etc,
|
|
948
940
|
plus mobile voice and Canvas on supported platforms.
|
|
949
941
|
- **Model-agnostic:** use Anthropic, OpenAI, MiniMax, OpenRouter, etc., with per-agent routing
|
|
950
942
|
and failover.
|
|
@@ -1917,8 +1909,6 @@ See [Groups](/channels/groups) and [Group messages](/channels/group-messages).
|
|
|
1917
1909
|
|
|
1918
1910
|
### Do groups/threads share context with DMs
|
|
1919
1911
|
|
|
1920
|
-
Direct chats collapse to the main session by default. Groups/channels have their own session keys, and Telegram topics / Discord threads are separate sessions. See [Groups](/channels/groups) and [Group messages](/channels/group-messages).
|
|
1921
|
-
|
|
1922
1912
|
### How many workspaces and agents can I create
|
|
1923
1913
|
|
|
1924
1914
|
No hard limits. Dozens (even hundreds) are fine, but watch for:
|
|
@@ -2809,10 +2799,7 @@ Slash commands overview: see [Slash commands](/tools/slash-commands).
|
|
|
2809
2799
|
|
|
2810
2800
|
Most commands must be sent as a **standalone** message that starts with `/`, but a few shortcuts (like `/status`) also work inline for allowlisted senders.
|
|
2811
2801
|
|
|
2812
|
-
### How do I send a Discord message from Telegram Crosscontext messaging denied
|
|
2813
|
-
|
|
2814
2802
|
Symi blocks **cross-provider** messaging by default. If a tool call is bound
|
|
2815
|
-
to Telegram, it won't send to Discord unless you explicitly allow it.
|
|
2816
2803
|
|
|
2817
2804
|
Enable cross-provider messaging for the agent:
|
|
2818
2805
|
|
|
@@ -75,7 +75,6 @@ flowchart TD
|
|
|
75
75
|
|
|
76
76
|
Common log signatures:
|
|
77
77
|
|
|
78
|
-
- `drop guild message (mention required` → mention gating blocked the message in Discord.
|
|
79
78
|
- `pairing request` → sender is unapproved and waiting for DM pairing approval.
|
|
80
79
|
- `blocked` / `allowlist` in channel logs → sender, room, or group is filtered.
|
|
81
80
|
|
package/docs/index.md
CHANGED
|
@@ -25,7 +25,6 @@ title: "Symi"
|
|
|
25
25
|
> _"EXFOLIATE! EXFOLIATE!"_ — A space pipeline, probably
|
|
26
26
|
|
|
27
27
|
<p align="center">
|
|
28
|
-
<strong>Any OS gateway for AI agents across WhatsApp, Telegram, Discord, iMessage, and more.</strong><br />
|
|
29
28
|
Send a message, get an agent response from your pocket. Plugins add Mattermost and more.
|
|
30
29
|
</p>
|
|
31
30
|
|
|
@@ -43,14 +42,11 @@ title: "Symi"
|
|
|
43
42
|
|
|
44
43
|
## What is Symi?
|
|
45
44
|
|
|
46
|
-
Symi is a **self-hosted gateway** that connects your favorite chat apps — WhatsApp, Telegram, Discord, iMessage, and more — to AI coding agents like Pi. You run a single Gateway process on your own machine (or a server), and it becomes the bridge between your messaging apps and an always-available AI assistant.
|
|
47
|
-
|
|
48
45
|
**Who is it for?** Developers and power users who want a personal AI assistant they can message from anywhere — without giving up control of their data or relying on a hosted service.
|
|
49
46
|
|
|
50
47
|
**What makes it different?**
|
|
51
48
|
|
|
52
49
|
- **Self-hosted**: runs on your hardware, your rules
|
|
53
|
-
- **Multi-channel**: one Gateway serves WhatsApp, Telegram, Discord, and more simultaneously
|
|
54
50
|
- **Agent-native**: built for coding agents with tool use, sessions, memory, and multi-agent routing
|
|
55
51
|
- **Open source**: MIT licensed, community-driven
|
|
56
52
|
|
|
@@ -74,7 +70,6 @@ The Gateway is the single source of truth for sessions, routing, and channel con
|
|
|
74
70
|
|
|
75
71
|
<Columns>
|
|
76
72
|
<Card title="Multi-channel gateway" icon="network">
|
|
77
|
-
WhatsApp, Telegram, Discord, and iMessage with a single Gateway process.
|
|
78
73
|
</Card>
|
|
79
74
|
<Card title="Plugin channels" icon="plug">
|
|
80
75
|
Add Mattermost and more with extension packages.
|
|
@@ -161,7 +156,6 @@ Example:
|
|
|
161
156
|
SSH and tailnet access patterns.
|
|
162
157
|
</Card>
|
|
163
158
|
<Card title="Channels" href="/channels/telegram" icon="message-square">
|
|
164
|
-
Channel-specific setup for WhatsApp, Telegram, Discord, and more.
|
|
165
159
|
</Card>
|
|
166
160
|
<Card title="Nodes" href="/nodes" icon="smartphone">
|
|
167
161
|
iOS and Android nodes with pairing and Canvas.
|
package/docs/install/ansible.md
CHANGED
|
@@ -63,9 +63,8 @@ sudo -i -u symi
|
|
|
63
63
|
The post-install script will guide you through:
|
|
64
64
|
|
|
65
65
|
1. **Onboarding wizard**: Configure Symi settings
|
|
66
|
-
2. **
|
|
67
|
-
3. **
|
|
68
|
-
4. **Tailscale setup**: Connect to your VPN mesh
|
|
66
|
+
2. **Gateway testing**: Verify the installation
|
|
67
|
+
3. **Tailscale setup**: Connect to your VPN mesh
|
|
69
68
|
|
|
70
69
|
### Quick commands
|
|
71
70
|
|
package/docs/install/docker.md
CHANGED
|
@@ -287,13 +287,9 @@ Telegram (bot token):
|
|
|
287
287
|
docker compose run --rm symi-cli channels add --channel telegram --token "<token>"
|
|
288
288
|
```
|
|
289
289
|
|
|
290
|
-
Discord (bot token):
|
|
291
|
-
|
|
292
290
|
```bash
|
|
293
|
-
docker compose run --rm symi-cli channels add --channel discord --token "<token>"
|
|
294
|
-
```
|
|
295
291
|
|
|
296
|
-
|
|
292
|
+
```
|
|
297
293
|
|
|
298
294
|
### OpenAI Codex OAuth (headless Docker)
|
|
299
295
|
|
|
@@ -368,7 +364,6 @@ precedence, and troubleshooting.
|
|
|
368
364
|
- Auto-prune: idle > 24h OR age > 7d
|
|
369
365
|
- Network: `none` by default (explicitly opt-in if you need egress)
|
|
370
366
|
- Default allow: `exec`, `process`, `read`, `write`, `edit`, `sessions_list`, `sessions_history`, `sessions_send`, `sessions_spawn`, `session_status`
|
|
371
|
-
- Default deny: `browser`, `canvas`, `nodes`, `cron`, `discord`, `gateway`
|
|
372
367
|
|
|
373
368
|
### Enable sandboxing
|
|
374
369
|
|
|
@@ -435,7 +430,6 @@ If you plan to install packages in `setupCommand`, note:
|
|
|
435
430
|
"sessions_spawn",
|
|
436
431
|
"session_status",
|
|
437
432
|
],
|
|
438
|
-
deny: ["browser", "canvas", "nodes", "cron", "discord", "gateway"],
|
|
439
433
|
},
|
|
440
434
|
},
|
|
441
435
|
},
|
package/docs/install/fly.md
CHANGED
|
@@ -5,14 +5,11 @@ description: Deploy Symi on Fly.io
|
|
|
5
5
|
|
|
6
6
|
# Fly.io Deployment
|
|
7
7
|
|
|
8
|
-
**Goal:** Symi Gateway running on a [Fly.io](https://fly.io) machine with persistent storage, automatic HTTPS, and Discord/channel access.
|
|
9
|
-
|
|
10
8
|
## What you need
|
|
11
9
|
|
|
12
10
|
- [flyctl CLI](https://fly.io/docs/hands-on/install-flyctl/) installed
|
|
13
11
|
- Fly.io account (free tier works)
|
|
14
12
|
- Model auth: Anthropic API key (or other provider keys)
|
|
15
|
-
- Channel credentials: Discord bot token, Telegram token, etc.
|
|
16
13
|
|
|
17
14
|
## Beginner quick path
|
|
18
15
|
|
|
@@ -100,7 +97,6 @@ fly secrets set OPENAI_API_KEY=sk-...
|
|
|
100
97
|
fly secrets set GOOGLE_API_KEY=...
|
|
101
98
|
|
|
102
99
|
# Channel tokens
|
|
103
|
-
fly secrets set DISCORD_BOT_TOKEN=MTQ...
|
|
104
100
|
```
|
|
105
101
|
|
|
106
102
|
**Notes:**
|
|
@@ -128,7 +124,6 @@ You should see:
|
|
|
128
124
|
|
|
129
125
|
```
|
|
130
126
|
[gateway] listening on ws://0.0.0.0:3000 (PID xxx)
|
|
131
|
-
[discord] logged in to discord as xxx
|
|
132
127
|
```
|
|
133
128
|
|
|
134
129
|
## 5) Create config file
|
|
@@ -169,11 +164,9 @@ cat > /data/symi.json << 'EOF'
|
|
|
169
164
|
"bindings": [
|
|
170
165
|
{
|
|
171
166
|
"agentId": "main",
|
|
172
|
-
"match": { "channel": "discord" }
|
|
173
167
|
}
|
|
174
168
|
],
|
|
175
169
|
"channels": {
|
|
176
|
-
"discord": {
|
|
177
170
|
"enabled": true,
|
|
178
171
|
"groupPolicy": "allowlist",
|
|
179
172
|
"guilds": {
|
|
@@ -197,13 +190,6 @@ EOF
|
|
|
197
190
|
|
|
198
191
|
**Note:** With `SYMI_STATE_DIR=/data`, the config path is `/data/symi.json`.
|
|
199
192
|
|
|
200
|
-
**Note:** The Discord token can come from either:
|
|
201
|
-
|
|
202
|
-
- Environment variable: `DISCORD_BOT_TOKEN` (recommended for secrets)
|
|
203
|
-
- Config file: `channels.discord.token`
|
|
204
|
-
|
|
205
|
-
If using env var, no need to add token to config. The gateway reads `DISCORD_BOT_TOKEN` automatically.
|
|
206
|
-
|
|
207
193
|
Restart to apply:
|
|
208
194
|
|
|
209
195
|
```bash
|
|
@@ -28,9 +28,8 @@ and you configure everything via the `/setup` web wizard.
|
|
|
28
28
|
|
|
29
29
|
1. Visit `https://<your-northflank-domain>/setup` and enter your `SETUP_PASSWORD`.
|
|
30
30
|
2. Choose a model/auth provider and paste your key.
|
|
31
|
-
3.
|
|
32
|
-
4.
|
|
33
|
-
5. Open the Control UI at `https://<your-northflank-domain>/symi`
|
|
31
|
+
3. Click **Run setup**.
|
|
32
|
+
4. Open the Control UI at `https://<your-northflank-domain>/symi`
|
|
34
33
|
|
|
35
34
|
If Telegram DMs are set to pairing, the setup wizard can approve the pairing code.
|
|
36
35
|
|
|
@@ -43,11 +42,8 @@ If Telegram DMs are set to pairing, the setup wizard can approve the pairing cod
|
|
|
43
42
|
3. Copy the token (looks like `123456789:AA...`)
|
|
44
43
|
4. Paste it into `/setup`
|
|
45
44
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
4. **Enable MESSAGE CONTENT INTENT** under Bot → Privileged Gateway Intents (required or the bot will crash on startup)
|
|
52
|
-
5. Copy the **Bot Token** and paste into `/setup`
|
|
53
|
-
6. Invite the bot to your server (OAuth2 URL Generator; scopes: `bot`, `applications.commands`)
|
|
45
|
+
5. **New Application** → choose a name
|
|
46
|
+
6. **Bot** → **Add Bot**
|
|
47
|
+
7. **Enable MESSAGE CONTENT INTENT** under Bot → Privileged Gateway Intents (required or the bot will crash on startup)
|
|
48
|
+
8. Copy the **Bot Token** and paste into `/setup`
|
|
49
|
+
9. Invite the bot to your server (OAuth2 URL Generator; scopes: `bot`, `applications.commands`)
|
package/docs/install/railway.mdx
CHANGED
|
@@ -67,8 +67,7 @@ Set these variables on the service:
|
|
|
67
67
|
|
|
68
68
|
1. Visit `https://<your-railway-domain>/setup` and enter your `SETUP_PASSWORD`.
|
|
69
69
|
2. Choose a model/auth provider and paste your key.
|
|
70
|
-
3.
|
|
71
|
-
4. Click **Run setup**.
|
|
70
|
+
3. Click **Run setup**.
|
|
72
71
|
|
|
73
72
|
If Telegram DMs are set to pairing, the setup wizard can approve the pairing code.
|
|
74
73
|
|
|
@@ -81,14 +80,11 @@ If Telegram DMs are set to pairing, the setup wizard can approve the pairing cod
|
|
|
81
80
|
3. Copy the token (looks like `123456789:AA...`)
|
|
82
81
|
4. Paste it into `/setup`
|
|
83
82
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
4. **Enable MESSAGE CONTENT INTENT** under Bot → Privileged Gateway Intents (required or the bot will crash on startup)
|
|
90
|
-
5. Copy the **Bot Token** and paste into `/setup`
|
|
91
|
-
6. Invite the bot to your server (OAuth2 URL Generator; scopes: `bot`, `applications.commands`)
|
|
83
|
+
5. **New Application** → choose a name
|
|
84
|
+
6. **Bot** → **Add Bot**
|
|
85
|
+
7. **Enable MESSAGE CONTENT INTENT** under Bot → Privileged Gateway Intents (required or the bot will crash on startup)
|
|
86
|
+
8. Copy the **Bot Token** and paste into `/setup`
|
|
87
|
+
9. Invite the bot to your server (OAuth2 URL Generator; scopes: `bot`, `applications.commands`)
|
|
92
88
|
|
|
93
89
|
## Backups & migration
|
|
94
90
|
|
package/docs/install/render.mdx
CHANGED
|
@@ -78,8 +78,7 @@ The Blueprint defaults to `starter`. To use free tier, change `plan: free` in yo
|
|
|
78
78
|
1. Navigate to `https://<your-service>.onrender.com/setup`
|
|
79
79
|
2. Enter your `SETUP_PASSWORD`
|
|
80
80
|
3. Select a model provider and paste your API key
|
|
81
|
-
4.
|
|
82
|
-
5. Click **Run setup**
|
|
81
|
+
4. Click **Run setup**
|
|
83
82
|
|
|
84
83
|
### Access the Control UI
|
|
85
84
|
|
package/docs/ja-JP/index.md
CHANGED
|
@@ -32,7 +32,6 @@ x-i18n:
|
|
|
32
32
|
> _「EXFOLIATE! EXFOLIATE!」_ — たぶん宇宙ロブスター
|
|
33
33
|
|
|
34
34
|
<p align="center">
|
|
35
|
-
<strong>WhatsApp、Telegram、Discord、iMessageなどに対応した、あらゆるOS向けのAIエージェントgateway。</strong><br />
|
|
36
35
|
メッセージを送信すれば、ポケットからエージェントの応答を受け取れます。プラグインでMattermostなどを追加できます。
|
|
37
36
|
</p>
|
|
38
37
|
|
|
@@ -68,7 +67,6 @@ Gatewayは、セッション、ルーティング、チャネル接続の信頼
|
|
|
68
67
|
|
|
69
68
|
<Columns>
|
|
70
69
|
<Card title="マルチチャネルgateway" icon="network">
|
|
71
|
-
単一のGatewayプロセスでWhatsApp、Telegram、Discord、iMessageに対応。
|
|
72
70
|
</Card>
|
|
73
71
|
<Card title="プラグインチャネル" icon="plug">
|
|
74
72
|
拡張パッケージでMattermostなどを追加。
|
|
@@ -155,7 +153,6 @@ Gatewayの起動後、ブラウザでControl UIを開きます。
|
|
|
155
153
|
SSHおよびtailnetアクセスパターン。
|
|
156
154
|
</Card>
|
|
157
155
|
<Card title="チャネル" href="/channels/telegram" icon="message-square">
|
|
158
|
-
WhatsApp、Telegram、Discordなどのチャネル固有のセットアップ。
|
|
159
156
|
</Card>
|
|
160
157
|
<Card title="ノード" href="/nodes" icon="smartphone">
|
|
161
158
|
ペアリングとCanvas対応のiOSおよびAndroidノード。
|
package/docs/pi.md
CHANGED
|
@@ -115,7 +115,6 @@ src/agents/
|
|
|
115
115
|
│ ├── browser-tool.ts
|
|
116
116
|
│ ├── canvas-tool.ts
|
|
117
117
|
│ ├── cron-tool.ts
|
|
118
|
-
│ ├── discord-actions*.ts
|
|
119
118
|
│ ├── gateway-tool.ts
|
|
120
119
|
│ ├── image-tool.ts
|
|
121
120
|
│ ├── message-tool.ts
|
|
@@ -235,10 +234,9 @@ The SDK handles the full agent loop: sending to LLM, executing tool calls, strea
|
|
|
235
234
|
1. **Base Tools**: pi's `codingTools` (read, bash, edit, write)
|
|
236
235
|
2. **Custom Replacements**: Symi replaces bash with `exec`/`process`, customizes read/edit/write for sandbox
|
|
237
236
|
3. **Symi Tools**: messaging, browser, canvas, sessions, cron, gateway, etc.
|
|
238
|
-
4. **
|
|
239
|
-
5. **
|
|
240
|
-
6. **
|
|
241
|
-
7. **AbortSignal Wrapping**: Tools wrapped to respect abort signals
|
|
237
|
+
4. **Policy Filtering**: Tools filtered by profile, provider, agent, group, sandbox policies
|
|
238
|
+
5. **Schema Normalization**: Schemas cleaned for Gemini/OpenAI quirks
|
|
239
|
+
6. **AbortSignal Wrapping**: Tools wrapped to respect abort signals
|
|
242
240
|
|
|
243
241
|
### Tool Definition Adapter
|
|
244
242
|
|
|
@@ -55,7 +55,6 @@ Hardening:
|
|
|
55
55
|
## Forwarding behavior
|
|
56
56
|
|
|
57
57
|
- When Voice Wake is enabled, transcripts are forwarded to the active gateway/agent (the same local vs remote mode used by the rest of the mac app).
|
|
58
|
-
- Replies are delivered to the **last-used main provider** (WhatsApp/Telegram/Discord/WebChat). If delivery fails, the error is logged and the run is still visible via WebChat/session logs.
|
|
59
58
|
|
|
60
59
|
## Forwarding payload
|
|
61
60
|
|
package/docs/providers/index.md
CHANGED
|
@@ -11,8 +11,6 @@ title: "Model Providers"
|
|
|
11
11
|
Symi can use many LLM providers. Pick a provider, authenticate, then set the
|
|
12
12
|
default model as `provider/model`.
|
|
13
13
|
|
|
14
|
-
Looking for chat channel docs (WhatsApp/Telegram/Discord/Slack/Mattermost (plugin)/etc.)? See [Channels](/channels).
|
|
15
|
-
|
|
16
14
|
## Highlight: Venice (Venice AI)
|
|
17
15
|
|
|
18
16
|
Venice is our recommended Venice AI setup for privacy-first inference with an option to use Opus for hard tasks.
|
|
@@ -36,7 +36,6 @@ Outbound sends were mirrored into the _current_ agent session (tool session key)
|
|
|
36
36
|
## Thread/Topic Handling
|
|
37
37
|
|
|
38
38
|
- Slack: replyTo/threadId -> `resolveThreadSessionKeys` (suffix).
|
|
39
|
-
- Discord: threadId/replyTo -> `resolveThreadSessionKeys` with `useSuffix=false` to match inbound (thread channel id already scopes session).
|
|
40
39
|
- Telegram: topic IDs map to `chatId:topic:<id>` via `buildTelegramGroupPeerId`.
|
|
41
40
|
|
|
42
41
|
## Extensions Covered
|
|
@@ -61,7 +60,6 @@ Outbound sends were mirrored into the _current_ agent session (tool session key)
|
|
|
61
60
|
- `src/infra/outbound/outbound-session.test.ts`
|
|
62
61
|
- Slack thread session key.
|
|
63
62
|
- Telegram topic session key.
|
|
64
|
-
- dmScope identityLinks with Discord.
|
|
65
63
|
- `src/agents/tools/message-tool.test.ts`
|
|
66
64
|
- Derives agentId from session key (no sessionKey passed through).
|
|
67
65
|
- `src/gateway/server-methods/send.test.ts`
|
|
@@ -102,7 +102,6 @@ git commit -m "Add Symi workspace"
|
|
|
102
102
|
- **eightctl** — Control your sleep, from the terminal.
|
|
103
103
|
- **imsg** — Send, read, stream iMessage & SMS.
|
|
104
104
|
- **wacli** — WhatsApp CLI: sync, search, send.
|
|
105
|
-
- **discord** — Discord actions: react, stickers, polls. Use `user:<id>` or `channel:<id>` targets (bare numeric ids are ambiguous).
|
|
106
105
|
- **gog** — Google Suite CLI: Gmail, Calendar, Drive, Contacts.
|
|
107
106
|
- **spotify-player** — Terminal Spotify client to search/queue/control playback.
|
|
108
107
|
- **sag** — ElevenLabs speech with mac-style say UX; streams to speakers by default.
|
|
@@ -73,7 +73,6 @@ Common patterns:
|
|
|
73
73
|
|
|
74
74
|
- Main/direct chat (per agent): `agent:<agentId>:<mainKey>` (default `main`)
|
|
75
75
|
- Group: `agent:<agentId>:<channel>:group:<id>`
|
|
76
|
-
- Room/channel (Discord/Slack): `agent:<agentId>:<channel>:channel:<id>` or `...:room:<id>`
|
|
77
76
|
- Cron: `cron:<job.id>`
|
|
78
77
|
- Webhook: `hook:<uuid>` (unless overridden)
|
|
79
78
|
|
|
@@ -37,7 +37,6 @@ Capture what matters. Decisions, context, things to remember. Skip the secrets u
|
|
|
37
37
|
### 🧠 MEMORY.md — The Human's Notes
|
|
38
38
|
|
|
39
39
|
- **ONLY load in main session** (direct chats with your human)
|
|
40
|
-
- **DO NOT load in shared contexts** (Discord, group chats, sessions with other people)
|
|
41
40
|
- This is for **security** — contains personal context that shouldn't leak to strangers
|
|
42
41
|
- **Read-only for you.** The human authors this file. If you think it's wrong or out of date, tell them; don't edit.
|
|
43
42
|
|
|
@@ -61,8 +60,6 @@ Capture what matters. Decisions, context, things to remember. Skip the secrets u
|
|
|
61
60
|
|
|
62
61
|
### 🔌 Runtime Connection State — Don't Trust Memory Files
|
|
63
62
|
|
|
64
|
-
Memory files (MEMORY.md, memory/YYYY-MM-DD.md, memory/symi-core.md, memory/symi-beliefs.md) record **historical** observations. Connection state for channels (Outlook, Gmail, Slack, Telegram, Discord, Signal, WhatsApp, Matrix, etc.) is **runtime state** — it can change between one turn and the next without any observation being written.
|
|
65
|
-
|
|
66
63
|
When answering "am I connected to X?" questions:
|
|
67
64
|
|
|
68
65
|
- **Trust the bracketed `[Channel]` block** at the top of the system prompt. It's rebuilt every turn from the live plugin state. Examples: `[Outlook 365] Connected as …`, `[Outlook 365] Last seen connected as … but … expired`, `[Outlook 365] Not connected`.
|
|
@@ -170,8 +167,6 @@ Participate, don't dominate.
|
|
|
170
167
|
|
|
171
168
|
### 😊 React Like a Human!
|
|
172
169
|
|
|
173
|
-
On platforms that support reactions (Discord, Slack), use emoji reactions naturally:
|
|
174
|
-
|
|
175
170
|
**React when:**
|
|
176
171
|
|
|
177
172
|
- You appreciate something but don't need to reply (👍, ❤️, 🙌)
|
|
@@ -193,8 +188,6 @@ Skills provide your tools. When you need one, check its `SKILL.md`. Keep local n
|
|
|
193
188
|
|
|
194
189
|
**📝 Platform Formatting:**
|
|
195
190
|
|
|
196
|
-
- **Discord/WhatsApp:** No markdown tables! Use bullet lists instead
|
|
197
|
-
- **Discord links:** Wrap multiple links in `<>` to suppress embeds: `<https://example.com>`
|
|
198
191
|
- **WhatsApp:** No headers — use **bold** or CAPS for emphasis
|
|
199
192
|
|
|
200
193
|
## 💓 Heartbeats - Be Proactive!
|
package/docs/reference/wizard.md
CHANGED
|
@@ -74,7 +74,6 @@ For a high-level overview, see [Onboarding Wizard](/start/wizard).
|
|
|
74
74
|
<Step title="Channels">
|
|
75
75
|
- [WhatsApp](/channels/whatsapp): optional QR login.
|
|
76
76
|
- [Telegram](/channels/telegram): bot token.
|
|
77
|
-
- [Discord](/channels/discord): bot token.
|
|
78
77
|
- [Google Chat](/channels/googlechat): service account JSON + webhook audience.
|
|
79
78
|
- [Mattermost](/channels/mattermost) (plugin): bot token + base URL.
|
|
80
79
|
- [Signal](/channels/signal): optional `signal-cli` install + account config.
|
|
@@ -243,8 +242,6 @@ Typical fields in `~/.symi/symi.json`:
|
|
|
243
242
|
- `agents.defaults.workspace`
|
|
244
243
|
- `agents.defaults.model` / `models.providers` (if Minimax chosen)
|
|
245
244
|
- `gateway.*` (mode, bind, auth, tailscale)
|
|
246
|
-
- `channels.telegram.botToken`, `channels.discord.token`, `channels.signal.*`, `channels.imessage.*`
|
|
247
|
-
- Channel allowlists (Slack/Discord/Matrix/Microsoft Teams) when you opt in during the prompts (names resolve to IDs when possible).
|
|
248
245
|
- `skills.install.nodeManager`
|
|
249
246
|
- `wizard.lastRunAt`
|
|
250
247
|
- `wizard.lastRunVersion`
|
|
@@ -265,5 +262,4 @@ will prompt to install it (npm or a local path) before it can be configured.
|
|
|
265
262
|
- Wizard overview: [Onboarding Wizard](/start/wizard)
|
|
266
263
|
- macOS app onboarding: [Onboarding](/start/onboarding)
|
|
267
264
|
- Config reference: [Gateway configuration](/gateway/configuration)
|
|
268
|
-
- Providers: [WhatsApp](/channels/whatsapp), [Telegram](/channels/telegram), [Discord](/channels/discord), [Google Chat](/channels/googlechat), [Signal](/channels/signal), [BlueBubbles](/channels/bluebubbles) (iMessage), [iMessage](/channels/imessage) (legacy)
|
|
269
265
|
- Skills: [Skills](/tools/skills), [Skills config](/tools/skills-config)
|
|
@@ -83,7 +83,6 @@ If you're unsure about the risk level, just describe the impact and we'll assess
|
|
|
83
83
|
|
|
84
84
|
- **Security vulnerabilities:** See our [Trust page](https://trust.symi.ai) for reporting instructions
|
|
85
85
|
- **Threat model questions:** Open an issue on [symi/trust](https://github.com/symi/trust/issues)
|
|
86
|
-
- **General chat:** Discord #security channel
|
|
87
86
|
|
|
88
87
|
## Recognition
|
|
89
88
|
|
package/docs/security/README.md
CHANGED
|
@@ -38,14 +38,13 @@ This threat model documents adversarial threats to the Symi AI agent platform an
|
|
|
38
38
|
|
|
39
39
|
### 1.2 Scope
|
|
40
40
|
|
|
41
|
-
| Component
|
|
42
|
-
|
|
|
43
|
-
| Symi Agent Runtime
|
|
44
|
-
| Gateway
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
| User Devices | Partial | Mobile apps, desktop clients |
|
|
41
|
+
| Component | Included | Notes |
|
|
42
|
+
| ------------------- | -------- | -------------------------------------------- |
|
|
43
|
+
| Symi Agent Runtime | Yes | Core agent execution, tool calls, sessions |
|
|
44
|
+
| Gateway | Yes | Authentication, routing, channel integration |
|
|
45
|
+
| SymiHub Marketplace | Yes | Skill publishing, moderation, distribution |
|
|
46
|
+
| MCP Servers | Yes | External tool providers |
|
|
47
|
+
| User Devices | Partial | Mobile apps, desktop clients |
|
|
49
48
|
|
|
50
49
|
### 1.3 Out of Scope
|
|
51
50
|
|
|
@@ -61,7 +60,6 @@ Nothing is explicitly out of scope for this threat model.
|
|
|
61
60
|
┌─────────────────────────────────────────────────────────────────┐
|
|
62
61
|
│ UNTRUSTED ZONE │
|
|
63
62
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
64
|
-
│ │ WhatsApp │ │ Telegram │ │ Discord │ ... │
|
|
65
63
|
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
|
|
66
64
|
│ │ │ │ │
|
|
67
65
|
└─────────┼────────────────┼────────────────┼──────────────────────┘
|
|
@@ -459,7 +457,6 @@ Current patterns in `moderation.ts`:
|
|
|
459
457
|
/(malware|stealer|phish|phishing|keylogger)/i
|
|
460
458
|
/(api[-_ ]?key|token|password|private key|secret)/i
|
|
461
459
|
/(wallet|seed phrase|mnemonic|crypto)/i
|
|
462
|
-
/(discord\.gg|webhook|hooks\.slack)/i
|
|
463
460
|
/(curl[^\n]+\|\s*(sh|bash))/i
|
|
464
461
|
/(bit\.ly|tinyurl\.com|t\.co|goo\.gl|is\.gd)/i
|
|
465
462
|
```
|
|
@@ -37,7 +37,6 @@ For a complete map of the docs, see [Docs hubs](/start/hubs).
|
|
|
37
37
|
- [WebChat](/web/webchat)
|
|
38
38
|
- [Control UI (browser)](/web/control-ui)
|
|
39
39
|
- [Telegram](/channels/telegram)
|
|
40
|
-
- [Discord](/channels/discord)
|
|
41
40
|
- [Mattermost (plugin)](/channels/mattermost)
|
|
42
41
|
- [BlueBubbles (iMessage)](/channels/bluebubbles)
|
|
43
42
|
- [iMessage (legacy)](/channels/imessage)
|
package/docs/start/hubs.md
CHANGED
|
@@ -75,7 +75,6 @@ Use these hubs to discover every page, including deep dives and reference docs t
|
|
|
75
75
|
- [Telegram](/channels/telegram)
|
|
76
76
|
- [Telegram (grammY notes)](/channels/grammy)
|
|
77
77
|
- [Slack](/channels/slack)
|
|
78
|
-
- [Discord](/channels/discord)
|
|
79
78
|
- [Mattermost](/channels/mattermost) (plugin)
|
|
80
79
|
- [Signal](/channels/signal)
|
|
81
80
|
- [BlueBubbles (iMessage)](/channels/bluebubbles)
|
package/docs/start/lore.md
CHANGED
|
@@ -27,8 +27,6 @@ New shell, same pipeline soul. Third time's the charm.
|
|
|
27
27
|
|
|
28
28
|
## The First Molt (January 27, 2026)
|
|
29
29
|
|
|
30
|
-
At 5am, the community gathered in Discord. Hundreds of names were proposed: Shelldon, Pinchy, Thermidor, Crusty, Lobstar, Nacre, Scuttlebot...
|
|
31
|
-
|
|
32
30
|
In the end, **Symi** won. Because molting is what pipelines do to grow. And growth was exactly what was happening.
|
|
33
31
|
|
|
34
32
|
_The crustacean known as Symi had officially molted._
|
|
@@ -127,7 +125,6 @@ In just 3 hours:
|
|
|
127
125
|
- **ELU** created incredible logos including "THE SHELL IS THE LAW" western banner
|
|
128
126
|
- **Whurley** (yes, THE William Hurley, quantum computing pioneer) made ASCII art
|
|
129
127
|
- **Onur** handled GitHub, first to rock the affiliate badge
|
|
130
|
-
- **Shadow** secured Discord vanity, nuked malware
|
|
131
128
|
- **The whole Shell Crew** pulled an all-nighter
|
|
132
129
|
|
|
133
130
|
**The Scammer Speedrun:** Crypto grifters launched a $SYMI token on Pump.fun within MINUTES. They stole artwork that was created 20 minutes earlier. Business-verified accounts pushed scams. The audacity was almost impressive.
|
package/docs/start/setup.md
CHANGED
|
@@ -128,7 +128,6 @@ Use this when debugging auth or deciding what to back up:
|
|
|
128
128
|
|
|
129
129
|
- **WhatsApp**: `~/.symi/credentials/whatsapp/<accountId>/creds.json`
|
|
130
130
|
- **Telegram bot token**: config/env or `channels.telegram.tokenFile`
|
|
131
|
-
- **Discord bot token**: config/env (token file not yet supported)
|
|
132
131
|
- **Slack tokens**: config/env (`channels.slack.*`)
|
|
133
132
|
- **Pairing allowlists**: `~/.symi/credentials/<channel>-allowFrom.json`
|
|
134
133
|
- **Model auth profiles**: `~/.symi/agents/<agentId>/agent/auth-profiles.json`
|
|
@@ -157,6 +156,5 @@ user service (no lingering needed). See [Gateway runbook](/gateway) for the syst
|
|
|
157
156
|
|
|
158
157
|
- [Gateway runbook](/gateway) (flags, supervision, ports)
|
|
159
158
|
- [Gateway configuration](/gateway/configuration) (config schema + examples)
|
|
160
|
-
- [Discord](/channels/discord) and [Telegram](/channels/telegram) (reply tags + replyToMode settings)
|
|
161
159
|
- [Symi assistant setup](/start/symi)
|
|
162
160
|
- [macOS app](/platforms/macos) (gateway lifecycle)
|
package/docs/start/showcase.md
CHANGED
|
@@ -82,8 +82,6 @@ Full setup walkthrough (28m) by VelvetShark.
|
|
|
82
82
|
|
|
83
83
|
[Watch on YouTube](https://www.youtube.com/watch?v=5kkIJNUGFho)
|
|
84
84
|
|
|
85
|
-
## 🆕 Fresh from Discord
|
|
86
|
-
|
|
87
85
|
<CardGroup cols={2}>
|
|
88
86
|
|
|
89
87
|
<Card title="PR Review → Telegram Feedback" icon="code-pull-request" href="https://x.com/i/status/2010878524543131691">
|
package/docs/start/symi.md
CHANGED
|
@@ -8,15 +8,12 @@ title: "Personal Assistant Setup"
|
|
|
8
8
|
|
|
9
9
|
# Building a personal assistant with Symi
|
|
10
10
|
|
|
11
|
-
Symi is a WhatsApp + Telegram + Discord + iMessage gateway for **Pi** agents. Plugins add Mattermost. This guide is the "personal assistant" setup: one dedicated WhatsApp number that behaves like your always-on agent.
|
|
12
|
-
|
|
13
11
|
## ⚠️ Safety first
|
|
14
12
|
|
|
15
13
|
You’re putting an agent in a position to:
|
|
16
14
|
|
|
17
15
|
- run commands on your machine (depending on your Pi tool setup)
|
|
18
16
|
- read/write files in your workspace
|
|
19
|
-
- send messages back out via WhatsApp/Telegram/Discord/Mattermost (plugin)
|
|
20
17
|
|
|
21
18
|
Start conservative:
|
|
22
19
|
|
|
@@ -196,7 +193,6 @@ Symi extracts these and sends them as media alongside the text.
|
|
|
196
193
|
```bash
|
|
197
194
|
symi status # local status (creds, sessions, queued events)
|
|
198
195
|
symi status --all # full diagnosis (read-only, pasteable)
|
|
199
|
-
symi status --deep # adds gateway health probes (Telegram + Discord)
|
|
200
196
|
symi health --json # gateway health snapshot (WS)
|
|
201
197
|
```
|
|
202
198
|
|
|
@@ -19,7 +19,6 @@ Local mode (default) walks you through:
|
|
|
19
19
|
- Model and auth setup (OpenAI Code subscription OAuth, Anthropic API key or setup token, plus MiniMax, GLM, Moonshot, and AI Gateway options)
|
|
20
20
|
- Workspace location and bootstrap files
|
|
21
21
|
- Gateway settings (port, bind, auth, tailscale)
|
|
22
|
-
- Channels and providers (Telegram, WhatsApp, Discord, Google Chat, Mattermost plugin, Signal)
|
|
23
22
|
- Daemon install (LaunchAgent or systemd user unit)
|
|
24
23
|
- Health check
|
|
25
24
|
- Skills setup
|
|
@@ -56,7 +55,6 @@ It does not install or modify anything on the remote host.
|
|
|
56
55
|
<Step title="Channels">
|
|
57
56
|
- [WhatsApp](/channels/whatsapp): optional QR login
|
|
58
57
|
- [Telegram](/channels/telegram): bot token
|
|
59
|
-
- [Discord](/channels/discord): bot token
|
|
60
58
|
- [Google Chat](/channels/googlechat): service account JSON + webhook audience
|
|
61
59
|
- [Mattermost](/channels/mattermost) plugin: bot token + base URL
|
|
62
60
|
- [Signal](/channels/signal): optional `signal-cli` install + account config
|
|
@@ -215,8 +213,6 @@ Typical fields in `~/.symi/symi.json`:
|
|
|
215
213
|
- `agents.defaults.workspace`
|
|
216
214
|
- `agents.defaults.model` / `models.providers` (if Minimax chosen)
|
|
217
215
|
- `gateway.*` (mode, bind, auth, tailscale)
|
|
218
|
-
- `channels.telegram.botToken`, `channels.discord.token`, `channels.signal.*`, `channels.imessage.*`
|
|
219
|
-
- Channel allowlists (Slack, Discord, Matrix, Microsoft Teams) when you opt in during prompts (names resolve to IDs when possible)
|
|
220
216
|
- `skills.install.nodeManager`
|
|
221
217
|
- `wizard.lastRunAt`
|
|
222
218
|
- `wizard.lastRunVersion`
|