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.
- package/LICENSE +8 -0
- package/README.md +538 -0
- package/dist/argv-CfSowvEA.js +63 -0
- package/dist/config-B-mboG4v.js +4 -0
- package/dist/eliza-CPJjgw-e.js +1491 -0
- package/dist/eliza.js +2192 -0
- package/dist/entry.js +232 -0
- package/dist/index.js +209 -0
- package/dist/links-BFKlWqSe.js +15 -0
- package/dist/paths-D_yh1DEJ.js +69 -0
- package/dist/plugins-cli-B7kSre2c.js +134 -0
- package/dist/program-6KwWwKKh.js +510 -0
- package/dist/register.agents-CPVmSjMG.js +17 -0
- package/dist/register.browser-B2ooXxNx.js +15 -0
- package/dist/register.channels-CMYQ6K6Y.js +42 -0
- package/dist/register.cron-D91lY1_Y.js +9 -0
- package/dist/register.devices-rU5I5L_y.js +13 -0
- package/dist/register.gateway-82SLAvw3.js +22 -0
- package/dist/register.hooks-B_XTBEkt.js +9 -0
- package/dist/register.logs-BgEGcPd8.js +10 -0
- package/dist/register.models-BJt9eVgZ.js +26 -0
- package/dist/register.nodes-B5xY1s8a.js +9 -0
- package/dist/register.skills-SFQqYIhg.js +10 -0
- package/dist/register.subclis-uF_AsbWR.js +187 -0
- package/dist/run-main-XODklzS-.js +56 -0
- package/dist/theme-DBvtuGeq.js +36 -0
- package/dist/utils-C1AUpp_V.js +42 -0
- package/dist/version-Cpn3yr5D.js +26 -0
- package/dist/workspace-Co3Wul2D.js +206 -0
- package/dist/workspace-DCA6MNVK.js +350 -0
- package/docs/.i18n/README.md +31 -0
- package/docs/.i18n/glossary.zh-CN.json +210 -0
- package/docs/.i18n/zh-CN.tm.jsonl +1329 -0
- package/docs/CNAME +1 -0
- package/docs/automation/cron-jobs.md +468 -0
- package/docs/automation/cron-vs-heartbeat.md +254 -0
- package/docs/automation/gmail-pubsub.md +256 -0
- package/docs/automation/poll.md +69 -0
- package/docs/automation/webhook.md +163 -0
- package/docs/bedrock.md +176 -0
- package/docs/brave-search.md +41 -0
- package/docs/broadcast-groups.md +442 -0
- package/docs/cli/acp.md +170 -0
- package/docs/cli/agent.md +24 -0
- package/docs/cli/agents.md +75 -0
- package/docs/cli/approvals.md +50 -0
- package/docs/cli/browser.md +107 -0
- package/docs/cli/channels.md +79 -0
- package/docs/cli/config.md +50 -0
- package/docs/cli/configure.md +33 -0
- package/docs/cli/cron.md +42 -0
- package/docs/cli/dashboard.md +16 -0
- package/docs/cli/devices.md +67 -0
- package/docs/cli/directory.md +63 -0
- package/docs/cli/dns.md +23 -0
- package/docs/cli/docs.md +15 -0
- package/docs/cli/doctor.md +41 -0
- package/docs/cli/gateway.md +199 -0
- package/docs/cli/health.md +21 -0
- package/docs/cli/hooks.md +291 -0
- package/docs/cli/index.md +1029 -0
- package/docs/cli/logs.md +24 -0
- package/docs/cli/memory.md +45 -0
- package/docs/cli/message.md +239 -0
- package/docs/cli/models.md +79 -0
- package/docs/cli/node.md +112 -0
- package/docs/cli/nodes.md +73 -0
- package/docs/cli/onboard.md +29 -0
- package/docs/cli/pairing.md +21 -0
- package/docs/cli/plugins.md +62 -0
- package/docs/cli/reset.md +17 -0
- package/docs/cli/sandbox.md +152 -0
- package/docs/cli/security.md +26 -0
- package/docs/cli/sessions.md +16 -0
- package/docs/cli/setup.md +29 -0
- package/docs/cli/skills.md +26 -0
- package/docs/cli/status.md +26 -0
- package/docs/cli/system.md +60 -0
- package/docs/cli/tui.md +23 -0
- package/docs/cli/uninstall.md +17 -0
- package/docs/cli/update.md +98 -0
- package/docs/cli/voicecall.md +34 -0
- package/docs/cli/webhooks.md +25 -0
- package/docs/concepts/agent-loop.md +146 -0
- package/docs/concepts/agent-workspace.md +229 -0
- package/docs/concepts/agent.md +122 -0
- package/docs/concepts/architecture.md +129 -0
- package/docs/concepts/channel-routing.md +114 -0
- package/docs/concepts/compaction.md +61 -0
- package/docs/concepts/context.md +159 -0
- package/docs/concepts/features.md +53 -0
- package/docs/concepts/group-messages.md +84 -0
- package/docs/concepts/groups.md +373 -0
- package/docs/concepts/markdown-formatting.md +130 -0
- package/docs/concepts/memory.md +546 -0
- package/docs/concepts/messages.md +154 -0
- package/docs/concepts/model-failover.md +149 -0
- package/docs/concepts/model-providers.md +315 -0
- package/docs/concepts/models.md +208 -0
- package/docs/concepts/multi-agent.md +376 -0
- package/docs/concepts/oauth.md +145 -0
- package/docs/concepts/plugins.md +454 -0
- package/docs/concepts/presence.md +102 -0
- package/docs/concepts/queue.md +89 -0
- package/docs/concepts/retry.md +69 -0
- package/docs/concepts/secrets.md +300 -0
- package/docs/concepts/session-pruning.md +122 -0
- package/docs/concepts/session-tool.md +193 -0
- package/docs/concepts/session.md +188 -0
- package/docs/concepts/sessions.md +10 -0
- package/docs/concepts/skills.md +392 -0
- package/docs/concepts/streaming.md +135 -0
- package/docs/concepts/system-prompt.md +114 -0
- package/docs/concepts/timezone.md +91 -0
- package/docs/concepts/typebox.md +289 -0
- package/docs/concepts/typing-indicators.md +68 -0
- package/docs/concepts/usage-tracking.md +35 -0
- package/docs/custom.css +4 -0
- package/docs/date-time.md +128 -0
- package/docs/debugging.md +162 -0
- package/docs/docs.json +1599 -0
- package/docs/environment.md +81 -0
- package/docs/hooks.md +876 -0
- package/docs/index.md +179 -0
- package/docs/install/ansible.md +208 -0
- package/docs/install/bun.md +59 -0
- package/docs/install/development-channels.md +75 -0
- package/docs/install/docker.md +567 -0
- package/docs/install/index.md +185 -0
- package/docs/install/installer.md +123 -0
- package/docs/install/migrating.md +192 -0
- package/docs/install/nix.md +96 -0
- package/docs/install/node.md +78 -0
- package/docs/install/uninstall.md +128 -0
- package/docs/install/updating.md +228 -0
- package/docs/logging.md +350 -0
- package/docs/multi-agent-sandbox-tools.md +395 -0
- package/docs/network.md +54 -0
- package/docs/nodes/audio.md +114 -0
- package/docs/nodes/camera.md +156 -0
- package/docs/nodes/images.md +72 -0
- package/docs/nodes/index.md +341 -0
- package/docs/nodes/location-command.md +113 -0
- package/docs/nodes/media-understanding.md +379 -0
- package/docs/nodes/talk.md +90 -0
- package/docs/nodes/voicewake.md +65 -0
- package/docs/northflank.mdx +53 -0
- package/docs/perplexity.md +80 -0
- package/docs/platforms/android.md +129 -0
- package/docs/platforms/digitalocean.md +262 -0
- package/docs/platforms/exe-dev.md +125 -0
- package/docs/platforms/fly.md +486 -0
- package/docs/platforms/gcp.md +503 -0
- package/docs/platforms/hetzner.md +330 -0
- package/docs/platforms/index.md +53 -0
- package/docs/platforms/ios.md +106 -0
- package/docs/platforms/linux.md +94 -0
- package/docs/platforms/mac/bundled-gateway.md +73 -0
- package/docs/platforms/mac/canvas.md +125 -0
- package/docs/platforms/mac/child-process.md +69 -0
- package/docs/platforms/mac/dev-setup.md +102 -0
- package/docs/platforms/mac/health.md +34 -0
- package/docs/platforms/mac/icon.md +31 -0
- package/docs/platforms/mac/logging.md +57 -0
- package/docs/platforms/mac/menu-bar.md +81 -0
- package/docs/platforms/mac/peekaboo.md +65 -0
- package/docs/platforms/mac/permissions.md +44 -0
- package/docs/platforms/mac/release.md +85 -0
- package/docs/platforms/mac/remote.md +83 -0
- package/docs/platforms/mac/signing.md +47 -0
- package/docs/platforms/mac/skills.md +33 -0
- package/docs/platforms/mac/voice-overlay.md +60 -0
- package/docs/platforms/mac/voicewake.md +67 -0
- package/docs/platforms/mac/webchat.md +41 -0
- package/docs/platforms/mac/xpc.md +61 -0
- package/docs/platforms/macos-vm.md +281 -0
- package/docs/platforms/macos.md +203 -0
- package/docs/platforms/oracle.md +303 -0
- package/docs/platforms/raspberry-pi.md +358 -0
- package/docs/platforms/windows.md +159 -0
- package/docs/plugin.md +651 -0
- package/docs/plugins/agent-tools.md +99 -0
- package/docs/plugins/manifest.md +71 -0
- package/docs/plugins/voice-call.md +273 -0
- package/docs/plugins/zalouser.md +70 -0
- package/docs/providers/anthropic.md +152 -0
- package/docs/providers/claude-max-api-proxy.md +148 -0
- package/docs/providers/cloudflare-ai-gateway.md +71 -0
- package/docs/providers/deepgram.md +93 -0
- package/docs/providers/glm.md +33 -0
- package/docs/providers/index.md +63 -0
- package/docs/providers/minimax.md +208 -0
- package/docs/providers/models.md +51 -0
- package/docs/providers/moonshot.md +142 -0
- package/docs/providers/ollama.md +223 -0
- package/docs/providers/openai.md +62 -0
- package/docs/providers/opencode.md +36 -0
- package/docs/providers/openrouter.md +37 -0
- package/docs/providers/qwen.md +53 -0
- package/docs/providers/synthetic.md +99 -0
- package/docs/providers/venice.md +267 -0
- package/docs/providers/vercel-ai-gateway.md +50 -0
- package/docs/providers/xiaomi.md +64 -0
- package/docs/providers/zai.md +36 -0
- package/docs/railway.mdx +99 -0
- package/docs/reference/templates/AGENTS.md +9 -0
- package/docs/reference/templates/BOOTSTRAP.md +3 -0
- package/docs/reference/templates/HEARTBEAT.md +3 -0
- package/docs/reference/templates/IDENTITY.md +3 -0
- package/docs/reference/templates/TOOLS.md +3 -0
- package/docs/reference/templates/USER.md +3 -0
- package/docs/render.mdx +165 -0
- package/docs/start/docs-directory.md +63 -0
- package/docs/start/getting-started.md +212 -0
- package/docs/start/milaidy.md +247 -0
- package/docs/start/onboarding.md +258 -0
- package/docs/start/pairing.md +86 -0
- package/docs/start/quickstart.md +81 -0
- package/docs/start/setup.md +149 -0
- package/docs/start/showcase.md +416 -0
- package/docs/start/wizard.md +418 -0
- package/docs/testing.md +368 -0
- package/docs/token-use.md +112 -0
- package/docs/tools/agent-send.md +53 -0
- package/docs/tools/apply-patch.md +50 -0
- package/docs/tools/browser-linux-troubleshooting.md +139 -0
- package/docs/tools/browser-login.md +68 -0
- package/docs/tools/browser.md +576 -0
- package/docs/tools/chrome-extension.md +178 -0
- package/docs/tools/clawhub.md +257 -0
- package/docs/tools/creating-skills.md +54 -0
- package/docs/tools/elevated.md +57 -0
- package/docs/tools/exec-approvals.md +246 -0
- package/docs/tools/exec.md +179 -0
- package/docs/tools/firecrawl.md +61 -0
- package/docs/tools/index.md +508 -0
- package/docs/tools/llm-task.md +115 -0
- package/docs/tools/reactions.md +22 -0
- package/docs/tools/skills-config.md +76 -0
- package/docs/tools/skills.md +300 -0
- package/docs/tools/slash-commands.md +196 -0
- package/docs/tools/subagents.md +151 -0
- package/docs/tools/thinking.md +73 -0
- package/docs/tools/web.md +261 -0
- package/docs/tui.md +159 -0
- package/docs/vps.md +43 -0
- package/docs/web/control-ui.md +221 -0
- package/docs/web/dashboard.md +46 -0
- package/docs/web/index.md +116 -0
- package/docs/web/webchat.md +49 -0
- package/milaidy.mjs +14 -0
- package/package.json +271 -0
- 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)
|