neoagent 2.3.1-beta.91 → 2.3.1-beta.93
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/README.md +2 -2
- package/docs/automation.md +82 -41
- package/docs/capabilities.md +85 -91
- package/docs/configuration.md +86 -103
- package/docs/getting-started.md +37 -35
- package/docs/index.md +24 -30
- package/docs/integrations.md +46 -63
- package/docs/migration.md +41 -146
- package/docs/operations.md +23 -20
- package/docs/skills.md +20 -20
- package/docs/why-neoagent.md +15 -13
- package/extensions/chrome-browser/background.mjs +10 -2
- package/flutter_app/DESIGN_SYSTEM.md +166 -0
- package/flutter_app/lib/main_app_shell.dart +27 -11
- package/flutter_app/lib/main_chat.dart +4 -2
- package/flutter_app/lib/main_controller.dart +5 -2
- package/flutter_app/lib/main_shared.dart +10 -10
- package/flutter_app/lib/main_spacing.dart +15 -0
- package/flutter_app/lib/main_theme.dart +10 -0
- package/package.json +1 -1
- package/server/db/database.js +1 -1
- package/server/public/.last_build_id +1 -1
- package/server/public/flutter_bootstrap.js +1 -1
- package/server/public/main.dart.js +8843 -8841
- package/server/routes/agents.js +4 -1
- package/server/routes/auth.js +1 -4
- package/server/routes/memory.js +3 -3
- package/server/routes/settings.js +11 -2
- package/server/routes/skills.js +12 -0
- package/server/routes/tasks.js +22 -2
- package/server/services/ai/toolRunner.js +12 -0
- package/server/services/memory/manager.js +18 -7
- package/server/services/messaging/manager.js +15 -1
- package/server/services/tasks/integration_runtime.js +1 -1
- package/server/services/tasks/task_repository.js +3 -6
package/docs/configuration.md
CHANGED
|
@@ -1,62 +1,36 @@
|
|
|
1
1
|
# Configuration
|
|
2
2
|
|
|
3
|
-
NeoAgent
|
|
3
|
+
NeoAgent reads server config from `~/.neoagent/.env`. Run `neoagent setup` to generate or update it interactively. Set `NEOAGENT_HOME` to move the runtime root.
|
|
4
4
|
|
|
5
|
-
AI provider credentials, OAuth client secrets, and deployment
|
|
5
|
+
All AI provider credentials, OAuth client secrets, and deployment settings are server-side only — never sent to the client or exposed in the UI.
|
|
6
6
|
|
|
7
|
-
##
|
|
8
|
-
|
|
9
|
-
| Variable | Default | Description |
|
|
10
|
-
|---|---:|---|
|
|
11
|
-
| `PORT` | `3333` | HTTP port for the NeoAgent server. |
|
|
12
|
-
| `PUBLIC_URL` | optional | Public base URL used for OAuth callbacks and external links. |
|
|
13
|
-
| `SESSION_SECRET` | required | Random string for session signing. Generate one with `openssl rand -hex 32`. |
|
|
14
|
-
| `NODE_ENV` | `production` | Set to `development` to enable verbose logs. |
|
|
15
|
-
| `SECURE_COOKIES` | `false` | Set `true` when NeoAgent is behind a TLS-terminating proxy. |
|
|
16
|
-
| `TRUST_PROXY` | inferred from `PUBLIC_URL`/`SECURE_COOKIES` | Set `true` when NeoAgent runs behind Nginx, Caddy, Cloudflare, Fly, or another reverse proxy that sends `X-Forwarded-*` headers. |
|
|
17
|
-
| `ALLOWED_ORIGINS` | none | Comma-separated CORS origins, for example `https://example.com`. |
|
|
18
|
-
| `NEOAGENT_DEPLOYMENT_MODE` | `self_hosted` | `self_hosted` enables in-app update controls; `managed` hides operator-only controls for SaaS deployments. |
|
|
19
|
-
| `NEOAGENT_RELEASE_CHANNEL` | `stable` | Release track used by the self-hosted updater. |
|
|
20
|
-
|
|
21
|
-
## Analytics
|
|
22
|
-
|
|
23
|
-
NeoAgent can send anonymous Mixpanel usage events from the Flutter client. The events cover app startup, section navigation, auth success, backend setup, onboarding dismissal, chat sends, recording start/stop, task runs, update checks, and update triggers. They do not include message content, credentials, or other app data.
|
|
24
|
-
|
|
25
|
-
Set `NEOAGENT_MIXPANEL_TOKEN` to your own public Mixpanel project token to enable analytics. Leave it blank to disable analytics entirely.
|
|
26
|
-
When analytics is enabled, the web client shows a dismissible cookie-consent banner until the user accepts or declines.
|
|
27
|
-
|
|
28
|
-
| Variable | Default | Description |
|
|
29
|
-
|---|---:|---|
|
|
30
|
-
| `NEOAGENT_MIXPANEL_TOKEN` | optional | Public Mixpanel project token used by the Flutter client. |
|
|
7
|
+
## Minimal Config
|
|
31
8
|
|
|
32
|
-
|
|
9
|
+
```dotenv
|
|
10
|
+
PORT=3333
|
|
11
|
+
SESSION_SECRET=change-me-to-something-random
|
|
12
|
+
ANTHROPIC_API_KEY=sk-ant-...
|
|
13
|
+
```
|
|
33
14
|
|
|
34
|
-
|
|
15
|
+
Generate a session secret: `openssl rand -hex 32`
|
|
35
16
|
|
|
36
|
-
|
|
17
|
+
## Core Variables
|
|
37
18
|
|
|
38
19
|
| Variable | Default | Description |
|
|
39
20
|
|---|---:|---|
|
|
40
|
-
| `
|
|
41
|
-
| `
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
46
|
-
| `
|
|
47
|
-
| `
|
|
48
|
-
| `
|
|
49
|
-
| `NEOAGENT_EMAIL_SMTP_HOST` | required when enabled | SMTP hostname. |
|
|
50
|
-
| `NEOAGENT_EMAIL_SMTP_PORT` | `587` | SMTP port. |
|
|
51
|
-
| `NEOAGENT_EMAIL_SMTP_SECURE` | `true` on port `465` | Use implicit TLS. |
|
|
52
|
-
| `NEOAGENT_EMAIL_SMTP_REQUIRE_TLS` | `true` unless implicit TLS | Require STARTTLS for non-implicit-TLS SMTP. |
|
|
53
|
-
| `NEOAGENT_EMAIL_SMTP_REJECT_UNAUTHORIZED` | `true` | Reject invalid TLS certificates. Keep enabled in production. |
|
|
54
|
-
| `NEOAGENT_EMAIL_SMTP_USER` | optional | SMTP username. |
|
|
55
|
-
| `NEOAGENT_EMAIL_SMTP_PASS` | optional | SMTP password or app password. |
|
|
21
|
+
| `PORT` | `3333` | HTTP port for the NeoAgent server |
|
|
22
|
+
| `PUBLIC_URL` | optional | Public base URL — required for OAuth callbacks, messaging webhooks, and mobile access |
|
|
23
|
+
| `SESSION_SECRET` | required | Random string for session signing |
|
|
24
|
+
| `NODE_ENV` | `production` | Set to `development` for verbose logs |
|
|
25
|
+
| `SECURE_COOKIES` | `false` | Set `true` when behind a TLS-terminating proxy |
|
|
26
|
+
| `TRUST_PROXY` | inferred | Set `true` when behind Nginx, Caddy, Cloudflare, Fly, or any proxy sending `X-Forwarded-*` |
|
|
27
|
+
| `ALLOWED_ORIGINS` | none | Comma-separated CORS origins |
|
|
28
|
+
| `NEOAGENT_DEPLOYMENT_MODE` | `self_hosted` | `managed` hides operator-only controls for SaaS deployments |
|
|
29
|
+
| `NEOAGENT_RELEASE_CHANNEL` | `stable` | Release track followed by `neoagent update` |
|
|
56
30
|
|
|
57
31
|
## AI Providers
|
|
58
32
|
|
|
59
|
-
At least one
|
|
33
|
+
At least one key is required unless you only use local Ollama.
|
|
60
34
|
|
|
61
35
|
| Variable | Provider |
|
|
62
36
|
|---|---|
|
|
@@ -65,95 +39,104 @@ At least one hosted-provider API key is required unless you only use local Ollam
|
|
|
65
39
|
| `XAI_API_KEY` | Grok (xAI) |
|
|
66
40
|
| `XAI_BASE_URL` | Optional xAI-compatible base URL override |
|
|
67
41
|
| `GOOGLE_AI_KEY` | Gemini (Google) |
|
|
68
|
-
| `MINIMAX_API_KEY` | MiniMax
|
|
69
|
-
| `BRAVE_SEARCH_API_KEY` | Brave Search
|
|
42
|
+
| `MINIMAX_API_KEY` | MiniMax (including `MiniMax-M2.7`) |
|
|
43
|
+
| `BRAVE_SEARCH_API_KEY` | Brave Search for the `web_search` tool |
|
|
70
44
|
| `OPENAI_BASE_URL` | Optional OpenAI-compatible base URL override |
|
|
71
45
|
| `ANTHROPIC_BASE_URL` | Optional Anthropic-compatible base URL override |
|
|
72
|
-
| `DEEPGRAM_API_KEY` |
|
|
73
|
-
| `DEEPGRAM_BASE_URL` | Optional Deepgram
|
|
74
|
-
| `DEEPGRAM_MODEL` | Deepgram speech model
|
|
75
|
-
| `DEEPGRAM_LANGUAGE` | Deepgram language
|
|
76
|
-
| `OLLAMA_URL` | Local Ollama server,
|
|
77
|
-
|
|
78
|
-
Recording insight generation is controlled in app AI settings with `auto_recording_insights`. It uses the configured AI providers after Deepgram transcription has produced transcript text.
|
|
46
|
+
| `DEEPGRAM_API_KEY` | Recording transcription |
|
|
47
|
+
| `DEEPGRAM_BASE_URL` | Optional Deepgram base URL override |
|
|
48
|
+
| `DEEPGRAM_MODEL` | Deepgram speech model (default: `nova-3`) |
|
|
49
|
+
| `DEEPGRAM_LANGUAGE` | Deepgram language mode (default: `multi`) |
|
|
50
|
+
| `OLLAMA_URL` | Local Ollama server, e.g. `http://localhost:11434` |
|
|
79
51
|
|
|
80
52
|
## Official Integrations
|
|
81
53
|
|
|
82
|
-
|
|
54
|
+
OAuth app credentials for structured agent tools. All callbacks default to `PUBLIC_URL + /api/integrations/oauth/callback`.
|
|
83
55
|
|
|
84
|
-
|
|
56
|
+
Home Assistant and Trello can be configured per-user in the Flutter UI without any server-side setup.
|
|
85
57
|
|
|
86
58
|
| Variable | Description |
|
|
87
59
|
|---|---|
|
|
88
|
-
| `GOOGLE_OAUTH_CLIENT_ID` | Google Workspace
|
|
89
|
-
| `GOOGLE_OAUTH_CLIENT_SECRET` | Google Workspace
|
|
90
|
-
| `GOOGLE_OAUTH_REDIRECT_URI` | Optional Google
|
|
91
|
-
| `NOTION_OAUTH_CLIENT_ID` | Notion
|
|
92
|
-
| `NOTION_OAUTH_CLIENT_SECRET` | Notion
|
|
60
|
+
| `GOOGLE_OAUTH_CLIENT_ID` | Google Workspace client ID |
|
|
61
|
+
| `GOOGLE_OAUTH_CLIENT_SECRET` | Google Workspace client secret |
|
|
62
|
+
| `GOOGLE_OAUTH_REDIRECT_URI` | Optional Google OAuth callback URL |
|
|
63
|
+
| `NOTION_OAUTH_CLIENT_ID` | Notion client ID |
|
|
64
|
+
| `NOTION_OAUTH_CLIENT_SECRET` | Notion client secret |
|
|
93
65
|
| `NOTION_OAUTH_REDIRECT_URI` | Optional Notion OAuth callback URL |
|
|
94
|
-
| `MICROSOFT_OAUTH_CLIENT_ID` | Microsoft 365
|
|
95
|
-
| `MICROSOFT_OAUTH_CLIENT_SECRET` | Microsoft 365
|
|
96
|
-
| `MICROSOFT_OAUTH_REDIRECT_URI` | Optional Microsoft
|
|
97
|
-
| `MICROSOFT_OAUTH_TENANT_ID` |
|
|
98
|
-
| `SLACK_OAUTH_CLIENT_ID` | Slack
|
|
99
|
-
| `SLACK_OAUTH_CLIENT_SECRET` | Slack
|
|
66
|
+
| `MICROSOFT_OAUTH_CLIENT_ID` | Microsoft 365 client ID |
|
|
67
|
+
| `MICROSOFT_OAUTH_CLIENT_SECRET` | Microsoft 365 client secret |
|
|
68
|
+
| `MICROSOFT_OAUTH_REDIRECT_URI` | Optional Microsoft OAuth callback URL |
|
|
69
|
+
| `MICROSOFT_OAUTH_TENANT_ID` | Entra tenant selector (default: `common`) |
|
|
70
|
+
| `SLACK_OAUTH_CLIENT_ID` | Slack client ID |
|
|
71
|
+
| `SLACK_OAUTH_CLIENT_SECRET` | Slack client secret |
|
|
100
72
|
| `SLACK_OAUTH_REDIRECT_URI` | Optional Slack OAuth callback URL |
|
|
101
|
-
| `FIGMA_OAUTH_CLIENT_ID` | Figma
|
|
102
|
-
| `FIGMA_OAUTH_CLIENT_SECRET` | Figma
|
|
73
|
+
| `FIGMA_OAUTH_CLIENT_ID` | Figma client ID |
|
|
74
|
+
| `FIGMA_OAUTH_CLIENT_SECRET` | Figma client secret |
|
|
103
75
|
| `FIGMA_OAUTH_REDIRECT_URI` | Optional Figma OAuth callback URL |
|
|
104
|
-
| `TRELLO_API_KEY` |
|
|
105
|
-
| `SPOTIFY_OAUTH_CLIENT_ID` | Spotify
|
|
106
|
-
| `SPOTIFY_OAUTH_CLIENT_SECRET` | Spotify
|
|
76
|
+
| `TRELLO_API_KEY` | Server-side Trello Power-Up key — if set, users only need their personal token |
|
|
77
|
+
| `SPOTIFY_OAUTH_CLIENT_ID` | Spotify client ID |
|
|
78
|
+
| `SPOTIFY_OAUTH_CLIENT_SECRET` | Spotify client secret |
|
|
107
79
|
| `SPOTIFY_OAUTH_REDIRECT_URI` | Optional Spotify OAuth callback URL |
|
|
108
80
|
|
|
109
|
-
|
|
81
|
+
## Messaging
|
|
110
82
|
|
|
111
|
-
|
|
83
|
+
Messaging platform credentials (Telegram, Discord, WhatsApp, Slack, etc.) are configured through the Flutter app messaging tab — not `.env`. The exception is Telnyx, which requires server-side webhook verification.
|
|
112
84
|
|
|
113
|
-
|
|
85
|
+
| Variable | Description |
|
|
86
|
+
|---|---|
|
|
87
|
+
| `TELNYX_WEBHOOK_TOKEN` | Telnyx webhook signature verification token |
|
|
114
88
|
|
|
115
|
-
|
|
89
|
+
Generic inbound webhook path: `PUBLIC_URL + /api/messaging/webhook/:platform`
|
|
116
90
|
|
|
117
|
-
|
|
91
|
+
## Service Email
|
|
118
92
|
|
|
119
|
-
|
|
93
|
+
Optional. When configured, NeoAgent uses SMTP for account flows: signup confirmation, password reset, and security notifications. This mailbox is for the NeoAgent server only — it is not exposed as a Gmail or Outlook integration.
|
|
120
94
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
95
|
+
| Variable | Default | Description |
|
|
96
|
+
|---|---:|---|
|
|
97
|
+
| `NEOAGENT_EMAIL_FROM` | required | Sender address, e.g. `NeoAgent <no-reply@example.com>` |
|
|
98
|
+
| `NEOAGENT_EMAIL_SMTP_HOST` | required | SMTP hostname |
|
|
99
|
+
| `NEOAGENT_EMAIL_SMTP_PORT` | `587` | SMTP port |
|
|
100
|
+
| `NEOAGENT_EMAIL_SMTP_USER` | optional | SMTP username |
|
|
101
|
+
| `NEOAGENT_EMAIL_SMTP_PASS` | optional | SMTP password or app password |
|
|
102
|
+
| `NEOAGENT_EMAIL_SMTP_SECURE` | `true` on port 465 | Use implicit TLS |
|
|
103
|
+
| `NEOAGENT_EMAIL_SMTP_REQUIRE_TLS` | `true` | Require STARTTLS |
|
|
104
|
+
| `NEOAGENT_EMAIL_SMTP_REJECT_UNAUTHORIZED` | `true` | Reject invalid TLS certs — keep enabled in production |
|
|
105
|
+
| `NEOAGENT_EMAIL_REPLY_TO` | optional | Reply-To header |
|
|
106
|
+
| `NEOAGENT_EMAIL_REQUIRE_SIGNUP_CONFIRMATION` | `true` | Require email confirmation before first sign-in |
|
|
107
|
+
| `NEOAGENT_EMAIL_REQUIRE_EMAIL_CHANGE_CONFIRMATION` | `true` | Require confirmation when changing account email |
|
|
108
|
+
| `NEOAGENT_EMAIL_NOTIFY_UNUSUAL_LOGIN` | `true` | Security notice for new device or network logins |
|
|
109
|
+
| `NEOAGENT_EMAIL_NOTIFY_ACCOUNT_CHANGES` | `true` | Notices for password and email changes |
|
|
110
|
+
| `NEOAGENT_EMAIL_BRAND_NAME` | `NeoAgent` | Display name in email templates |
|
|
111
|
+
| `NEOAGENT_EMAIL_SUPPORT_URL` | optional | Support link for email templates |
|
|
112
|
+
| `NEOAGENT_EMAIL_TOKEN_TTL_HOURS` | `24` | Confirmation link expiry |
|
|
124
113
|
|
|
125
|
-
|
|
114
|
+
## Runtime Isolation
|
|
126
115
|
|
|
127
116
|
| Variable | Description |
|
|
128
117
|
|---|---|
|
|
129
|
-
| `
|
|
130
|
-
|
|
131
|
-
## Runtime Isolation
|
|
132
|
-
|
|
133
|
-
Runtime profile and backend selection are stored in user settings, not normally in `.env`. The main profiles are `trusted-host` and `secure-vm`. CLI and Android tools may still follow the selected runtime profile, but browser control is always isolated: the non-extension browser backend runs in the VM, not on the host device.
|
|
118
|
+
| `NEOAGENT_VM_GUEST_TOKEN` | Required for `secure-vm` policy — use 32+ characters, no placeholder values |
|
|
134
119
|
|
|
135
|
-
|
|
120
|
+
Runtime profiles (`trusted-host`, `secure-vm`) are set in user settings, not `.env`. See [Capabilities: Runtime Modes](capabilities.md#runtime-modes).
|
|
136
121
|
|
|
137
|
-
|
|
122
|
+
## Analytics
|
|
138
123
|
|
|
139
|
-
|
|
124
|
+
NeoAgent can send anonymous usage events to your own Mixpanel project. Events cover navigation and feature usage only — no message content, credentials, or personal data.
|
|
140
125
|
|
|
141
|
-
|
|
126
|
+
| Variable | Description |
|
|
127
|
+
|---|---|
|
|
128
|
+
| `NEOAGENT_MIXPANEL_TOKEN` | Public Mixpanel project token — leave blank to disable analytics |
|
|
142
129
|
|
|
143
|
-
|
|
130
|
+
When analytics is enabled, the web client shows a cookie-consent banner until accepted or declined.
|
|
144
131
|
|
|
145
132
|
## Runtime Paths
|
|
146
133
|
|
|
147
|
-
| Path |
|
|
134
|
+
| Path | Contents |
|
|
148
135
|
|---|---|
|
|
149
|
-
| `~/.neoagent/.env` | Server config and
|
|
150
|
-
| `~/.neoagent/data/` | Database, sessions, update status
|
|
151
|
-
| `~/.neoagent/agent-data/` | Skills, memory,
|
|
136
|
+
| `~/.neoagent/.env` | Server config and secrets |
|
|
137
|
+
| `~/.neoagent/data/` | Database, sessions, logs, update status |
|
|
138
|
+
| `~/.neoagent/agent-data/` | Skills, memory, daily data |
|
|
152
139
|
|
|
153
|
-
##
|
|
140
|
+
## Security
|
|
154
141
|
|
|
155
|
-
|
|
156
|
-
PORT=3333
|
|
157
|
-
SESSION_SECRET=change-me-to-something-random
|
|
158
|
-
ANTHROPIC_API_KEY=sk-ant-...
|
|
159
|
-
```
|
|
142
|
+
Treat `SESSION_SECRET`, all API keys, OAuth client secrets, SMTP credentials, and messaging tokens as sensitive. Don't commit them, log them, or expose them in client code or screenshots. Rotate immediately if you suspect exposure.
|
package/docs/getting-started.md
CHANGED
|
@@ -1,31 +1,27 @@
|
|
|
1
1
|
# Getting Started
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Install takes about 5 minutes. The first VM boot downloads and configures an Ubuntu guest image, which adds a few more minutes on first run.
|
|
4
4
|
|
|
5
5
|
## Requirements
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
| | |
|
|
8
|
+
|---|---|
|
|
9
|
+
| Node.js | 20 or newer |
|
|
10
|
+
| QEMU | for VM-isolated browser and Android |
|
|
11
|
+
| AI provider key | Anthropic, OpenAI, Gemini, Grok, MiniMax, or local Ollama |
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
No API key is required if you only use local Ollama.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
### Install QEMU
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# macOS
|
|
19
19
|
brew install qemu
|
|
20
20
|
|
|
21
21
|
# Ubuntu / Debian
|
|
22
|
-
sudo apt-get update
|
|
23
|
-
sudo apt-get install -y qemu-system qemu-utils
|
|
22
|
+
sudo apt-get update && sudo apt-get install -y qemu-system qemu-utils
|
|
24
23
|
```
|
|
25
24
|
|
|
26
|
-
The first VM boot also downloads the Ubuntu base image and seeds the guest runtime automatically.
|
|
27
|
-
That guest bootstrap installs the browser and Android runtime dependencies it needs, including Java and the emulator support packages.
|
|
28
|
-
|
|
29
25
|
## Install
|
|
30
26
|
|
|
31
27
|
```bash
|
|
@@ -33,49 +29,55 @@ npm install -g neoagent
|
|
|
33
29
|
neoagent install
|
|
34
30
|
```
|
|
35
31
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
On macOS, NeoAgent uses a `launchd` user service. On Linux, it uses a `systemd --user` service. On unsupported platforms it falls back to a background Node process.
|
|
32
|
+
This runs setup (if no existing config), installs dependencies, and starts the service.
|
|
39
33
|
|
|
40
|
-
|
|
34
|
+
Open **http://localhost:3333** in your browser when the install finishes.
|
|
41
35
|
|
|
42
|
-
|
|
36
|
+
## First Run
|
|
43
37
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
38
|
+
1. Create an account.
|
|
39
|
+
2. Open **Settings → AI Providers** and add at least one API key.
|
|
40
|
+
3. Send a message in **Chat** to confirm the agent responds.
|
|
47
41
|
|
|
48
|
-
|
|
42
|
+
Everything else — integrations, messaging, tasks, Android control — is configured inside the app.
|
|
49
43
|
|
|
50
44
|
## Service Commands
|
|
51
45
|
|
|
52
46
|
```bash
|
|
53
|
-
neoagent status
|
|
47
|
+
neoagent status # check install root, config path, and service state
|
|
54
48
|
neoagent start
|
|
55
49
|
neoagent stop
|
|
56
50
|
neoagent restart
|
|
57
|
-
neoagent logs
|
|
51
|
+
neoagent logs # first stop when something behaves unexpectedly
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Re-running Setup
|
|
55
|
+
|
|
56
|
+
Run this to regenerate config or change provider keys:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
neoagent setup
|
|
58
60
|
```
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+
The wizard prompts for port, public URL, release channel, AI keys, Ollama URL, and OAuth credentials.
|
|
61
63
|
|
|
62
|
-
## Updates
|
|
64
|
+
## Updates and Recovery
|
|
63
65
|
|
|
64
66
|
```bash
|
|
65
|
-
neoagent channel stable
|
|
66
|
-
neoagent channel beta
|
|
67
|
-
neoagent update
|
|
68
|
-
neoagent fix
|
|
67
|
+
neoagent channel stable # switch to stable releases
|
|
68
|
+
neoagent channel beta # switch to prerelease builds
|
|
69
|
+
neoagent update # update to latest on the current channel
|
|
70
|
+
neoagent fix # reset after a broken install or self-edit
|
|
69
71
|
```
|
|
70
72
|
|
|
71
|
-
`neoagent
|
|
73
|
+
`neoagent fix` backs up runtime data, resets source files, reinstalls dependencies, and restarts the service. Use it when `neoagent setup && neoagent restart` hasn't resolved an issue.
|
|
72
74
|
|
|
73
75
|
## Runtime Paths
|
|
74
76
|
|
|
75
|
-
| Path |
|
|
77
|
+
| Path | Contents |
|
|
76
78
|
|---|---|
|
|
77
79
|
| `~/.neoagent/.env` | Server config and secrets |
|
|
78
|
-
| `~/.neoagent/data/` | Database,
|
|
79
|
-
| `~/.neoagent/agent-data/` | Skills, memory,
|
|
80
|
+
| `~/.neoagent/data/` | Database, session data, logs |
|
|
81
|
+
| `~/.neoagent/agent-data/` | Skills, memory, daily data |
|
|
80
82
|
|
|
81
|
-
Set `NEOAGENT_HOME`
|
|
83
|
+
Set `NEOAGENT_HOME` to move the runtime root.
|
package/docs/index.md
CHANGED
|
@@ -6,9 +6,7 @@ sidebar_label: Overview
|
|
|
6
6
|
|
|
7
7
|
# NeoAgent
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
It is designed for people who want a focused personal automation server rather than a broad gateway platform. NeoAgent can run triggered tasks, control a browser, operate a server-attached Android emulator or device, manage files, remember long-term context, connect to hosted AI providers or local Ollama, search recordings, read synced health summaries, and send results through Telegram, Discord, WhatsApp, or Telnyx Voice.
|
|
9
|
+
Self-hosted AI agent server. Runs as a system service, keeps all credentials on your machine, and provides a full operator UI for chat, automation, Android device control, recordings, integrations, and memory.
|
|
12
10
|
|
|
13
11
|
## Quick Start
|
|
14
12
|
|
|
@@ -17,34 +15,30 @@ npm install -g neoagent
|
|
|
17
15
|
neoagent install
|
|
18
16
|
```
|
|
19
17
|
|
|
20
|
-
|
|
18
|
+
Opens at `http://localhost:3333` when complete. See [Getting Started](getting-started.md) for prerequisites and first-run steps.
|
|
21
19
|
|
|
22
|
-
## What
|
|
20
|
+
## What You Can Do
|
|
23
21
|
|
|
24
|
-
|
|
|
22
|
+
| | |
|
|
25
23
|
|---|---|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
| Need | Start here |
|
|
24
|
+
| **Chat with tools** | Browse the web, run shell commands, read/write files, call APIs, generate images |
|
|
25
|
+
| **Automate** | Schedule tasks on cron, trigger from integrations or weather events, deliver results via messaging |
|
|
26
|
+
| **Control Android** | Screenshot, observe UI, tap, type, swipe, launch apps, install APKs, run `adb shell` |
|
|
27
|
+
| **Connect accounts** | Google Workspace, Microsoft 365, Notion, Slack, Figma, Home Assistant, Trello, Spotify |
|
|
28
|
+
| **Message anywhere** | Telegram, WhatsApp, Discord, Signal, Matrix, iMessage, Teams, Telnyx Voice, and more |
|
|
29
|
+
| **Record and transcribe** | Audio sessions from browser or Android, transcript search, AI-generated insights |
|
|
30
|
+
| **Remember** | Long-term semantic memory, session logs, core facts, daily summaries |
|
|
31
|
+
|
|
32
|
+
## Documentation
|
|
33
|
+
|
|
34
|
+
| | |
|
|
39
35
|
|---|---|
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
| OpenClaw comparison | [Why NeoAgent](why-neoagent.md) |
|
|
50
|
-
| Migration from OpenClaw/Hermes | [Migration Guide](migration.md) |
|
|
36
|
+
| [Getting Started](getting-started.md) | Install, first run, service commands |
|
|
37
|
+
| [Capabilities](capabilities.md) | Full tool and feature inventory |
|
|
38
|
+
| [Configuration](configuration.md) | Environment variables, provider keys, OAuth setup |
|
|
39
|
+
| [Automation](automation.md) | Tasks, cron scheduling, integration triggers |
|
|
40
|
+
| [Integrations](integrations.md) | OAuth accounts and messaging platforms |
|
|
41
|
+
| [Skills](skills.md) | Built-in skills catalog, custom skills, MCP |
|
|
42
|
+
| [Operations](operations.md) | Updates, logs, recovery |
|
|
43
|
+
| [Why NeoAgent](why-neoagent.md) | Comparison with OpenClaw |
|
|
44
|
+
| [Migration](migration.md) | Migrate from OpenClaw or Hermes |
|
package/docs/integrations.md
CHANGED
|
@@ -1,83 +1,66 @@
|
|
|
1
1
|
# Integrations
|
|
2
2
|
|
|
3
|
-
NeoAgent has two integration layers: official integrations for structured app tools, and messaging platforms for
|
|
3
|
+
NeoAgent has two integration layers: official integrations for structured app tools, and messaging platforms for communicating with the agent.
|
|
4
4
|
|
|
5
5
|
## Official Integrations
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Structured OAuth-backed tools the agent can use in chat and automation. Connect accounts in the Flutter app under **Integrations**.
|
|
8
8
|
|
|
9
|
-
| Provider |
|
|
9
|
+
| Provider | What the agent can do |
|
|
10
10
|
|---|---|
|
|
11
|
-
| Google Workspace | Gmail, Calendar, Drive, Docs,
|
|
12
|
-
|
|
|
13
|
-
|
|
|
14
|
-
| Slack |
|
|
15
|
-
| Figma |
|
|
16
|
-
| Home Assistant |
|
|
17
|
-
| Trello |
|
|
18
|
-
|
|
|
19
|
-
|
|
|
11
|
+
| **Google Workspace** | Search and send Gmail, read/create Calendar events, Drive upload/download/share, Docs create/append, Sheets read/write |
|
|
12
|
+
| **Microsoft 365** | Outlook mail, Calendar, OneDrive, Teams messages, Graph API |
|
|
13
|
+
| **Notion** | Search pages, read/write databases and blocks, manage comments |
|
|
14
|
+
| **Slack** | Read and send messages, search conversations |
|
|
15
|
+
| **Figma** | Read files and nodes, get rendered images, manage comments |
|
|
16
|
+
| **Home Assistant** | Read entity state, call services |
|
|
17
|
+
| **Trello** | Manage boards, lists, cards, comments, and search |
|
|
18
|
+
| **Spotify** | Playback controls, search, queue management |
|
|
19
|
+
| **Weather** | Current conditions and forecasts — no API key needed |
|
|
20
|
+
| **Personal WhatsApp** | Per-account read and send with isolated access |
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
### Access Modes
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
Each connected account can be set to **Read/Write** (default) or **Read Only**. Read-only blocks all write operations server-side — sending, creating, updating, and deleting.
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
### OAuth Setup
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
- `Read Only`
|
|
28
|
+
Most providers require OAuth app credentials in server config before users can connect. See [Configuration: Official Integrations](configuration.md#official-integrations) for the required environment variables.
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
Home Assistant and Trello can be configured per-user in the **Integrations** UI without any server-side setup.
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
The default OAuth callback URL is `PUBLIC_URL + /api/integrations/oauth/callback`.
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
You can override it with provider-specific redirect URI variables listed in [Configuration](configuration.md).
|
|
34
|
+
**If an OAuth connection fails:**
|
|
35
|
+
1. Confirm `PUBLIC_URL` is reachable by the provider
|
|
36
|
+
2. Confirm the redirect URI in your OAuth app matches NeoAgent's callback URL
|
|
37
|
+
3. Confirm the client ID and secret are set in server config
|
|
38
|
+
4. Restart after changing environment variables: `neoagent restart`
|
|
41
39
|
|
|
42
40
|
## Messaging Platforms
|
|
43
41
|
|
|
44
|
-
|
|
42
|
+
Channels through which users and the agent communicate. Configure credentials in the Flutter app under **Settings → Messaging** — not in `.env`.
|
|
45
43
|
|
|
46
44
|
| Platform | Notes |
|
|
47
45
|
|---|---|
|
|
48
|
-
| WhatsApp | Messaging
|
|
49
|
-
| Telegram | Bot token plus approved
|
|
50
|
-
| Discord | Bot token plus server or channel access |
|
|
51
|
-
| Slack | Bot token sends
|
|
52
|
-
| Google Chat | Space webhook sends
|
|
53
|
-
| Microsoft Teams | Incoming webhook sends
|
|
54
|
-
| Matrix | Homeserver access token
|
|
55
|
-
| Signal | signal-cli REST API bridge |
|
|
56
|
-
| iMessage / BlueBubbles | BlueBubbles-compatible bridge
|
|
57
|
-
| IRC and Twitch | IRC-style channel connections |
|
|
58
|
-
| LINE and Mattermost | Native send
|
|
59
|
-
|
|
|
60
|
-
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
Telnyx exception: only the Telnyx voice webhook verification token stays in server environment variables as `TELNYX_WEBHOOK_TOKEN`, because webhook request verification is performed server-side. Other Telnyx and messaging channel credentials should be configured in the Flutter app messaging tab as part of channel/client configuration.
|
|
71
|
-
|
|
72
|
-
## Credentials
|
|
73
|
-
|
|
74
|
-
Keep provider API keys, OAuth client secrets, and messaging tokens on the server. Do not put them in docs, skill files, client-side code, screenshots, or logs.
|
|
75
|
-
|
|
76
|
-
If an OAuth provider fails to connect, check:
|
|
77
|
-
|
|
78
|
-
- `PUBLIC_URL` is reachable by the provider.
|
|
79
|
-
- The provider redirect URI matches NeoAgent's callback URL.
|
|
80
|
-
- The provider client ID and client secret are set on the server.
|
|
81
|
-
- The NeoAgent service was restarted after changing environment variables.
|
|
82
|
-
|
|
83
|
-
See [Capabilities](capabilities.md) for examples of the structured tools exposed by each provider.
|
|
46
|
+
| **WhatsApp** | Messaging bridge for agent chat; separate official integration for structured read/send tools |
|
|
47
|
+
| **Telegram** | Bot token plus approved chat IDs |
|
|
48
|
+
| **Discord** | Bot token plus server or channel access |
|
|
49
|
+
| **Slack** | Bot token sends, Events API callbacks |
|
|
50
|
+
| **Google Chat** | Space webhook sends, app callback ingestion |
|
|
51
|
+
| **Microsoft Teams** | Incoming webhook sends, outgoing webhook ingestion |
|
|
52
|
+
| **Matrix** | Homeserver access token, room send, polling |
|
|
53
|
+
| **Signal** | signal-cli REST API bridge |
|
|
54
|
+
| **iMessage / BlueBubbles** | BlueBubbles-compatible bridge on a macOS host |
|
|
55
|
+
| **IRC and Twitch** | IRC-style channel connections |
|
|
56
|
+
| **LINE and Mattermost** | Native send, webhook ingestion |
|
|
57
|
+
| **Telnyx Voice** | Inbound and outbound calls with text-to-speech |
|
|
58
|
+
| **Webhook bridges** | Feishu, Nextcloud Talk, Nostr, Synology Chat, Tlon, Zalo, WeChat, WebChat |
|
|
59
|
+
|
|
60
|
+
Inbound webhook path: `PUBLIC_URL + /api/messaging/webhook/:platform`
|
|
61
|
+
|
|
62
|
+
`TELNYX_WEBHOOK_TOKEN` is the only messaging credential that goes in `.env` — all others are configured through the app messaging tab.
|
|
63
|
+
|
|
64
|
+
## Security
|
|
65
|
+
|
|
66
|
+
Keep OAuth client secrets, bot tokens, and API keys on the server. Don't put them in skill files, task prompts, screenshots, or logs. Rotate immediately if a credential is exposed.
|