@symerian/symi 3.0.21 → 3.0.22
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/package.json +1 -1
- package/docs/.i18n/README.md +0 -31
- package/docs/.i18n/glossary.ja-JP.json +0 -14
- package/docs/.i18n/glossary.zh-CN.json +0 -210
- package/docs/.i18n/ja-JP.tm.jsonl +0 -0
- package/docs/.i18n/zh-CN.tm.jsonl +0 -1303
- package/docs/CNAME +0 -1
- package/docs/assets/install-script.svg +0 -1
- package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
- package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
- package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
- package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
- package/docs/assets/macos-onboarding/05-permissions.png +0 -0
- package/docs/assets/pixel-symi.svg +0 -60
- package/docs/assets/showcase/agents-ui.jpg +0 -0
- package/docs/assets/showcase/bambu-cli.png +0 -0
- package/docs/assets/showcase/codexmonitor.png +0 -0
- package/docs/assets/showcase/gohome-grafana.png +0 -0
- package/docs/assets/showcase/ios-testflight.jpg +0 -0
- package/docs/assets/showcase/oura-health.png +0 -0
- package/docs/assets/showcase/padel-cli.svg +0 -11
- package/docs/assets/showcase/padel-screenshot.jpg +0 -0
- package/docs/assets/showcase/papla-tts.jpg +0 -0
- package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
- package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
- package/docs/assets/showcase/roborock-status.svg +0 -13
- package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
- package/docs/assets/showcase/snag.png +0 -0
- package/docs/assets/showcase/tesco-shop.jpg +0 -0
- package/docs/assets/showcase/wienerlinien.png +0 -0
- package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
- package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
- package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
- package/docs/assets/sponsors/blacksmith.svg +0 -14
- package/docs/assets/sponsors/openai.svg +0 -3
- package/docs/assets/symi-logo-text-dark.png +0 -0
- package/docs/assets/symi-logo-text.png +0 -0
- package/docs/automation/auth-monitoring.md +0 -44
- package/docs/automation/cron-jobs.md +0 -540
- package/docs/automation/cron-vs-heartbeat.md +0 -286
- package/docs/automation/gmail-pubsub.md +0 -256
- package/docs/automation/hooks.md +0 -998
- package/docs/automation/poll.md +0 -61
- package/docs/automation/troubleshooting.md +0 -122
- package/docs/automation/webhook.md +0 -213
- package/docs/brave-search.md +0 -41
- package/docs/capabilities.md +0 -151
- package/docs/channels/bluebubbles.md +0 -346
- package/docs/channels/broadcast-groups.md +0 -441
- package/docs/channels/channel-routing.md +0 -112
- package/docs/channels/feishu.md +0 -586
- package/docs/channels/googlechat.md +0 -253
- package/docs/channels/grammy.md +0 -31
- package/docs/channels/group-messages.md +0 -82
- package/docs/channels/groups.md +0 -364
- package/docs/channels/imessage.md +0 -366
- package/docs/channels/index.md +0 -46
- package/docs/channels/irc.md +0 -234
- package/docs/channels/line.md +0 -186
- package/docs/channels/location.md +0 -56
- package/docs/channels/matrix.md +0 -300
- package/docs/channels/mattermost.md +0 -158
- package/docs/channels/msteams.md +0 -769
- package/docs/channels/nextcloud-talk.md +0 -138
- package/docs/channels/nostr.md +0 -233
- package/docs/channels/pairing.md +0 -100
- package/docs/channels/signal.md +0 -322
- package/docs/channels/slack.md +0 -510
- package/docs/channels/telegram.md +0 -748
- package/docs/channels/tlon.md +0 -148
- package/docs/channels/troubleshooting.md +0 -110
- package/docs/channels/twitch.md +0 -379
- package/docs/channels/whatsapp.md +0 -444
- package/docs/channels/zalo.md +0 -192
- package/docs/channels/zalouser.md +0 -140
- package/docs/ci.md +0 -50
- package/docs/cli/acp.md +0 -182
- package/docs/cli/agent.md +0 -24
- package/docs/cli/agents.md +0 -75
- package/docs/cli/approvals.md +0 -50
- package/docs/cli/browser.md +0 -107
- package/docs/cli/channels.md +0 -73
- package/docs/cli/config.md +0 -50
- package/docs/cli/configure.md +0 -32
- package/docs/cli/cron.md +0 -44
- package/docs/cli/dashboard.md +0 -16
- package/docs/cli/devices.md +0 -73
- package/docs/cli/directory.md +0 -62
- package/docs/cli/dns.md +0 -23
- package/docs/cli/docs.md +0 -15
- package/docs/cli/doctor.md +0 -41
- package/docs/cli/gateway.md +0 -202
- package/docs/cli/health.md +0 -21
- package/docs/cli/hooks.md +0 -313
- package/docs/cli/index.md +0 -1029
- package/docs/cli/logs.md +0 -28
- package/docs/cli/memory.md +0 -45
- package/docs/cli/message.md +0 -214
- package/docs/cli/models.md +0 -79
- package/docs/cli/node.md +0 -112
- package/docs/cli/nodes.md +0 -73
- package/docs/cli/onboard.md +0 -76
- package/docs/cli/pairing.md +0 -21
- package/docs/cli/plugins.md +0 -92
- package/docs/cli/reset.md +0 -17
- package/docs/cli/sandbox.md +0 -152
- package/docs/cli/security.md +0 -64
- package/docs/cli/sessions.md +0 -16
- package/docs/cli/setup.md +0 -29
- package/docs/cli/skills.md +0 -26
- package/docs/cli/status.md +0 -25
- package/docs/cli/system.md +0 -60
- package/docs/cli/tui.md +0 -23
- package/docs/cli/uninstall.md +0 -17
- package/docs/cli/update.md +0 -98
- package/docs/cli/voicecall.md +0 -34
- package/docs/cli/webhooks.md +0 -25
- package/docs/concepts/agent-loop.md +0 -148
- package/docs/concepts/agent-workspace.md +0 -234
- package/docs/concepts/agent.md +0 -123
- package/docs/concepts/architecture.md +0 -135
- package/docs/concepts/compaction.md +0 -61
- package/docs/concepts/context.md +0 -161
- package/docs/concepts/features.md +0 -51
- package/docs/concepts/markdown-formatting.md +0 -128
- package/docs/concepts/memory.md +0 -729
- package/docs/concepts/messages.md +0 -153
- package/docs/concepts/model-failover.md +0 -149
- package/docs/concepts/model-providers.md +0 -424
- package/docs/concepts/models.md +0 -208
- package/docs/concepts/multi-agent.md +0 -521
- package/docs/concepts/oauth.md +0 -145
- package/docs/concepts/presence.md +0 -102
- package/docs/concepts/queue.md +0 -86
- package/docs/concepts/retry.md +0 -64
- package/docs/concepts/session-pruning.md +0 -123
- package/docs/concepts/session-tool.md +0 -213
- package/docs/concepts/session.md +0 -199
- package/docs/concepts/sessions.md +0 -10
- package/docs/concepts/streaming.md +0 -129
- package/docs/concepts/system-prompt.md +0 -128
- package/docs/concepts/timezone.md +0 -90
- package/docs/concepts/typebox.md +0 -289
- package/docs/concepts/typing-indicators.md +0 -68
- package/docs/concepts/usage-tracking.md +0 -35
- package/docs/date-time.md +0 -127
- package/docs/debug/node-issue.md +0 -85
- package/docs/diagnostics/flags.md +0 -91
- package/docs/docs.json +0 -1849
- package/docs/experiments/onboarding-config-protocol.md +0 -40
- package/docs/experiments/plans/browser-evaluate-cdp-refactor.md +0 -229
- package/docs/experiments/plans/cron-add-hardening.md +0 -62
- package/docs/experiments/plans/group-policy-hardening.md +0 -40
- package/docs/experiments/plans/openresponses-gateway.md +0 -123
- package/docs/experiments/plans/pty-process-supervision.md +0 -192
- package/docs/experiments/plans/session-binding-channel-agnostic.md +0 -202
- package/docs/experiments/plans/thread-bound-subagents.md +0 -281
- package/docs/experiments/proposals/model-config.md +0 -36
- package/docs/experiments/research/memory.md +0 -228
- package/docs/gateway/authentication.md +0 -162
- package/docs/gateway/background-process.md +0 -96
- package/docs/gateway/bonjour.md +0 -177
- package/docs/gateway/bridge-protocol.md +0 -91
- package/docs/gateway/cli-backends.md +0 -225
- package/docs/gateway/configuration-examples.md +0 -610
- package/docs/gateway/configuration-reference.md +0 -2465
- package/docs/gateway/configuration.md +0 -488
- package/docs/gateway/discovery.md +0 -123
- package/docs/gateway/doctor.md +0 -282
- package/docs/gateway/gateway-lock.md +0 -34
- package/docs/gateway/health.md +0 -35
- package/docs/gateway/heartbeat.md +0 -374
- package/docs/gateway/index.md +0 -254
- package/docs/gateway/local-models.md +0 -150
- package/docs/gateway/logging.md +0 -113
- package/docs/gateway/multiple-gateways.md +0 -112
- package/docs/gateway/network-model.md +0 -20
- package/docs/gateway/openai-http-api.md +0 -119
- package/docs/gateway/openresponses-http-api.md +0 -333
- package/docs/gateway/pairing.md +0 -99
- package/docs/gateway/protocol.md +0 -221
- package/docs/gateway/remote-gateway-readme.md +0 -158
- package/docs/gateway/remote.md +0 -131
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -128
- package/docs/gateway/sandboxing.md +0 -203
- package/docs/gateway/security/index.md +0 -931
- package/docs/gateway/tailscale.md +0 -132
- package/docs/gateway/tools-invoke-http-api.md +0 -110
- package/docs/gateway/troubleshooting.md +0 -317
- package/docs/gateway/trusted-proxy-auth.md +0 -270
- package/docs/glass-ui-rendering-invariants.md +0 -451
- package/docs/help/debugging.md +0 -162
- package/docs/help/environment.md +0 -107
- package/docs/help/faq.md +0 -2846
- package/docs/help/index.md +0 -21
- package/docs/help/scripts.md +0 -28
- package/docs/help/testing.md +0 -385
- package/docs/help/troubleshooting.md +0 -264
- package/docs/images/configure-model-picker-unsearchable.png +0 -0
- package/docs/images/feishu-step2-create-app.png +0 -0
- package/docs/images/feishu-step3-credentials.png +0 -0
- package/docs/images/feishu-step4-permissions.png +0 -0
- package/docs/images/feishu-step5-bot-capability.png +0 -0
- package/docs/images/feishu-step6-event-subscription.png +0 -0
- package/docs/images/groups-flow.svg +0 -52
- package/docs/images/mobile-ui-screenshot.png +0 -0
- package/docs/index.md +0 -186
- package/docs/install/ansible.md +0 -207
- package/docs/install/bun.md +0 -59
- package/docs/install/development-channels.md +0 -75
- package/docs/install/docker.md +0 -583
- package/docs/install/exe-dev.md +0 -126
- package/docs/install/fly.md +0 -472
- package/docs/install/gcp.md +0 -499
- package/docs/install/hetzner.md +0 -347
- package/docs/install/index.md +0 -218
- package/docs/install/installer.md +0 -405
- package/docs/install/macos-vm.md +0 -281
- package/docs/install/migrating.md +0 -192
- package/docs/install/nix.md +0 -98
- package/docs/install/node.md +0 -138
- package/docs/install/northflank.mdx +0 -49
- package/docs/install/podman.md +0 -108
- package/docs/install/railway.mdx +0 -95
- package/docs/install/render.mdx +0 -158
- package/docs/install/uninstall.md +0 -128
- package/docs/install/updating.md +0 -231
- package/docs/ja-JP/AGENTS.md +0 -37
- package/docs/ja-JP/index.md +0 -183
- package/docs/ja-JP/start/getting-started.md +0 -125
- package/docs/ja-JP/start/wizard.md +0 -77
- package/docs/logging.md +0 -350
- package/docs/nav-tabs-underline.js +0 -100
- package/docs/network.md +0 -54
- package/docs/nodes/audio.md +0 -133
- package/docs/nodes/camera.md +0 -156
- package/docs/nodes/images.md +0 -72
- package/docs/nodes/index.md +0 -342
- package/docs/nodes/location-command.md +0 -113
- package/docs/nodes/media-understanding.md +0 -379
- package/docs/nodes/talk.md +0 -90
- package/docs/nodes/troubleshooting.md +0 -112
- package/docs/nodes/voicewake.md +0 -65
- package/docs/perplexity.md +0 -80
- package/docs/phase-6.5-pre-flight-audit.md +0 -268
- package/docs/pi-dev.md +0 -70
- package/docs/pi.md +0 -610
- package/docs/platforms/android.md +0 -151
- package/docs/platforms/digitalocean.md +0 -265
- package/docs/platforms/index.md +0 -53
- package/docs/platforms/ios.md +0 -108
- package/docs/platforms/linux.md +0 -94
- package/docs/platforms/mac/bundled-gateway.md +0 -73
- package/docs/platforms/mac/canvas.md +0 -125
- package/docs/platforms/mac/child-process.md +0 -69
- package/docs/platforms/mac/dev-setup.md +0 -104
- package/docs/platforms/mac/health.md +0 -34
- package/docs/platforms/mac/icon.md +0 -31
- package/docs/platforms/mac/logging.md +0 -57
- package/docs/platforms/mac/menu-bar.md +0 -81
- package/docs/platforms/mac/peekaboo.md +0 -65
- package/docs/platforms/mac/permissions.md +0 -50
- package/docs/platforms/mac/release.md +0 -85
- package/docs/platforms/mac/remote.md +0 -84
- package/docs/platforms/mac/signing.md +0 -47
- package/docs/platforms/mac/skills.md +0 -33
- package/docs/platforms/mac/voice-overlay.md +0 -60
- package/docs/platforms/mac/voicewake.md +0 -66
- package/docs/platforms/mac/webchat.md +0 -43
- package/docs/platforms/mac/xpc.md +0 -61
- package/docs/platforms/macos.md +0 -204
- package/docs/platforms/oracle.md +0 -303
- package/docs/platforms/raspberry-pi.md +0 -358
- package/docs/platforms/windows.md +0 -159
- package/docs/plugins/agent-tools.md +0 -99
- package/docs/plugins/community.md +0 -44
- package/docs/plugins/manifest.md +0 -71
- package/docs/plugins/voice-call.md +0 -322
- package/docs/plugins/zalouser.md +0 -81
- package/docs/prose.md +0 -134
- package/docs/providers/anthropic.md +0 -174
- package/docs/providers/bedrock.md +0 -176
- package/docs/providers/claude-max-api-proxy.md +0 -148
- package/docs/providers/cloudflare-ai-gateway.md +0 -71
- package/docs/providers/deepgram.md +0 -93
- package/docs/providers/github-copilot.md +0 -72
- package/docs/providers/glm.md +0 -33
- package/docs/providers/huggingface.md +0 -209
- package/docs/providers/index.md +0 -67
- package/docs/providers/litellm.md +0 -153
- package/docs/providers/minimax.md +0 -208
- package/docs/providers/models.md +0 -52
- package/docs/providers/moonshot.md +0 -142
- package/docs/providers/nvidia.md +0 -55
- package/docs/providers/ollama.md +0 -250
- package/docs/providers/openai.md +0 -62
- package/docs/providers/opencode.md +0 -36
- package/docs/providers/openrouter.md +0 -37
- package/docs/providers/qianfan.md +0 -38
- package/docs/providers/qwen.md +0 -53
- package/docs/providers/synthetic.md +0 -99
- package/docs/providers/together.md +0 -65
- package/docs/providers/venice.md +0 -267
- package/docs/providers/vercel-ai-gateway.md +0 -50
- package/docs/providers/vllm.md +0 -92
- package/docs/providers/xiaomi.md +0 -64
- package/docs/providers/zai.md +0 -38
- package/docs/refactor/exec-host.md +0 -316
- package/docs/refactor/outbound-session-mirroring.md +0 -83
- package/docs/refactor/plugin-sdk.md +0 -214
- package/docs/refactor/strict-config.md +0 -93
- package/docs/refactor/syminet.md +0 -417
- package/docs/reference/AGENTS.default.md +0 -123
- package/docs/reference/RELEASING.md +0 -120
- package/docs/reference/api-usage-costs.md +0 -138
- package/docs/reference/credits.md +0 -28
- package/docs/reference/device-models.md +0 -47
- package/docs/reference/rpc.md +0 -43
- package/docs/reference/session-management-compaction.md +0 -284
- package/docs/reference/test.md +0 -51
- package/docs/reference/token-use.md +0 -136
- package/docs/reference/transcript-hygiene.md +0 -151
- package/docs/reference/wizard.md +0 -265
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -89
- package/docs/security/README.md +0 -16
- package/docs/security/THREAT-MODEL-ATLAS.md +0 -600
- package/docs/security/formal-verification.md +0 -164
- package/docs/start/bootstrapping.md +0 -41
- package/docs/start/docs-directory.md +0 -63
- package/docs/start/getting-started.md +0 -135
- package/docs/start/hubs.md +0 -196
- package/docs/start/lore.md +0 -216
- package/docs/start/onboarding-overview.md +0 -51
- package/docs/start/onboarding.md +0 -81
- package/docs/start/quickstart.md +0 -22
- package/docs/start/setup.md +0 -160
- package/docs/start/showcase.md +0 -414
- package/docs/start/symi.md +0 -211
- package/docs/start/wizard-cli-automation.md +0 -158
- package/docs/start/wizard-cli-reference.md +0 -255
- package/docs/start/wizard.md +0 -109
- package/docs/style.css +0 -37
- package/docs/tools/agent-send.md +0 -52
- package/docs/tools/apply-patch.md +0 -51
- package/docs/tools/browser-linux-troubleshooting.md +0 -139
- package/docs/tools/browser-login.md +0 -67
- package/docs/tools/browser.md +0 -587
- package/docs/tools/chrome-extension.md +0 -183
- package/docs/tools/creating-skills.md +0 -54
- package/docs/tools/elevated.md +0 -55
- package/docs/tools/exec-approvals.md +0 -261
- package/docs/tools/exec.md +0 -184
- package/docs/tools/firecrawl.md +0 -61
- package/docs/tools/index.md +0 -540
- package/docs/tools/llm-task.md +0 -115
- package/docs/tools/loop-detection.md +0 -98
- package/docs/tools/multi-agent-sandbox-tools.md +0 -396
- package/docs/tools/pipeline.md +0 -340
- package/docs/tools/plugin.md +0 -687
- package/docs/tools/reactions.md +0 -21
- package/docs/tools/skills-config.md +0 -76
- package/docs/tools/skills.md +0 -300
- package/docs/tools/slash-commands.md +0 -202
- package/docs/tools/subagents.md +0 -232
- package/docs/tools/symihub.md +0 -256
- package/docs/tools/thinking.md +0 -75
- package/docs/tools/web.md +0 -265
- package/docs/tts.md +0 -398
- package/docs/vps.md +0 -43
- package/docs/web/control-ui.md +0 -247
- package/docs/web/dashboard.md +0 -46
- package/docs/web/index.md +0 -118
- package/docs/web/tui.md +0 -162
- package/docs/web/webchat.md +0 -53
- package/docs/whatsapp-symi-ai-zh.jpg +0 -0
- package/docs/whatsapp-symi.jpg +0 -0
- package/docs/zh-CN/AGENTS.md +0 -59
- package/docs/zh-CN/automation/auth-monitoring.md +0 -47
- package/docs/zh-CN/automation/cron-jobs.md +0 -422
- package/docs/zh-CN/automation/cron-vs-heartbeat.md +0 -286
- package/docs/zh-CN/automation/gmail-pubsub.md +0 -249
- package/docs/zh-CN/automation/hooks.md +0 -881
- package/docs/zh-CN/automation/poll.md +0 -68
- package/docs/zh-CN/automation/troubleshooting.md +0 -8
- package/docs/zh-CN/automation/webhook.md +0 -161
- package/docs/zh-CN/brave-search.md +0 -48
- package/docs/zh-CN/channels/bluebubbles.md +0 -271
- package/docs/zh-CN/channels/broadcast-groups.md +0 -448
- package/docs/zh-CN/channels/channel-routing.md +0 -112
- package/docs/zh-CN/channels/feishu.md +0 -629
- package/docs/zh-CN/channels/googlechat.md +0 -257
- package/docs/zh-CN/channels/grammy.md +0 -38
- package/docs/zh-CN/channels/group-messages.md +0 -89
- package/docs/zh-CN/channels/groups.md +0 -369
- package/docs/zh-CN/channels/imessage.md +0 -300
- package/docs/zh-CN/channels/index.md +0 -52
- package/docs/zh-CN/channels/line.md +0 -180
- package/docs/zh-CN/channels/location.md +0 -63
- package/docs/zh-CN/channels/matrix.md +0 -221
- package/docs/zh-CN/channels/mattermost.md +0 -144
- package/docs/zh-CN/channels/msteams.md +0 -773
- package/docs/zh-CN/channels/nextcloud-talk.md +0 -142
- package/docs/zh-CN/channels/nostr.md +0 -240
- package/docs/zh-CN/channels/pairing.md +0 -86
- package/docs/zh-CN/channels/signal.md +0 -207
- package/docs/zh-CN/channels/slack.md +0 -529
- package/docs/zh-CN/channels/telegram.md +0 -748
- package/docs/zh-CN/channels/tlon.md +0 -136
- package/docs/zh-CN/channels/troubleshooting.md +0 -34
- package/docs/zh-CN/channels/twitch.md +0 -385
- package/docs/zh-CN/channels/whatsapp.md +0 -411
- package/docs/zh-CN/channels/zalo.md +0 -196
- package/docs/zh-CN/channels/zalouser.md +0 -147
- package/docs/zh-CN/cli/acp.md +0 -173
- package/docs/zh-CN/cli/agent.md +0 -30
- package/docs/zh-CN/cli/agents.md +0 -82
- package/docs/zh-CN/cli/approvals.md +0 -57
- package/docs/zh-CN/cli/browser.md +0 -114
- package/docs/zh-CN/cli/channels.md +0 -80
- package/docs/zh-CN/cli/config.md +0 -57
- package/docs/zh-CN/cli/configure.md +0 -37
- package/docs/zh-CN/cli/cron.md +0 -43
- package/docs/zh-CN/cli/dashboard.md +0 -23
- package/docs/zh-CN/cli/devices.md +0 -74
- package/docs/zh-CN/cli/directory.md +0 -69
- package/docs/zh-CN/cli/dns.md +0 -30
- package/docs/zh-CN/cli/docs.md +0 -22
- package/docs/zh-CN/cli/doctor.md +0 -48
- package/docs/zh-CN/cli/gateway.md +0 -206
- package/docs/zh-CN/cli/health.md +0 -28
- package/docs/zh-CN/cli/hooks.md +0 -298
- package/docs/zh-CN/cli/index.md +0 -1025
- package/docs/zh-CN/cli/logs.md +0 -31
- package/docs/zh-CN/cli/memory.md +0 -52
- package/docs/zh-CN/cli/message.md +0 -205
- package/docs/zh-CN/cli/models.md +0 -85
- package/docs/zh-CN/cli/node.md +0 -115
- package/docs/zh-CN/cli/nodes.md +0 -80
- package/docs/zh-CN/cli/onboard.md +0 -36
- package/docs/zh-CN/cli/pairing.md +0 -28
- package/docs/zh-CN/cli/plugins.md +0 -66
- package/docs/zh-CN/cli/reset.md +0 -24
- package/docs/zh-CN/cli/sandbox.md +0 -158
- package/docs/zh-CN/cli/security.md +0 -33
- package/docs/zh-CN/cli/sessions.md +0 -23
- package/docs/zh-CN/cli/setup.md +0 -36
- package/docs/zh-CN/cli/skills.md +0 -33
- package/docs/zh-CN/cli/status.md +0 -32
- package/docs/zh-CN/cli/system.md +0 -63
- package/docs/zh-CN/cli/tui.md +0 -30
- package/docs/zh-CN/cli/uninstall.md +0 -24
- package/docs/zh-CN/cli/update.md +0 -101
- package/docs/zh-CN/cli/voicecall.md +0 -41
- package/docs/zh-CN/cli/webhooks.md +0 -32
- package/docs/zh-CN/concepts/agent-loop.md +0 -146
- package/docs/zh-CN/concepts/agent-workspace.md +0 -219
- package/docs/zh-CN/concepts/agent.md +0 -115
- package/docs/zh-CN/concepts/architecture.md +0 -122
- package/docs/zh-CN/concepts/compaction.md +0 -67
- package/docs/zh-CN/concepts/context.md +0 -168
- package/docs/zh-CN/concepts/features.md +0 -57
- package/docs/zh-CN/concepts/markdown-formatting.md +0 -115
- package/docs/zh-CN/concepts/memory.md +0 -412
- package/docs/zh-CN/concepts/messages.md +0 -140
- package/docs/zh-CN/concepts/model-failover.md +0 -145
- package/docs/zh-CN/concepts/model-providers.md +0 -320
- package/docs/zh-CN/concepts/models.md +0 -196
- package/docs/zh-CN/concepts/multi-agent.md +0 -371
- package/docs/zh-CN/concepts/oauth.md +0 -151
- package/docs/zh-CN/concepts/presence.md +0 -99
- package/docs/zh-CN/concepts/queue.md +0 -91
- package/docs/zh-CN/concepts/retry.md +0 -71
- package/docs/zh-CN/concepts/session-pruning.md +0 -129
- package/docs/zh-CN/concepts/session-tool.md +0 -198
- package/docs/zh-CN/concepts/session.md +0 -158
- package/docs/zh-CN/concepts/sessions.md +0 -17
- package/docs/zh-CN/concepts/streaming.md +0 -131
- package/docs/zh-CN/concepts/system-prompt.md +0 -99
- package/docs/zh-CN/concepts/timezone.md +0 -94
- package/docs/zh-CN/concepts/typebox.md +0 -284
- package/docs/zh-CN/concepts/typing-indicators.md +0 -74
- package/docs/zh-CN/concepts/usage-tracking.md +0 -42
- package/docs/zh-CN/date-time.md +0 -128
- package/docs/zh-CN/debug/node-issue.md +0 -90
- package/docs/zh-CN/diagnostics/flags.md +0 -98
- package/docs/zh-CN/experiments/onboarding-config-protocol.md +0 -47
- package/docs/zh-CN/experiments/plans/cron-add-hardening.md +0 -69
- package/docs/zh-CN/experiments/plans/group-policy-hardening.md +0 -45
- package/docs/zh-CN/experiments/plans/openresponses-gateway.md +0 -121
- package/docs/zh-CN/experiments/proposals/model-config.md +0 -42
- package/docs/zh-CN/experiments/research/memory.md +0 -235
- package/docs/zh-CN/gateway/authentication.md +0 -142
- package/docs/zh-CN/gateway/background-process.md +0 -100
- package/docs/zh-CN/gateway/bonjour.md +0 -174
- package/docs/zh-CN/gateway/bridge-protocol.md +0 -86
- package/docs/zh-CN/gateway/cli-backends.md +0 -213
- package/docs/zh-CN/gateway/configuration-examples.md +0 -580
- package/docs/zh-CN/gateway/configuration.md +0 -3284
- package/docs/zh-CN/gateway/discovery.md +0 -123
- package/docs/zh-CN/gateway/doctor.md +0 -238
- package/docs/zh-CN/gateway/gateway-lock.md +0 -41
- package/docs/zh-CN/gateway/health.md +0 -42
- package/docs/zh-CN/gateway/heartbeat.md +0 -272
- package/docs/zh-CN/gateway/index.md +0 -335
- package/docs/zh-CN/gateway/local-models.md +0 -157
- package/docs/zh-CN/gateway/logging.md +0 -114
- package/docs/zh-CN/gateway/multiple-gateways.md +0 -119
- package/docs/zh-CN/gateway/network-model.md +0 -23
- package/docs/zh-CN/gateway/openai-http-api.md +0 -125
- package/docs/zh-CN/gateway/openresponses-http-api.md +0 -317
- package/docs/zh-CN/gateway/pairing.md +0 -99
- package/docs/zh-CN/gateway/protocol.md +0 -220
- package/docs/zh-CN/gateway/remote-gateway-readme.md +0 -164
- package/docs/zh-CN/gateway/remote.md +0 -133
- package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -135
- package/docs/zh-CN/gateway/sandboxing.md +0 -188
- package/docs/zh-CN/gateway/security/index.md +0 -772
- package/docs/zh-CN/gateway/tailscale.md +0 -124
- package/docs/zh-CN/gateway/tools-invoke-http-api.md +0 -92
- package/docs/zh-CN/gateway/troubleshooting.md +0 -758
- package/docs/zh-CN/help/debugging.md +0 -160
- package/docs/zh-CN/help/environment.md +0 -88
- package/docs/zh-CN/help/faq.md +0 -2613
- package/docs/zh-CN/help/index.md +0 -28
- package/docs/zh-CN/help/scripts.md +0 -35
- package/docs/zh-CN/help/testing.md +0 -375
- package/docs/zh-CN/help/troubleshooting.md +0 -104
- package/docs/zh-CN/index.md +0 -183
- package/docs/zh-CN/install/ansible.md +0 -214
- package/docs/zh-CN/install/bun.md +0 -65
- package/docs/zh-CN/install/development-channels.md +0 -81
- package/docs/zh-CN/install/docker.md +0 -525
- package/docs/zh-CN/install/exe-dev.md +0 -127
- package/docs/zh-CN/install/fly.md +0 -476
- package/docs/zh-CN/install/gcp.md +0 -509
- package/docs/zh-CN/install/hetzner.md +0 -336
- package/docs/zh-CN/install/index.md +0 -193
- package/docs/zh-CN/install/installer.md +0 -128
- package/docs/zh-CN/install/macos-vm.md +0 -288
- package/docs/zh-CN/install/migrating.md +0 -199
- package/docs/zh-CN/install/nix.md +0 -99
- package/docs/zh-CN/install/node.md +0 -8
- package/docs/zh-CN/install/northflank.mdx +0 -56
- package/docs/zh-CN/install/railway.mdx +0 -102
- package/docs/zh-CN/install/render.mdx +0 -168
- package/docs/zh-CN/install/uninstall.md +0 -135
- package/docs/zh-CN/install/updating.md +0 -233
- package/docs/zh-CN/logging.md +0 -329
- package/docs/zh-CN/network.md +0 -59
- package/docs/zh-CN/nodes/audio.md +0 -120
- package/docs/zh-CN/nodes/camera.md +0 -162
- package/docs/zh-CN/nodes/images.md +0 -79
- package/docs/zh-CN/nodes/index.md +0 -348
- package/docs/zh-CN/nodes/location-command.md +0 -120
- package/docs/zh-CN/nodes/media-understanding.md +0 -380
- package/docs/zh-CN/nodes/talk.md +0 -97
- package/docs/zh-CN/nodes/troubleshooting.md +0 -8
- package/docs/zh-CN/nodes/voicewake.md +0 -72
- package/docs/zh-CN/perplexity.md +0 -84
- package/docs/zh-CN/pi-dev.md +0 -77
- package/docs/zh-CN/pi.md +0 -617
- package/docs/zh-CN/platforms/android.md +0 -155
- package/docs/zh-CN/platforms/digitalocean.md +0 -268
- package/docs/zh-CN/platforms/index.md +0 -60
- package/docs/zh-CN/platforms/ios.md +0 -114
- package/docs/zh-CN/platforms/linux.md +0 -101
- package/docs/zh-CN/platforms/mac/bundled-gateway.md +0 -75
- package/docs/zh-CN/platforms/mac/canvas.md +0 -128
- package/docs/zh-CN/platforms/mac/child-process.md +0 -73
- package/docs/zh-CN/platforms/mac/dev-setup.md +0 -109
- package/docs/zh-CN/platforms/mac/health.md +0 -41
- package/docs/zh-CN/platforms/mac/icon.md +0 -38
- package/docs/zh-CN/platforms/mac/logging.md +0 -64
- package/docs/zh-CN/platforms/mac/menu-bar.md +0 -88
- package/docs/zh-CN/platforms/mac/peekaboo.md +0 -62
- package/docs/zh-CN/platforms/mac/permissions.md +0 -46
- package/docs/zh-CN/platforms/mac/release.md +0 -92
- package/docs/zh-CN/platforms/mac/remote.md +0 -90
- package/docs/zh-CN/platforms/mac/signing.md +0 -54
- package/docs/zh-CN/platforms/mac/skills.md +0 -40
- package/docs/zh-CN/platforms/mac/voice-overlay.md +0 -67
- package/docs/zh-CN/platforms/mac/voicewake.md +0 -73
- package/docs/zh-CN/platforms/mac/webchat.md +0 -43
- package/docs/zh-CN/platforms/mac/xpc.md +0 -68
- package/docs/zh-CN/platforms/macos.md +0 -193
- package/docs/zh-CN/platforms/oracle.md +0 -310
- package/docs/zh-CN/platforms/raspberry-pi.md +0 -365
- package/docs/zh-CN/platforms/windows.md +0 -156
- package/docs/zh-CN/plugins/agent-tools.md +0 -99
- package/docs/zh-CN/plugins/manifest.md +0 -68
- package/docs/zh-CN/plugins/voice-call.md +0 -250
- package/docs/zh-CN/plugins/zalouser.md +0 -88
- package/docs/zh-CN/prose.md +0 -141
- package/docs/zh-CN/providers/anthropic.md +0 -159
- package/docs/zh-CN/providers/bedrock.md +0 -170
- package/docs/zh-CN/providers/claude-max-api-proxy.md +0 -155
- package/docs/zh-CN/providers/deepgram.md +0 -97
- package/docs/zh-CN/providers/github-copilot.md +0 -67
- package/docs/zh-CN/providers/glm.md +0 -39
- package/docs/zh-CN/providers/index.md +0 -66
- package/docs/zh-CN/providers/minimax.md +0 -206
- package/docs/zh-CN/providers/models.md +0 -55
- package/docs/zh-CN/providers/moonshot.md +0 -145
- package/docs/zh-CN/providers/ollama.md +0 -230
- package/docs/zh-CN/providers/openai.md +0 -68
- package/docs/zh-CN/providers/opencode.md +0 -41
- package/docs/zh-CN/providers/openrouter.md +0 -43
- package/docs/zh-CN/providers/qianfan.md +0 -8
- package/docs/zh-CN/providers/qwen.md +0 -55
- package/docs/zh-CN/providers/synthetic.md +0 -102
- package/docs/zh-CN/providers/venice.md +0 -274
- package/docs/zh-CN/providers/vercel-ai-gateway.md +0 -57
- package/docs/zh-CN/providers/xiaomi.md +0 -68
- package/docs/zh-CN/providers/zai.md +0 -41
- package/docs/zh-CN/refactor/exec-host.md +0 -323
- package/docs/zh-CN/refactor/outbound-session-mirroring.md +0 -90
- package/docs/zh-CN/refactor/plugin-sdk.md +0 -221
- package/docs/zh-CN/refactor/strict-config.md +0 -100
- package/docs/zh-CN/refactor/syminet.md +0 -424
- package/docs/zh-CN/reference/AGENTS.default.md +0 -130
- package/docs/zh-CN/reference/RELEASING.md +0 -122
- package/docs/zh-CN/reference/api-usage-costs.md +0 -136
- package/docs/zh-CN/reference/credits.md +0 -34
- package/docs/zh-CN/reference/device-models.md +0 -54
- package/docs/zh-CN/reference/rpc.md +0 -48
- package/docs/zh-CN/reference/session-management-compaction.md +0 -286
- package/docs/zh-CN/reference/templates/AGENTS.dev.md +0 -89
- package/docs/zh-CN/reference/templates/AGENTS.md +0 -234
- package/docs/zh-CN/reference/templates/BOOT.md +0 -17
- package/docs/zh-CN/reference/templates/BOOTSTRAP.md +0 -68
- package/docs/zh-CN/reference/templates/IDENTITY.dev.md +0 -54
- package/docs/zh-CN/reference/templates/IDENTITY.md +0 -36
- package/docs/zh-CN/reference/templates/SYMICORE.dev.md +0 -83
- package/docs/zh-CN/reference/templates/SYMICORE.md +0 -49
- package/docs/zh-CN/reference/templates/SYMIPULSE.md +0 -69
- package/docs/zh-CN/reference/templates/TOOLS.dev.md +0 -31
- package/docs/zh-CN/reference/templates/TOOLS.md +0 -53
- package/docs/zh-CN/reference/templates/USER.dev.md +0 -25
- package/docs/zh-CN/reference/templates/USER.md +0 -30
- package/docs/zh-CN/reference/test.md +0 -57
- package/docs/zh-CN/reference/token-use.md +0 -119
- package/docs/zh-CN/reference/transcript-hygiene.md +0 -109
- package/docs/zh-CN/reference/wizard.md +0 -9
- package/docs/zh-CN/security/formal-verification.md +0 -171
- package/docs/zh-CN/start/bootstrapping.md +0 -9
- package/docs/zh-CN/start/docs-directory.md +0 -69
- package/docs/zh-CN/start/getting-started.md +0 -201
- package/docs/zh-CN/start/hubs.md +0 -199
- package/docs/zh-CN/start/lore.md +0 -223
- package/docs/zh-CN/start/onboarding.md +0 -105
- package/docs/zh-CN/start/quickstart.md +0 -88
- package/docs/zh-CN/start/setup.md +0 -151
- package/docs/zh-CN/start/showcase.md +0 -421
- package/docs/zh-CN/start/symi.md +0 -244
- package/docs/zh-CN/start/wizard.md +0 -326
- package/docs/zh-CN/tools/agent-send.md +0 -58
- package/docs/zh-CN/tools/apply-patch.md +0 -57
- package/docs/zh-CN/tools/browser-linux-troubleshooting.md +0 -144
- package/docs/zh-CN/tools/browser-login.md +0 -75
- package/docs/zh-CN/tools/browser.md +0 -553
- package/docs/zh-CN/tools/chrome-extension.md +0 -183
- package/docs/zh-CN/tools/creating-skills.md +0 -61
- package/docs/zh-CN/tools/elevated.md +0 -62
- package/docs/zh-CN/tools/exec-approvals.md +0 -233
- package/docs/zh-CN/tools/exec.md +0 -169
- package/docs/zh-CN/tools/firecrawl.md +0 -68
- package/docs/zh-CN/tools/index.md +0 -508
- package/docs/zh-CN/tools/llm-task.md +0 -117
- package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +0 -400
- package/docs/zh-CN/tools/pipeline.md +0 -349
- package/docs/zh-CN/tools/plugin.md +0 -639
- package/docs/zh-CN/tools/reactions.md +0 -28
- package/docs/zh-CN/tools/skills-config.md +0 -78
- package/docs/zh-CN/tools/skills.md +0 -279
- package/docs/zh-CN/tools/slash-commands.md +0 -196
- package/docs/zh-CN/tools/subagents.md +0 -167
- package/docs/zh-CN/tools/symihub.md +0 -209
- package/docs/zh-CN/tools/thinking.md +0 -80
- package/docs/zh-CN/tools/web.md +0 -257
- package/docs/zh-CN/tts.md +0 -373
- package/docs/zh-CN/vps.md +0 -47
- package/docs/zh-CN/web/control-ui.md +0 -190
- package/docs/zh-CN/web/dashboard.md +0 -53
- package/docs/zh-CN/web/index.md +0 -118
- package/docs/zh-CN/web/tui.md +0 -166
- package/docs/zh-CN/web/webchat.md +0 -56
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Chrome extension: let Symi drive your existing Chrome tab"
|
|
3
|
-
read_when:
|
|
4
|
-
- You want the agent to drive an existing Chrome tab (toolbar button)
|
|
5
|
-
- You need remote Gateway + local browser automation via Tailscale
|
|
6
|
-
- You want to understand the security implications of browser takeover
|
|
7
|
-
title: "Chrome Extension"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Chrome extension (browser relay)
|
|
11
|
-
|
|
12
|
-
The Symi Chrome extension lets the agent control your **existing Chrome tabs** (your normal Chrome window) instead of launching a separate symi-managed Chrome profile.
|
|
13
|
-
|
|
14
|
-
Attach/detach happens via a **single Chrome toolbar button**.
|
|
15
|
-
|
|
16
|
-
## What it is (concept)
|
|
17
|
-
|
|
18
|
-
There are three parts:
|
|
19
|
-
|
|
20
|
-
- **Browser control service** (Gateway or node): the API the agent/tool calls (via the Gateway)
|
|
21
|
-
- **Local relay server** (loopback CDP): bridges between the control server and the extension (`http://127.0.0.1:18792` by default)
|
|
22
|
-
- **Chrome MV3 extension**: attaches to the active tab using `chrome.debugger` and pipes CDP messages to the relay
|
|
23
|
-
|
|
24
|
-
Symi then controls the attached tab through the normal `browser` tool surface (selecting the right profile).
|
|
25
|
-
|
|
26
|
-
## Install / load (unpacked)
|
|
27
|
-
|
|
28
|
-
1. Install the extension to a stable local path:
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
symi browser extension install
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
2. Print the installed extension directory path:
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
symi browser extension path
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
3. Chrome → `chrome://extensions`
|
|
41
|
-
|
|
42
|
-
- Enable “Developer mode”
|
|
43
|
-
- “Load unpacked” → select the directory printed above
|
|
44
|
-
|
|
45
|
-
4. Pin the extension.
|
|
46
|
-
|
|
47
|
-
## Updates (no build step)
|
|
48
|
-
|
|
49
|
-
The extension ships inside the Symi release (npm package) as static files. There is no separate “build” step.
|
|
50
|
-
|
|
51
|
-
After upgrading Symi:
|
|
52
|
-
|
|
53
|
-
- Re-run `symi browser extension install` to refresh the installed files under your Symi state directory.
|
|
54
|
-
- Chrome → `chrome://extensions` → click “Reload” on the extension.
|
|
55
|
-
|
|
56
|
-
## Use it (set gateway token once)
|
|
57
|
-
|
|
58
|
-
Symi ships with a built-in browser profile named `chrome` that targets the extension relay on the default port.
|
|
59
|
-
|
|
60
|
-
Before first attach, open extension Options and set:
|
|
61
|
-
|
|
62
|
-
- `Port` (default `18792`)
|
|
63
|
-
- `Gateway token` (must match `gateway.auth.token` / `SYMI_GATEWAY_TOKEN`)
|
|
64
|
-
|
|
65
|
-
Use it:
|
|
66
|
-
|
|
67
|
-
- CLI: `symi browser --browser-profile chrome tabs`
|
|
68
|
-
- Agent tool: `browser` with `profile="chrome"`
|
|
69
|
-
|
|
70
|
-
If you want a different name or a different relay port, create your own profile:
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
symi browser create-profile \
|
|
74
|
-
--name my-chrome \
|
|
75
|
-
--driver extension \
|
|
76
|
-
--cdp-url http://127.0.0.1:18792 \
|
|
77
|
-
--color "#00AA00"
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
## Attach / detach (toolbar button)
|
|
81
|
-
|
|
82
|
-
- Open the tab you want Symi to control.
|
|
83
|
-
- Click the extension icon.
|
|
84
|
-
- Badge shows `ON` when attached.
|
|
85
|
-
- Click again to detach.
|
|
86
|
-
|
|
87
|
-
## Which tab does it control?
|
|
88
|
-
|
|
89
|
-
- It does **not** automatically control “whatever tab you’re looking at”.
|
|
90
|
-
- It controls **only the tab(s) you explicitly attached** by clicking the toolbar button.
|
|
91
|
-
- To switch: open the other tab and click the extension icon there.
|
|
92
|
-
|
|
93
|
-
## Badge + common errors
|
|
94
|
-
|
|
95
|
-
- `ON`: attached; Symi can drive that tab.
|
|
96
|
-
- `…`: connecting to the local relay.
|
|
97
|
-
- `!`: relay not reachable/authenticated (most common: relay server not running, or gateway token missing/wrong).
|
|
98
|
-
|
|
99
|
-
If you see `!`:
|
|
100
|
-
|
|
101
|
-
- Make sure the Gateway is running locally (default setup), or run a node host on this machine if the Gateway runs elsewhere.
|
|
102
|
-
- Open the extension Options page; it validates relay reachability + gateway-token auth.
|
|
103
|
-
|
|
104
|
-
## Remote Gateway (use a node host)
|
|
105
|
-
|
|
106
|
-
### Local Gateway (same machine as Chrome) — usually **no extra steps**
|
|
107
|
-
|
|
108
|
-
If the Gateway runs on the same machine as Chrome, it starts the browser control service on loopback
|
|
109
|
-
and auto-starts the relay server. The extension talks to the local relay; the CLI/tool calls go to the Gateway.
|
|
110
|
-
|
|
111
|
-
### Remote Gateway (Gateway runs elsewhere) — **run a node host**
|
|
112
|
-
|
|
113
|
-
If your Gateway runs on another machine, start a node host on the machine that runs Chrome.
|
|
114
|
-
The Gateway will proxy browser actions to that node; the extension + relay stay local to the browser machine.
|
|
115
|
-
|
|
116
|
-
If multiple nodes are connected, pin one with `gateway.nodes.browser.node` or set `gateway.nodes.browser.mode`.
|
|
117
|
-
|
|
118
|
-
## Sandboxing (tool containers)
|
|
119
|
-
|
|
120
|
-
If your agent session is sandboxed (`agents.defaults.sandbox.mode != "off"`), the `browser` tool can be restricted:
|
|
121
|
-
|
|
122
|
-
- By default, sandboxed sessions often target the **sandbox browser** (`target="sandbox"`), not your host Chrome.
|
|
123
|
-
- Chrome extension relay takeover requires controlling the **host** browser control server.
|
|
124
|
-
|
|
125
|
-
Options:
|
|
126
|
-
|
|
127
|
-
- Easiest: use the extension from a **non-sandboxed** session/agent.
|
|
128
|
-
- Or allow host browser control for sandboxed sessions:
|
|
129
|
-
|
|
130
|
-
```json5
|
|
131
|
-
{
|
|
132
|
-
agents: {
|
|
133
|
-
defaults: {
|
|
134
|
-
sandbox: {
|
|
135
|
-
browser: {
|
|
136
|
-
allowHostControl: true,
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
},
|
|
141
|
-
}
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
Then ensure the tool isn’t denied by tool policy, and (if needed) call `browser` with `target="host"`.
|
|
145
|
-
|
|
146
|
-
Debugging: `symi sandbox explain`
|
|
147
|
-
|
|
148
|
-
## Remote access tips
|
|
149
|
-
|
|
150
|
-
- Keep the Gateway and node host on the same tailnet; avoid exposing relay ports to LAN or public Internet.
|
|
151
|
-
- Pair nodes intentionally; disable browser proxy routing if you don’t want remote control (`gateway.nodes.browser.mode="off"`).
|
|
152
|
-
|
|
153
|
-
## How “extension path” works
|
|
154
|
-
|
|
155
|
-
`symi browser extension path` prints the **installed** on-disk directory containing the extension files.
|
|
156
|
-
|
|
157
|
-
The CLI intentionally does **not** print a `node_modules` path. Always run `symi browser extension install` first to copy the extension to a stable location under your Symi state directory.
|
|
158
|
-
|
|
159
|
-
If you move or delete that install directory, Chrome will mark the extension as broken until you reload it from a valid path.
|
|
160
|
-
|
|
161
|
-
## Security implications (read this)
|
|
162
|
-
|
|
163
|
-
This is powerful and risky. Treat it like giving the model “hands on your browser”.
|
|
164
|
-
|
|
165
|
-
- The extension uses Chrome’s debugger API (`chrome.debugger`). When attached, the model can:
|
|
166
|
-
- click/type/navigate in that tab
|
|
167
|
-
- read page content
|
|
168
|
-
- access whatever the tab’s logged-in session can access
|
|
169
|
-
- **This is not isolated** like the dedicated symi-managed profile.
|
|
170
|
-
- If you attach to your daily-driver profile/tab, you’re granting access to that account state.
|
|
171
|
-
|
|
172
|
-
Recommendations:
|
|
173
|
-
|
|
174
|
-
- Prefer a dedicated Chrome profile (separate from your personal browsing) for extension relay usage.
|
|
175
|
-
- Keep the Gateway and any node hosts tailnet-only; rely on Gateway auth + node pairing.
|
|
176
|
-
- Avoid exposing relay ports over LAN (`0.0.0.0`) and avoid Funnel (public).
|
|
177
|
-
- The relay blocks non-extension origins and requires gateway-token auth for both `/cdp` and `/extension`.
|
|
178
|
-
|
|
179
|
-
Related:
|
|
180
|
-
|
|
181
|
-
- Browser tool overview: [Browser](/tools/browser)
|
|
182
|
-
- Security audit: [Security](/gateway/security)
|
|
183
|
-
- Tailscale setup: [Tailscale](/gateway/tailscale)
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Creating Skills"
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Creating Custom Skills 🛠
|
|
6
|
-
|
|
7
|
-
Symi is designed to be easily extensible. "Skills" are the primary way to add new capabilities to your assistant.
|
|
8
|
-
|
|
9
|
-
## What is a Skill?
|
|
10
|
-
|
|
11
|
-
A skill is a directory containing a `SKILL.md` file (which provides instructions and tool definitions to the LLM) and optionally some scripts or resources.
|
|
12
|
-
|
|
13
|
-
## Step-by-Step: Your First Skill
|
|
14
|
-
|
|
15
|
-
### 1. Create the Directory
|
|
16
|
-
|
|
17
|
-
Skills live in your workspace, usually `~/.symi/workspace/skills/`. Create a new folder for your skill:
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
mkdir -p ~/.symi/workspace/skills/hello-world
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### 2. Define the `SKILL.md`
|
|
24
|
-
|
|
25
|
-
Create a `SKILL.md` file in that directory. This file uses YAML frontmatter for metadata and Markdown for instructions.
|
|
26
|
-
|
|
27
|
-
```markdown
|
|
28
|
-
---
|
|
29
|
-
name: hello_world
|
|
30
|
-
description: A simple skill that says hello.
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
# Hello World Skill
|
|
34
|
-
|
|
35
|
-
When the user asks for a greeting, use the `echo` tool to say "Hello from your custom skill!".
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### 3. Add Tools (Optional)
|
|
39
|
-
|
|
40
|
-
You can define custom tools in the frontmatter or instruct the agent to use existing system tools (like `bash` or `browser`).
|
|
41
|
-
|
|
42
|
-
### 4. Refresh Symi
|
|
43
|
-
|
|
44
|
-
Ask your agent to "refresh skills" or restart the gateway. Symi will discover the new directory and index the `SKILL.md`.
|
|
45
|
-
|
|
46
|
-
## Best Practices
|
|
47
|
-
|
|
48
|
-
- **Be Concise**: Instruct the model on _what_ to do, not how to be an AI.
|
|
49
|
-
- **Safety First**: If your skill uses `bash`, ensure the prompts don't allow arbitrary command injection from untrusted user input.
|
|
50
|
-
- **Test Locally**: Use `symi agent --message "use my new skill"` to test.
|
|
51
|
-
|
|
52
|
-
## Shared Skills
|
|
53
|
-
|
|
54
|
-
You can also browse and contribute skills to [SymiHub](https://symihub.com).
|
package/docs/tools/elevated.md
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Elevated exec mode and /elevated directives"
|
|
3
|
-
read_when:
|
|
4
|
-
- Adjusting elevated mode defaults, allowlists, or slash command behavior
|
|
5
|
-
title: "Elevated Mode"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Elevated Mode (/elevated directives)
|
|
9
|
-
|
|
10
|
-
## What it does
|
|
11
|
-
|
|
12
|
-
- `/elevated on` runs on the gateway host and keeps exec approvals (same as `/elevated ask`).
|
|
13
|
-
- `/elevated full` runs on the gateway host **and** auto-approves exec (skips exec approvals).
|
|
14
|
-
- `/elevated ask` runs on the gateway host but keeps exec approvals (same as `/elevated on`).
|
|
15
|
-
- `on`/`ask` do **not** force `exec.security=full`; configured security/ask policy still applies.
|
|
16
|
-
- Only changes behavior when the agent is **sandboxed** (otherwise exec already runs on the host).
|
|
17
|
-
- Directive forms: `/elevated on|off|ask|full`, `/elev on|off|ask|full`.
|
|
18
|
-
- Only `on|off|ask|full` are accepted; anything else returns a hint and does not change state.
|
|
19
|
-
|
|
20
|
-
## What it controls (and what it doesn’t)
|
|
21
|
-
|
|
22
|
-
- **Availability gates**: `tools.elevated` is the global baseline. `agents.list[].tools.elevated` can further restrict elevated per agent (both must allow).
|
|
23
|
-
- **Per-session state**: `/elevated on|off|ask|full` sets the elevated level for the current session key.
|
|
24
|
-
- **Inline directive**: `/elevated on|ask|full` inside a message applies to that message only.
|
|
25
|
-
- **Groups**: In group chats, elevated directives are only honored when the agent is mentioned. Command-only messages that bypass mention requirements are treated as mentioned.
|
|
26
|
-
- **Host execution**: elevated forces `exec` onto the gateway host; `full` also sets `security=full`.
|
|
27
|
-
- **Approvals**: `full` skips exec approvals; `on`/`ask` honor them when allowlist/ask rules require.
|
|
28
|
-
- **Unsandboxed agents**: no-op for location; only affects gating, logging, and status.
|
|
29
|
-
- **Tool policy still applies**: if `exec` is denied by tool policy, elevated cannot be used.
|
|
30
|
-
- **Separate from `/exec`**: `/exec` adjusts per-session defaults for authorized senders and does not require elevated.
|
|
31
|
-
|
|
32
|
-
## Resolution order
|
|
33
|
-
|
|
34
|
-
1. Inline directive on the message (applies only to that message).
|
|
35
|
-
2. Session override (set by sending a directive-only message).
|
|
36
|
-
3. Global default (`agents.defaults.elevatedDefault` in config).
|
|
37
|
-
|
|
38
|
-
## Setting a session default
|
|
39
|
-
|
|
40
|
-
- Send a message that is **only** the directive (whitespace allowed), e.g. `/elevated full`.
|
|
41
|
-
- Confirmation reply is sent (`Elevated mode set to full...` / `Elevated mode disabled.`).
|
|
42
|
-
- If elevated access is disabled or the sender is not on the approved allowlist, the directive replies with an actionable error and does not change session state.
|
|
43
|
-
- Send `/elevated` (or `/elevated:`) with no argument to see the current elevated level.
|
|
44
|
-
|
|
45
|
-
## Availability + allowlists
|
|
46
|
-
|
|
47
|
-
- Feature gate: `tools.elevated.enabled` (default can be off via config even if the code supports it).
|
|
48
|
-
- Per-agent gate: `agents.list[].tools.elevated.enabled` (optional; can only further restrict).
|
|
49
|
-
- Per-agent allowlist: `agents.list[].tools.elevated.allowFrom` (optional; when set, the sender must match **both** global + per-agent allowlists).
|
|
50
|
-
- All gates must pass; otherwise elevated is treated as unavailable.
|
|
51
|
-
|
|
52
|
-
## Logging + status
|
|
53
|
-
|
|
54
|
-
- Elevated exec calls are logged at info level.
|
|
55
|
-
- Session status includes elevated mode (e.g. `elevated=ask`, `elevated=full`).
|
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Exec approvals, allowlists, and sandbox escape prompts"
|
|
3
|
-
read_when:
|
|
4
|
-
- Configuring exec approvals or allowlists
|
|
5
|
-
- Implementing exec approval UX in the macOS app
|
|
6
|
-
- Reviewing sandbox escape prompts and implications
|
|
7
|
-
title: "Exec Approvals"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Exec approvals
|
|
11
|
-
|
|
12
|
-
Exec approvals are the **companion app / node host guardrail** for letting a sandboxed agent run
|
|
13
|
-
commands on a real host (`gateway` or `node`). Think of it like a safety interlock:
|
|
14
|
-
commands are allowed only when policy + allowlist + (optional) user approval all agree.
|
|
15
|
-
Exec approvals are **in addition** to tool policy and elevated gating (unless elevated is set to `full`, which skips approvals).
|
|
16
|
-
Effective policy is the **stricter** of `tools.exec.*` and approvals defaults; if an approvals field is omitted, the `tools.exec` value is used.
|
|
17
|
-
|
|
18
|
-
If the companion app UI is **not available**, any request that requires a prompt is
|
|
19
|
-
resolved by the **ask fallback** (default: deny).
|
|
20
|
-
|
|
21
|
-
## Where it applies
|
|
22
|
-
|
|
23
|
-
Exec approvals are enforced locally on the execution host:
|
|
24
|
-
|
|
25
|
-
- **gateway host** → `symi` process on the gateway machine
|
|
26
|
-
- **node host** → node runner (macOS companion app or headless node host)
|
|
27
|
-
|
|
28
|
-
macOS split:
|
|
29
|
-
|
|
30
|
-
- **node host service** forwards `system.run` to the **macOS app** over local IPC.
|
|
31
|
-
- **macOS app** enforces approvals + executes the command in UI context.
|
|
32
|
-
|
|
33
|
-
## Settings and storage
|
|
34
|
-
|
|
35
|
-
Approvals live in a local JSON file on the execution host:
|
|
36
|
-
|
|
37
|
-
`~/.symi/exec-approvals.json`
|
|
38
|
-
|
|
39
|
-
Example schema:
|
|
40
|
-
|
|
41
|
-
```json
|
|
42
|
-
{
|
|
43
|
-
"version": 1,
|
|
44
|
-
"socket": {
|
|
45
|
-
"path": "~/.symi/exec-approvals.sock",
|
|
46
|
-
"token": "base64url-token"
|
|
47
|
-
},
|
|
48
|
-
"defaults": {
|
|
49
|
-
"security": "deny",
|
|
50
|
-
"ask": "on-miss",
|
|
51
|
-
"askFallback": "deny",
|
|
52
|
-
"autoAllowSkills": false
|
|
53
|
-
},
|
|
54
|
-
"agents": {
|
|
55
|
-
"main": {
|
|
56
|
-
"security": "allowlist",
|
|
57
|
-
"ask": "on-miss",
|
|
58
|
-
"askFallback": "deny",
|
|
59
|
-
"autoAllowSkills": true,
|
|
60
|
-
"allowlist": [
|
|
61
|
-
{
|
|
62
|
-
"id": "B0C8C0B3-2C2D-4F8A-9A3C-5A4B3C2D1E0F",
|
|
63
|
-
"pattern": "~/Projects/**/bin/rg",
|
|
64
|
-
"lastUsedAt": 1737150000000,
|
|
65
|
-
"lastUsedCommand": "rg -n TODO",
|
|
66
|
-
"lastResolvedPath": "/Users/user/Projects/.../bin/rg"
|
|
67
|
-
}
|
|
68
|
-
]
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
## Policy knobs
|
|
75
|
-
|
|
76
|
-
### Security (`exec.security`)
|
|
77
|
-
|
|
78
|
-
- **deny**: block all host exec requests.
|
|
79
|
-
- **allowlist**: allow only allowlisted commands.
|
|
80
|
-
- **full**: allow everything (equivalent to elevated).
|
|
81
|
-
|
|
82
|
-
### Ask (`exec.ask`)
|
|
83
|
-
|
|
84
|
-
- **off**: never prompt.
|
|
85
|
-
- **on-miss**: prompt only when allowlist does not match.
|
|
86
|
-
- **always**: prompt on every command.
|
|
87
|
-
|
|
88
|
-
### Ask fallback (`askFallback`)
|
|
89
|
-
|
|
90
|
-
If a prompt is required but no UI is reachable, fallback decides:
|
|
91
|
-
|
|
92
|
-
- **deny**: block.
|
|
93
|
-
- **allowlist**: allow only if allowlist matches.
|
|
94
|
-
- **full**: allow.
|
|
95
|
-
|
|
96
|
-
## Allowlist (per agent)
|
|
97
|
-
|
|
98
|
-
Allowlists are **per agent**. If multiple agents exist, switch which agent you’re
|
|
99
|
-
editing in the macOS app. Patterns are **case-insensitive glob matches**.
|
|
100
|
-
Patterns should resolve to **binary paths** (basename-only entries are ignored).
|
|
101
|
-
Legacy `agents.default` entries are migrated to `agents.main` on load.
|
|
102
|
-
|
|
103
|
-
Examples:
|
|
104
|
-
|
|
105
|
-
- `~/Projects/**/bin/peekaboo`
|
|
106
|
-
- `~/.local/bin/*`
|
|
107
|
-
- `/opt/homebrew/bin/rg`
|
|
108
|
-
|
|
109
|
-
Each allowlist entry tracks:
|
|
110
|
-
|
|
111
|
-
- **id** stable UUID used for UI identity (optional)
|
|
112
|
-
- **last used** timestamp
|
|
113
|
-
- **last used command**
|
|
114
|
-
- **last resolved path**
|
|
115
|
-
|
|
116
|
-
## Auto-allow skill CLIs
|
|
117
|
-
|
|
118
|
-
When **Auto-allow skill CLIs** is enabled, executables referenced by known skills
|
|
119
|
-
are treated as allowlisted on nodes (macOS node or headless node host). This uses
|
|
120
|
-
`skills.bins` over the Gateway RPC to fetch the skill bin list. Disable this if you want strict manual allowlists.
|
|
121
|
-
|
|
122
|
-
## Safe bins (stdin-only)
|
|
123
|
-
|
|
124
|
-
`tools.exec.safeBins` defines a small list of **stdin-only** binaries (for example `jq`)
|
|
125
|
-
that can run in allowlist mode **without** explicit allowlist entries. Safe bins reject
|
|
126
|
-
positional file args and path-like tokens, so they can only operate on the incoming stream.
|
|
127
|
-
Validation is deterministic from argv shape only (no host filesystem existence checks), which
|
|
128
|
-
prevents file-existence oracle behavior from allow/deny differences.
|
|
129
|
-
File-oriented options are denied for default safe bins (for example `sort -o`, `sort --output`,
|
|
130
|
-
`sort --files0-from`, `wc --files0-from`, `jq -f/--from-file`, `grep -f/--file`).
|
|
131
|
-
Safe bins also enforce explicit per-binary flag policy for options that break stdin-only
|
|
132
|
-
behavior (for example `sort -o/--output` and grep recursive flags).
|
|
133
|
-
Safe bins also force argv tokens to be treated as **literal text** at execution time (no globbing
|
|
134
|
-
and no `$VARS` expansion) for stdin-only segments, so patterns like `*` or `$HOME/...` cannot be
|
|
135
|
-
used to smuggle file reads.
|
|
136
|
-
Safe bins must also resolve from trusted binary directories (system defaults plus the gateway
|
|
137
|
-
process `PATH` at startup). This blocks request-scoped PATH hijacking attempts.
|
|
138
|
-
Shell chaining and redirections are not auto-allowed in allowlist mode.
|
|
139
|
-
|
|
140
|
-
Shell chaining (`&&`, `||`, `;`) is allowed when every top-level segment satisfies the allowlist
|
|
141
|
-
(including safe bins or skill auto-allow). Redirections remain unsupported in allowlist mode.
|
|
142
|
-
Command substitution (`$()` / backticks) is rejected during allowlist parsing, including inside
|
|
143
|
-
double quotes; use single quotes if you need literal `$()` text.
|
|
144
|
-
|
|
145
|
-
Default safe bins: `jq`, `cut`, `uniq`, `head`, `tail`, `tr`, `wc`.
|
|
146
|
-
|
|
147
|
-
`grep` and `sort` are not in the default list. If you opt in, keep explicit allowlist entries for
|
|
148
|
-
their non-stdin workflows.
|
|
149
|
-
For `grep` in safe-bin mode, provide the pattern with `-e`/`--regexp`; positional pattern form is
|
|
150
|
-
rejected so file operands cannot be smuggled as ambiguous positionals.
|
|
151
|
-
|
|
152
|
-
## Control UI editing
|
|
153
|
-
|
|
154
|
-
Use the **Control UI → Nodes → Exec approvals** card to edit defaults, per‑agent
|
|
155
|
-
overrides, and allowlists. Pick a scope (Defaults or an agent), tweak the policy,
|
|
156
|
-
add/remove allowlist patterns, then **Save**. The UI shows **last used** metadata
|
|
157
|
-
per pattern so you can keep the list tidy.
|
|
158
|
-
|
|
159
|
-
The target selector chooses **Gateway** (local approvals) or a **Node**. Nodes
|
|
160
|
-
must advertise `system.execApprovals.get/set` (macOS app or headless node host).
|
|
161
|
-
If a node does not advertise exec approvals yet, edit its local
|
|
162
|
-
`~/.symi/exec-approvals.json` directly.
|
|
163
|
-
|
|
164
|
-
CLI: `symi approvals` supports gateway or node editing (see [Approvals CLI](/cli/approvals)).
|
|
165
|
-
|
|
166
|
-
## Approval flow
|
|
167
|
-
|
|
168
|
-
When a prompt is required, the gateway broadcasts `exec.approval.requested` to operator clients.
|
|
169
|
-
The Control UI and macOS app resolve it via `exec.approval.resolve`, then the gateway forwards the
|
|
170
|
-
approved request to the node host.
|
|
171
|
-
|
|
172
|
-
When approvals are required, the exec tool returns immediately with an approval id. Use that id to
|
|
173
|
-
correlate later system events (`Exec finished` / `Exec denied`). If no decision arrives before the
|
|
174
|
-
timeout, the request is treated as an approval timeout and surfaced as a denial reason.
|
|
175
|
-
|
|
176
|
-
The confirmation dialog includes:
|
|
177
|
-
|
|
178
|
-
- command + args
|
|
179
|
-
- cwd
|
|
180
|
-
- agent id
|
|
181
|
-
- resolved executable path
|
|
182
|
-
- host + policy metadata
|
|
183
|
-
|
|
184
|
-
Actions:
|
|
185
|
-
|
|
186
|
-
- **Allow once** → run now
|
|
187
|
-
- **Always allow** → add to allowlist + run
|
|
188
|
-
- **Deny** → block
|
|
189
|
-
|
|
190
|
-
## Approval forwarding to chat channels
|
|
191
|
-
|
|
192
|
-
You can forward exec approval prompts to any chat channel (including plugin channels) and approve
|
|
193
|
-
them with `/approve`. This uses the normal outbound delivery pipeline.
|
|
194
|
-
|
|
195
|
-
Config:
|
|
196
|
-
|
|
197
|
-
```json5
|
|
198
|
-
{
|
|
199
|
-
approvals: {
|
|
200
|
-
exec: {
|
|
201
|
-
enabled: true,
|
|
202
|
-
mode: "session", // "session" | "targets" | "both"
|
|
203
|
-
agentFilter: ["main"],
|
|
204
|
-
targets: [
|
|
205
|
-
{ channel: "slack", to: "U12345678" },
|
|
206
|
-
{ channel: "telegram", to: "123456789" },
|
|
207
|
-
],
|
|
208
|
-
},
|
|
209
|
-
},
|
|
210
|
-
}
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
Reply in chat:
|
|
214
|
-
|
|
215
|
-
```
|
|
216
|
-
/approve <id> allow-once
|
|
217
|
-
/approve <id> allow-always
|
|
218
|
-
/approve <id> deny
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
### macOS IPC flow
|
|
222
|
-
|
|
223
|
-
```
|
|
224
|
-
Gateway -> Node Service (WS)
|
|
225
|
-
| IPC (UDS + token + HMAC + TTL)
|
|
226
|
-
v
|
|
227
|
-
Mac App (UI + approvals + system.run)
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
Security notes:
|
|
231
|
-
|
|
232
|
-
- Unix socket mode `0600`, token stored in `exec-approvals.json`.
|
|
233
|
-
- Same-UID peer check.
|
|
234
|
-
- Challenge/response (nonce + HMAC token + request hash) + short TTL.
|
|
235
|
-
|
|
236
|
-
## System events
|
|
237
|
-
|
|
238
|
-
Exec lifecycle is surfaced as system messages:
|
|
239
|
-
|
|
240
|
-
- `Exec running` (only if the command exceeds the running notice threshold)
|
|
241
|
-
- `Exec finished`
|
|
242
|
-
- `Exec denied`
|
|
243
|
-
|
|
244
|
-
These are posted to the agent’s session after the node reports the event.
|
|
245
|
-
Gateway-host exec approvals emit the same lifecycle events when the command finishes (and optionally when running longer than the threshold).
|
|
246
|
-
Approval-gated execs reuse the approval id as the `runId` in these messages for easy correlation.
|
|
247
|
-
|
|
248
|
-
## Implications
|
|
249
|
-
|
|
250
|
-
- **full** is powerful; prefer allowlists when possible.
|
|
251
|
-
- **ask** keeps you in the loop while still allowing fast approvals.
|
|
252
|
-
- Per-agent allowlists prevent one agent’s approvals from leaking into others.
|
|
253
|
-
- Approvals only apply to host exec requests from **authorized senders**. Unauthorized senders cannot issue `/exec`.
|
|
254
|
-
- `/exec security=full` is a session-level convenience for authorized operators and skips approvals by design.
|
|
255
|
-
To hard-block host exec, set approvals security to `deny` or deny the `exec` tool via tool policy.
|
|
256
|
-
|
|
257
|
-
Related:
|
|
258
|
-
|
|
259
|
-
- [Exec tool](/tools/exec)
|
|
260
|
-
- [Elevated mode](/tools/elevated)
|
|
261
|
-
- [Skills](/tools/skills)
|