milaidy 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/LICENSE +8 -0
  2. package/README.md +538 -0
  3. package/dist/argv-CfSowvEA.js +63 -0
  4. package/dist/config-B-mboG4v.js +4 -0
  5. package/dist/eliza-CPJjgw-e.js +1491 -0
  6. package/dist/eliza.js +2192 -0
  7. package/dist/entry.js +232 -0
  8. package/dist/index.js +209 -0
  9. package/dist/links-BFKlWqSe.js +15 -0
  10. package/dist/paths-D_yh1DEJ.js +69 -0
  11. package/dist/plugins-cli-B7kSre2c.js +134 -0
  12. package/dist/program-6KwWwKKh.js +510 -0
  13. package/dist/register.agents-CPVmSjMG.js +17 -0
  14. package/dist/register.browser-B2ooXxNx.js +15 -0
  15. package/dist/register.channels-CMYQ6K6Y.js +42 -0
  16. package/dist/register.cron-D91lY1_Y.js +9 -0
  17. package/dist/register.devices-rU5I5L_y.js +13 -0
  18. package/dist/register.gateway-82SLAvw3.js +22 -0
  19. package/dist/register.hooks-B_XTBEkt.js +9 -0
  20. package/dist/register.logs-BgEGcPd8.js +10 -0
  21. package/dist/register.models-BJt9eVgZ.js +26 -0
  22. package/dist/register.nodes-B5xY1s8a.js +9 -0
  23. package/dist/register.skills-SFQqYIhg.js +10 -0
  24. package/dist/register.subclis-uF_AsbWR.js +187 -0
  25. package/dist/run-main-XODklzS-.js +56 -0
  26. package/dist/theme-DBvtuGeq.js +36 -0
  27. package/dist/utils-C1AUpp_V.js +42 -0
  28. package/dist/version-Cpn3yr5D.js +26 -0
  29. package/dist/workspace-Co3Wul2D.js +206 -0
  30. package/dist/workspace-DCA6MNVK.js +350 -0
  31. package/docs/.i18n/README.md +31 -0
  32. package/docs/.i18n/glossary.zh-CN.json +210 -0
  33. package/docs/.i18n/zh-CN.tm.jsonl +1329 -0
  34. package/docs/CNAME +1 -0
  35. package/docs/automation/cron-jobs.md +468 -0
  36. package/docs/automation/cron-vs-heartbeat.md +254 -0
  37. package/docs/automation/gmail-pubsub.md +256 -0
  38. package/docs/automation/poll.md +69 -0
  39. package/docs/automation/webhook.md +163 -0
  40. package/docs/bedrock.md +176 -0
  41. package/docs/brave-search.md +41 -0
  42. package/docs/broadcast-groups.md +442 -0
  43. package/docs/cli/acp.md +170 -0
  44. package/docs/cli/agent.md +24 -0
  45. package/docs/cli/agents.md +75 -0
  46. package/docs/cli/approvals.md +50 -0
  47. package/docs/cli/browser.md +107 -0
  48. package/docs/cli/channels.md +79 -0
  49. package/docs/cli/config.md +50 -0
  50. package/docs/cli/configure.md +33 -0
  51. package/docs/cli/cron.md +42 -0
  52. package/docs/cli/dashboard.md +16 -0
  53. package/docs/cli/devices.md +67 -0
  54. package/docs/cli/directory.md +63 -0
  55. package/docs/cli/dns.md +23 -0
  56. package/docs/cli/docs.md +15 -0
  57. package/docs/cli/doctor.md +41 -0
  58. package/docs/cli/gateway.md +199 -0
  59. package/docs/cli/health.md +21 -0
  60. package/docs/cli/hooks.md +291 -0
  61. package/docs/cli/index.md +1029 -0
  62. package/docs/cli/logs.md +24 -0
  63. package/docs/cli/memory.md +45 -0
  64. package/docs/cli/message.md +239 -0
  65. package/docs/cli/models.md +79 -0
  66. package/docs/cli/node.md +112 -0
  67. package/docs/cli/nodes.md +73 -0
  68. package/docs/cli/onboard.md +29 -0
  69. package/docs/cli/pairing.md +21 -0
  70. package/docs/cli/plugins.md +62 -0
  71. package/docs/cli/reset.md +17 -0
  72. package/docs/cli/sandbox.md +152 -0
  73. package/docs/cli/security.md +26 -0
  74. package/docs/cli/sessions.md +16 -0
  75. package/docs/cli/setup.md +29 -0
  76. package/docs/cli/skills.md +26 -0
  77. package/docs/cli/status.md +26 -0
  78. package/docs/cli/system.md +60 -0
  79. package/docs/cli/tui.md +23 -0
  80. package/docs/cli/uninstall.md +17 -0
  81. package/docs/cli/update.md +98 -0
  82. package/docs/cli/voicecall.md +34 -0
  83. package/docs/cli/webhooks.md +25 -0
  84. package/docs/concepts/agent-loop.md +146 -0
  85. package/docs/concepts/agent-workspace.md +229 -0
  86. package/docs/concepts/agent.md +122 -0
  87. package/docs/concepts/architecture.md +129 -0
  88. package/docs/concepts/channel-routing.md +114 -0
  89. package/docs/concepts/compaction.md +61 -0
  90. package/docs/concepts/context.md +159 -0
  91. package/docs/concepts/features.md +53 -0
  92. package/docs/concepts/group-messages.md +84 -0
  93. package/docs/concepts/groups.md +373 -0
  94. package/docs/concepts/markdown-formatting.md +130 -0
  95. package/docs/concepts/memory.md +546 -0
  96. package/docs/concepts/messages.md +154 -0
  97. package/docs/concepts/model-failover.md +149 -0
  98. package/docs/concepts/model-providers.md +315 -0
  99. package/docs/concepts/models.md +208 -0
  100. package/docs/concepts/multi-agent.md +376 -0
  101. package/docs/concepts/oauth.md +145 -0
  102. package/docs/concepts/plugins.md +454 -0
  103. package/docs/concepts/presence.md +102 -0
  104. package/docs/concepts/queue.md +89 -0
  105. package/docs/concepts/retry.md +69 -0
  106. package/docs/concepts/secrets.md +300 -0
  107. package/docs/concepts/session-pruning.md +122 -0
  108. package/docs/concepts/session-tool.md +193 -0
  109. package/docs/concepts/session.md +188 -0
  110. package/docs/concepts/sessions.md +10 -0
  111. package/docs/concepts/skills.md +392 -0
  112. package/docs/concepts/streaming.md +135 -0
  113. package/docs/concepts/system-prompt.md +114 -0
  114. package/docs/concepts/timezone.md +91 -0
  115. package/docs/concepts/typebox.md +289 -0
  116. package/docs/concepts/typing-indicators.md +68 -0
  117. package/docs/concepts/usage-tracking.md +35 -0
  118. package/docs/custom.css +4 -0
  119. package/docs/date-time.md +128 -0
  120. package/docs/debugging.md +162 -0
  121. package/docs/docs.json +1599 -0
  122. package/docs/environment.md +81 -0
  123. package/docs/hooks.md +876 -0
  124. package/docs/index.md +179 -0
  125. package/docs/install/ansible.md +208 -0
  126. package/docs/install/bun.md +59 -0
  127. package/docs/install/development-channels.md +75 -0
  128. package/docs/install/docker.md +567 -0
  129. package/docs/install/index.md +185 -0
  130. package/docs/install/installer.md +123 -0
  131. package/docs/install/migrating.md +192 -0
  132. package/docs/install/nix.md +96 -0
  133. package/docs/install/node.md +78 -0
  134. package/docs/install/uninstall.md +128 -0
  135. package/docs/install/updating.md +228 -0
  136. package/docs/logging.md +350 -0
  137. package/docs/multi-agent-sandbox-tools.md +395 -0
  138. package/docs/network.md +54 -0
  139. package/docs/nodes/audio.md +114 -0
  140. package/docs/nodes/camera.md +156 -0
  141. package/docs/nodes/images.md +72 -0
  142. package/docs/nodes/index.md +341 -0
  143. package/docs/nodes/location-command.md +113 -0
  144. package/docs/nodes/media-understanding.md +379 -0
  145. package/docs/nodes/talk.md +90 -0
  146. package/docs/nodes/voicewake.md +65 -0
  147. package/docs/northflank.mdx +53 -0
  148. package/docs/perplexity.md +80 -0
  149. package/docs/platforms/android.md +129 -0
  150. package/docs/platforms/digitalocean.md +262 -0
  151. package/docs/platforms/exe-dev.md +125 -0
  152. package/docs/platforms/fly.md +486 -0
  153. package/docs/platforms/gcp.md +503 -0
  154. package/docs/platforms/hetzner.md +330 -0
  155. package/docs/platforms/index.md +53 -0
  156. package/docs/platforms/ios.md +106 -0
  157. package/docs/platforms/linux.md +94 -0
  158. package/docs/platforms/mac/bundled-gateway.md +73 -0
  159. package/docs/platforms/mac/canvas.md +125 -0
  160. package/docs/platforms/mac/child-process.md +69 -0
  161. package/docs/platforms/mac/dev-setup.md +102 -0
  162. package/docs/platforms/mac/health.md +34 -0
  163. package/docs/platforms/mac/icon.md +31 -0
  164. package/docs/platforms/mac/logging.md +57 -0
  165. package/docs/platforms/mac/menu-bar.md +81 -0
  166. package/docs/platforms/mac/peekaboo.md +65 -0
  167. package/docs/platforms/mac/permissions.md +44 -0
  168. package/docs/platforms/mac/release.md +85 -0
  169. package/docs/platforms/mac/remote.md +83 -0
  170. package/docs/platforms/mac/signing.md +47 -0
  171. package/docs/platforms/mac/skills.md +33 -0
  172. package/docs/platforms/mac/voice-overlay.md +60 -0
  173. package/docs/platforms/mac/voicewake.md +67 -0
  174. package/docs/platforms/mac/webchat.md +41 -0
  175. package/docs/platforms/mac/xpc.md +61 -0
  176. package/docs/platforms/macos-vm.md +281 -0
  177. package/docs/platforms/macos.md +203 -0
  178. package/docs/platforms/oracle.md +303 -0
  179. package/docs/platforms/raspberry-pi.md +358 -0
  180. package/docs/platforms/windows.md +159 -0
  181. package/docs/plugin.md +651 -0
  182. package/docs/plugins/agent-tools.md +99 -0
  183. package/docs/plugins/manifest.md +71 -0
  184. package/docs/plugins/voice-call.md +273 -0
  185. package/docs/plugins/zalouser.md +70 -0
  186. package/docs/providers/anthropic.md +152 -0
  187. package/docs/providers/claude-max-api-proxy.md +148 -0
  188. package/docs/providers/cloudflare-ai-gateway.md +71 -0
  189. package/docs/providers/deepgram.md +93 -0
  190. package/docs/providers/glm.md +33 -0
  191. package/docs/providers/index.md +63 -0
  192. package/docs/providers/minimax.md +208 -0
  193. package/docs/providers/models.md +51 -0
  194. package/docs/providers/moonshot.md +142 -0
  195. package/docs/providers/ollama.md +223 -0
  196. package/docs/providers/openai.md +62 -0
  197. package/docs/providers/opencode.md +36 -0
  198. package/docs/providers/openrouter.md +37 -0
  199. package/docs/providers/qwen.md +53 -0
  200. package/docs/providers/synthetic.md +99 -0
  201. package/docs/providers/venice.md +267 -0
  202. package/docs/providers/vercel-ai-gateway.md +50 -0
  203. package/docs/providers/xiaomi.md +64 -0
  204. package/docs/providers/zai.md +36 -0
  205. package/docs/railway.mdx +99 -0
  206. package/docs/reference/templates/AGENTS.md +9 -0
  207. package/docs/reference/templates/BOOTSTRAP.md +3 -0
  208. package/docs/reference/templates/HEARTBEAT.md +3 -0
  209. package/docs/reference/templates/IDENTITY.md +3 -0
  210. package/docs/reference/templates/TOOLS.md +3 -0
  211. package/docs/reference/templates/USER.md +3 -0
  212. package/docs/render.mdx +165 -0
  213. package/docs/start/docs-directory.md +63 -0
  214. package/docs/start/getting-started.md +212 -0
  215. package/docs/start/milaidy.md +247 -0
  216. package/docs/start/onboarding.md +258 -0
  217. package/docs/start/pairing.md +86 -0
  218. package/docs/start/quickstart.md +81 -0
  219. package/docs/start/setup.md +149 -0
  220. package/docs/start/showcase.md +416 -0
  221. package/docs/start/wizard.md +418 -0
  222. package/docs/testing.md +368 -0
  223. package/docs/token-use.md +112 -0
  224. package/docs/tools/agent-send.md +53 -0
  225. package/docs/tools/apply-patch.md +50 -0
  226. package/docs/tools/browser-linux-troubleshooting.md +139 -0
  227. package/docs/tools/browser-login.md +68 -0
  228. package/docs/tools/browser.md +576 -0
  229. package/docs/tools/chrome-extension.md +178 -0
  230. package/docs/tools/clawhub.md +257 -0
  231. package/docs/tools/creating-skills.md +54 -0
  232. package/docs/tools/elevated.md +57 -0
  233. package/docs/tools/exec-approvals.md +246 -0
  234. package/docs/tools/exec.md +179 -0
  235. package/docs/tools/firecrawl.md +61 -0
  236. package/docs/tools/index.md +508 -0
  237. package/docs/tools/llm-task.md +115 -0
  238. package/docs/tools/reactions.md +22 -0
  239. package/docs/tools/skills-config.md +76 -0
  240. package/docs/tools/skills.md +300 -0
  241. package/docs/tools/slash-commands.md +196 -0
  242. package/docs/tools/subagents.md +151 -0
  243. package/docs/tools/thinking.md +73 -0
  244. package/docs/tools/web.md +261 -0
  245. package/docs/tui.md +159 -0
  246. package/docs/vps.md +43 -0
  247. package/docs/web/control-ui.md +221 -0
  248. package/docs/web/dashboard.md +46 -0
  249. package/docs/web/index.md +116 -0
  250. package/docs/web/webchat.md +49 -0
  251. package/milaidy.mjs +14 -0
  252. package/package.json +271 -0
  253. package/skills/.cache/catalog.json +88519 -0
@@ -0,0 +1,258 @@
1
+ ---
2
+ summary: "Unified onboarding flow for Milaidy powered by ElizaOS"
3
+ read_when:
4
+ - Setting up Milaidy for the first time
5
+ - Understanding the onboarding assistant
6
+ - Implementing auth or identity setup
7
+ title: "Onboarding"
8
+ ---
9
+
10
+ # Onboarding
11
+
12
+ This document describes the unified onboarding flow for Milaidy, powered by the
13
+ ElizaOS runtime. The flow works across CLI, macOS app, and conversational modes,
14
+ providing a smooth "day 0" experience.
15
+
16
+ ## Quick Start
17
+
18
+ The fastest way to get started:
19
+
20
+ ```bash
21
+ # Install Milaidy
22
+ npm install -g milaidy
23
+
24
+ # Run the onboarding wizard
25
+ milaidy onboard
26
+
27
+ # Or start chatting immediately via the Control UI
28
+ milaidy dashboard
29
+ ```
30
+
31
+ ## Onboarding Modes
32
+
33
+ Milaidy supports three onboarding modes:
34
+
35
+ | Mode | Best For | Entry Point |
36
+ |------|----------|-------------|
37
+ | **CLI Interactive** | Terminal users, servers | `milaidy onboard` |
38
+ | **macOS App** | Desktop users | Milaidy.app first launch |
39
+ | **Non-Interactive** | CI/CD, automation | `milaidy onboard --non-interactive` |
40
+
41
+ ## Flow Overview
42
+
43
+ ### Step-by-Step Guide
44
+
45
+ 1. **Welcome + Security Notice**
46
+ - Review the security notice
47
+ - Accept terms to proceed
48
+
49
+ 2. **Gateway Mode Selection**
50
+ - **Local (default):** Gateway runs on your machine
51
+ - **Remote:** Connect to a Gateway elsewhere via SSH/Tailnet
52
+ - **Configure later:** Skip setup temporarily
53
+
54
+ 3. **Model/Auth Configuration**
55
+ - Select your AI provider (Anthropic, OpenAI, Google, etc.)
56
+ - Provide API key or complete OAuth flow
57
+ - Credentials stored securely in `~/.milaidy/credentials/`
58
+
59
+ 4. **Workspace Setup**
60
+ - Default: `~/.milaidy/workspace`
61
+ - Seeds bootstrap files (`AGENTS.md`, `BOOTSTRAP.md`, etc.)
62
+ - Configurable via `--workspace` flag
63
+
64
+ 5. **Gateway Configuration**
65
+ - Port (default: 18789)
66
+ - Bind address (loopback, LAN, or all interfaces)
67
+ - Auth mode (token recommended)
68
+ - Optional Tailscale exposure
69
+
70
+ 6. **Channel Setup** (optional)
71
+ - Telegram, Discord, WhatsApp, Slack, Signal, etc.
72
+ - Each channel prompts for its required credentials
73
+ - See [Channels](/channels) for details
74
+
75
+ 7. **Plugin Auto-Enable**
76
+ - ElizaOS plugins auto-enable based on detected secrets
77
+ - Configure allow/deny lists via `character.json`
78
+ - See [Plugins](/concepts/plugins) for details
79
+
80
+ 8. **Skills Installation** (optional)
81
+ - Install recommended skills from ClawHub
82
+ - Configure node package manager (npm/pnpm)
83
+
84
+ 9. **Daemon Installation** (optional)
85
+ - macOS: LaunchAgent
86
+ - Linux: systemd user unit
87
+
88
+ 10. **Health Check + Finish**
89
+ - Verifies Gateway connectivity
90
+ - Opens onboarding chat session
91
+
92
+ ## CLI Mode
93
+
94
+ ```bash
95
+ # Full interactive onboarding
96
+ milaidy onboard
97
+
98
+ # QuickStart (uses defaults)
99
+ milaidy onboard --quickstart
100
+
101
+ # Advanced (full control over every step)
102
+ milaidy onboard --advanced
103
+
104
+ # Reconfigure existing setup
105
+ milaidy configure
106
+ ```
107
+
108
+ ### Non-Interactive Mode
109
+
110
+ For scripting and automation:
111
+
112
+ ```bash
113
+ milaidy onboard --non-interactive \
114
+ --mode local \
115
+ --auth-choice apiKey \
116
+ --anthropic-api-key "$ANTHROPIC_API_KEY" \
117
+ --gateway-port 18789 \
118
+ --gateway-bind loopback \
119
+ --install-daemon \
120
+ --daemon-runtime node \
121
+ --skip-skills
122
+ ```
123
+
124
+ Add `--json` for machine-readable output.
125
+
126
+ ## macOS App Mode
127
+
128
+ The macOS app provides a native onboarding experience:
129
+
130
+ 1. **Welcome + Security Notice** - SwiftUI native view
131
+ 2. **Gateway Selection** - Local / Remote / Configure later
132
+ 3. **Auth (OAuth)** - Browser-based OAuth with PKCE
133
+ 4. **Setup Wizard** - Gateway-driven (same logic as CLI)
134
+ 5. **Permissions** - TCC prompts (Notifications, Accessibility, etc.)
135
+ 6. **CLI Installation** - Optional global CLI install
136
+ 7. **Onboarding Chat** - Dedicated session for first-run guidance
137
+
138
+ ### macOS Permissions
139
+
140
+ The app requests TCC permissions for:
141
+
142
+ - Notifications
143
+ - Accessibility
144
+ - Screen Recording
145
+ - Microphone / Speech Recognition
146
+ - Automation (AppleScript)
147
+
148
+ ## Conversational Onboarding
149
+
150
+ After initial setup, the agent can guide you through additional configuration
151
+ via natural conversation:
152
+
153
+ ```
154
+ You: I want to set up Telegram
155
+ Agent: I'll help you configure Telegram. First, you'll need a bot token from @BotFather...
156
+ ```
157
+
158
+ The agent uses ElizaOS actions to:
159
+ - Validate credentials
160
+ - Update configuration
161
+ - Test connections
162
+ - Guide troubleshooting
163
+
164
+ ## Agent Bootstrap Ritual
165
+
166
+ On first agent run, Milaidy bootstraps the workspace:
167
+
168
+ 1. Seeds template files:
169
+ - `AGENTS.md` - Agent guidelines
170
+ - `TOOLS.md` - Tool configuration
171
+ - `IDENTITY.md` - Agent identity
172
+ - `USER.md` - User preferences
173
+ - `HEARTBEAT.md` - Heartbeat instructions
174
+ - `MEMORY.md` - Memory workflow
175
+ - `BOOTSTRAP.md` - First-run instructions (removed after onboarding)
176
+
177
+ 2. Runs a short Q&A ritual (one question at a time)
178
+
179
+ 3. Writes personalization to:
180
+ - `IDENTITY.md` - Agent personality
181
+ - `USER.md` - User preferences
182
+
183
+ 4. Removes `BOOTSTRAP.md` when complete (runs once)
184
+
185
+ ## Secret Management
186
+
187
+ During onboarding, secrets are stored in multiple locations:
188
+
189
+ | Location | Purpose |
190
+ |----------|---------|
191
+ | `~/.milaidy/.env` | Environment variables for daemon |
192
+ | `~/.milaidy/credentials/` | OAuth tokens, API keys |
193
+ | `character.settings.secrets` | Per-character secrets |
194
+
195
+ See [Secrets](/concepts/secrets) for canonical key names and validation.
196
+
197
+ ## Remote Mode
198
+
199
+ When connecting to a remote Gateway:
200
+
201
+ 1. Credentials and workspace live **on the remote host**
202
+ 2. Use SSH tunneling or Tailnet for loopback-only Gateways
203
+ 3. Configure via:
204
+ - `~/.milaidy/credentials/oauth.json`
205
+ - `~/.milaidy/agents/<agentId>/agent/auth-profiles.json`
206
+
207
+ Discovery hints:
208
+ - macOS: Bonjour (`dns-sd`)
209
+ - Linux: Avahi (`avahi-browse`)
210
+
211
+ ## Gmail Hooks (Optional)
212
+
213
+ Gmail Pub/Sub setup is a manual step:
214
+
215
+ ```bash
216
+ milaidy webhooks gmail setup --account you@gmail.com
217
+ ```
218
+
219
+ See [Gmail Pub/Sub](/automation/gmail-pubsub) for details.
220
+
221
+ ## Troubleshooting
222
+
223
+ ### Reset Onboarding
224
+
225
+ ```bash
226
+ # Reset config only
227
+ milaidy onboard --reset
228
+
229
+ # Full reset (config + credentials + sessions)
230
+ milaidy doctor --reset
231
+ ```
232
+
233
+ ### Common Issues
234
+
235
+ | Issue | Solution |
236
+ |-------|----------|
237
+ | Gateway won't start | Check port 18789 availability |
238
+ | OAuth fails | Ensure browser can open, paste `code#state` value |
239
+ | Channel not connecting | Verify credentials, run `milaidy channels status` |
240
+ | Skills not loading | Check `skills.entries` in config, run `milaidy doctor` |
241
+
242
+ ### Doctor Command
243
+
244
+ ```bash
245
+ # Diagnose configuration issues
246
+ milaidy doctor
247
+
248
+ # Fix common problems automatically
249
+ milaidy doctor --fix
250
+ ```
251
+
252
+ ## Related Docs
253
+
254
+ - [CLI Wizard](/start/wizard) - Detailed wizard options
255
+ - [Secrets](/concepts/secrets) - Secret key management
256
+ - [Plugins](/concepts/plugins) - ElizaOS plugin system
257
+ - [Gateway Configuration](/gateway/configuration) - Advanced Gateway setup
258
+ - [Channels](/channels) - Channel configuration
@@ -0,0 +1,86 @@
1
+ ---
2
+ summary: "Pairing overview: approve who can DM you + which nodes can join"
3
+ read_when:
4
+ - Setting up DM access control
5
+ - Pairing a new iOS/Android node
6
+ - Reviewing Milaidy security posture
7
+ title: "Pairing"
8
+ ---
9
+
10
+ # Pairing
11
+
12
+ “Pairing” is Milaidy’s explicit **owner approval** step.
13
+ It is used in two places:
14
+
15
+ 1. **DM pairing** (who is allowed to talk to the bot)
16
+ 2. **Node pairing** (which devices/nodes are allowed to join the gateway network)
17
+
18
+ Security context: [Security](/gateway/security)
19
+
20
+ ## 1) DM pairing (inbound chat access)
21
+
22
+ When a channel is configured with DM policy `pairing`, unknown senders get a short code and their message is **not processed** until you approve.
23
+
24
+ Default DM policies are documented in: [Security](/gateway/security)
25
+
26
+ Pairing codes:
27
+
28
+ - 8 characters, uppercase, no ambiguous chars (`0O1I`).
29
+ - **Expire after 1 hour**. The bot only sends the pairing message when a new request is created (roughly once per hour per sender).
30
+ - Pending DM pairing requests are capped at **3 per channel** by default; additional requests are ignored until one expires or is approved.
31
+
32
+ ### Approve a sender
33
+
34
+ ```bash
35
+ milaidy pairing list telegram
36
+ milaidy pairing approve telegram <CODE>
37
+ ```
38
+
39
+ Supported channels: `telegram`, `whatsapp`, `signal`, `imessage`, `discord`, `slack`, `msteams`, `googlechat`.
40
+
41
+ ### Where the state lives
42
+
43
+ Stored under `~/.milaidy/credentials/`:
44
+
45
+ - Pending requests: `<channel>-pairing.json`
46
+ - Approved allowlist store: `<channel>-allowFrom.json`
47
+
48
+ Treat these as sensitive (they gate access to your assistant).
49
+
50
+ ## 2) Node device pairing (iOS/Android/macOS/headless nodes)
51
+
52
+ Nodes connect to the Gateway as **devices** with `role: node`. The Gateway
53
+ creates a device pairing request that must be approved.
54
+
55
+ ### Approve a node device
56
+
57
+ ```bash
58
+ milaidy devices list
59
+ milaidy devices approve <requestId>
60
+ milaidy devices reject <requestId>
61
+ ```
62
+
63
+ ### Where the state lives
64
+
65
+ Stored under `~/.milaidy/devices/`:
66
+
67
+ - `pending.json` (short-lived; pending requests expire)
68
+ - `paired.json` (paired devices + tokens)
69
+
70
+ ### Notes
71
+
72
+ - The legacy `node.pair.*` API (CLI: `milaidy nodes pending/approve`) is a
73
+ separate gateway-owned pairing store. WS nodes still require device pairing.
74
+
75
+ ## Related docs
76
+
77
+ - Security model + prompt injection: [Security](/gateway/security)
78
+ - Updating safely (run doctor): [Updating](/install/updating)
79
+ - Channel configs:
80
+ - Telegram: [Telegram](/channels/telegram)
81
+ - WhatsApp: [WhatsApp](/channels/whatsapp)
82
+ - Signal: [Signal](/channels/signal)
83
+ - BlueBubbles (iMessage): [BlueBubbles](/channels/bluebubbles)
84
+ - iMessage (legacy): [iMessage](/channels/imessage)
85
+ - Discord: [Discord](/channels/discord)
86
+ - Slack: [Slack](/channels/slack)
@@ -0,0 +1,81 @@
1
+ ---
2
+ summary: "Install Milaidy, onboard the Gateway, and pair your first channel."
3
+ read_when:
4
+ - You want the fastest path from install to a working Gateway
5
+ title: "Quick start"
6
+ ---
7
+
8
+ <Note>
9
+ Milaidy requires Node 22 or newer.
10
+ </Note>
11
+
12
+ ## Install
13
+
14
+ <Tabs>
15
+ <Tab title="npm">
16
+ ```bash
17
+ npm install -g milaidy@latest
18
+ ```
19
+ </Tab>
20
+ <Tab title="pnpm">
21
+ ```bash
22
+ pnpm add -g milaidy@latest
23
+ ```
24
+ </Tab>
25
+ </Tabs>
26
+
27
+ ## Onboard and run the Gateway
28
+
29
+ <Steps>
30
+ <Step title="Onboard and install the service">
31
+ ```bash
32
+ milaidy onboard --install-daemon
33
+ ```
34
+ </Step>
35
+ <Step title="Pair WhatsApp">
36
+ ```bash
37
+ milaidy channels login
38
+ ```
39
+ </Step>
40
+ <Step title="Start the Gateway">
41
+ ```bash
42
+ milaidy gateway --port 18789
43
+ ```
44
+ </Step>
45
+ </Steps>
46
+
47
+ After onboarding, the Gateway runs via the user service. You can still run it manually with `milaidy gateway`.
48
+
49
+ <Info>
50
+ Switching between npm and git installs later is easy. Install the other flavor and run
51
+ `milaidy doctor` to update the gateway service entrypoint.
52
+ </Info>
53
+
54
+ ## From source (development)
55
+
56
+ ```bash
57
+ git clone https://github.com/milaidy/milaidy.git
58
+ cd milaidy
59
+ pnpm install
60
+ pnpm ui:build # auto-installs UI deps on first run
61
+ pnpm build
62
+ milaidy onboard --install-daemon
63
+ ```
64
+
65
+ If you do not have a global install yet, run onboarding via `pnpm milaidy ...` from the repo.
66
+
67
+ ## Multi instance quickstart (optional)
68
+
69
+ ```bash
70
+ MILAIDY_CONFIG_PATH=~/.milaidy/a.json \
71
+ MILAIDY_STATE_DIR=~/.milaidy-a \
72
+ milaidy gateway --port 19001
73
+ ```
74
+
75
+ ## Send a test message
76
+
77
+ Requires a running Gateway.
78
+
79
+ ```bash
80
+ milaidy message send --target +15555550123 --message "Hello from Milaidy"
81
+ ```
@@ -0,0 +1,149 @@
1
+ ---
2
+ summary: "Setup guide: keep your Milaidy setup tailored while staying up-to-date"
3
+ read_when:
4
+ - Setting up a new machine
5
+ - You want “latest + greatest” without breaking your personal setup
6
+ title: "Setup"
7
+ ---
8
+
9
+ # Setup
10
+
11
+ Last updated: 2026-01-01
12
+
13
+ ## TL;DR
14
+
15
+ - **Tailoring lives outside the repo:** `~/.milaidy/workspace` (workspace) + `~/.milaidy/milaidy.json` (config).
16
+ - **Stable workflow:** install the macOS app; let it run the bundled Gateway.
17
+ - **Bleeding edge workflow:** run the Gateway yourself via `pnpm gateway:watch`, then let the macOS app attach in Local mode.
18
+
19
+ ## Prereqs (from source)
20
+
21
+ - Node `>=22`
22
+ - `pnpm`
23
+ - Docker (optional; only for containerized setup/e2e — see [Docker](/install/docker))
24
+
25
+ ## Tailoring strategy (so updates don’t hurt)
26
+
27
+ If you want “100% tailored to me” _and_ easy updates, keep your customization in:
28
+
29
+ - **Config:** `~/.milaidy/milaidy.json` (JSON/JSON5-ish)
30
+ - **Workspace:** `~/.milaidy/workspace` (skills, prompts, memories; make it a private git repo)
31
+
32
+ Bootstrap once:
33
+
34
+ ```bash
35
+ milaidy setup
36
+ ```
37
+
38
+ From inside this repo, use the local CLI entry:
39
+
40
+ ```bash
41
+ milaidy setup
42
+ ```
43
+
44
+ If you don’t have a global install yet, run it via `pnpm milaidy setup`.
45
+
46
+ ## Stable workflow (macOS app first)
47
+
48
+ 1. Install + launch **Milaidy.app** (menu bar).
49
+ 2. Complete the onboarding/permissions checklist (TCC prompts).
50
+ 3. Ensure Gateway is **Local** and running (the app manages it).
51
+ 4. Link surfaces (example: WhatsApp):
52
+
53
+ ```bash
54
+ milaidy channels login
55
+ ```
56
+
57
+ 5. Sanity check:
58
+
59
+ ```bash
60
+ milaidy health
61
+ ```
62
+
63
+ If onboarding is not available in your build:
64
+
65
+ - Run `milaidy setup`, then `milaidy channels login`, then start the Gateway manually (`milaidy gateway`).
66
+
67
+ ## Bleeding edge workflow (Gateway in a terminal)
68
+
69
+ Goal: work on the TypeScript Gateway, get hot reload, keep the macOS app UI attached.
70
+
71
+ ### 0) (Optional) Run the macOS app from source too
72
+
73
+ If you also want the macOS app on the bleeding edge:
74
+
75
+ ```bash
76
+ ./apps/shared/scripts/restart-mac.sh
77
+ ```
78
+
79
+ ### 1) Start the dev Gateway
80
+
81
+ ```bash
82
+ pnpm install
83
+ pnpm gateway:watch
84
+ ```
85
+
86
+ `gateway:watch` runs the gateway in watch mode and reloads on TypeScript changes.
87
+
88
+ ### 2) Point the macOS app at your running Gateway
89
+
90
+ In **Milaidy.app**:
91
+
92
+ - Connection Mode: **Local**
93
+ The app will attach to the running gateway on the configured port.
94
+
95
+ ### 3) Verify
96
+
97
+ - In-app Gateway status should read **“Using existing gateway …”**
98
+ - Or via CLI:
99
+
100
+ ```bash
101
+ milaidy health
102
+ ```
103
+
104
+ ### Common footguns
105
+
106
+ - **Wrong port:** Gateway WS defaults to `ws://127.0.0.1:18789`; keep app + CLI on the same port.
107
+ - **Where state lives:**
108
+ - Credentials: `~/.milaidy/credentials/`
109
+ - Sessions: `~/.milaidy/agents/<agentId>/sessions/`
110
+ - Logs: `/tmp/milaidy/`
111
+
112
+ ## Credential storage map
113
+
114
+ Use this when debugging auth or deciding what to back up:
115
+
116
+ - **WhatsApp**: `~/.milaidy/credentials/whatsapp/<accountId>/creds.json`
117
+ - **Telegram bot token**: config/env or `channels.telegram.tokenFile`
118
+ - **Discord bot token**: config/env (token file not yet supported)
119
+ - **Slack tokens**: config/env (`channels.slack.*`)
120
+ - **Pairing allowlists**: `~/.milaidy/credentials/<channel>-allowFrom.json`
121
+ - **Model auth profiles**: `~/.milaidy/agents/<agentId>/agent/auth-profiles.json`
122
+ - **Legacy OAuth import**: `~/.milaidy/credentials/oauth.json`
123
+ More detail: [Security](/gateway/security#credential-storage-map).
124
+
125
+ ## Updating (without wrecking your setup)
126
+
127
+ - Keep `~/.milaidy/workspace` and `~/.milaidy/` as “your stuff”; don’t put personal prompts/config into the `milaidy` repo.
128
+ - Updating source: `git pull` + `pnpm install` (when lockfile changed) + keep using `pnpm gateway:watch`.
129
+
130
+ ## Linux (systemd user service)
131
+
132
+ Linux installs use a systemd **user** service. By default, systemd stops user
133
+ services on logout/idle, which kills the Gateway. Onboarding attempts to enable
134
+ lingering for you (may prompt for sudo). If it’s still off, run:
135
+
136
+ ```bash
137
+ sudo loginctl enable-linger $USER
138
+ ```
139
+
140
+ For always-on or multi-user servers, consider a **system** service instead of a
141
+ user service (no lingering needed). See [Gateway runbook](/gateway) for the systemd notes.
142
+
143
+ ## Related docs
144
+
145
+ - [Gateway runbook](/gateway) (flags, supervision, ports)
146
+ - [Gateway configuration](/gateway/configuration) (config schema + examples)
147
+ - [Discord](/channels/discord) and [Telegram](/channels/telegram) (reply tags + replyToMode settings)
148
+ - [Milaidy assistant setup](/start/milaidy)
149
+ - [macOS app](/platforms/macos) (gateway lifecycle)