limbo-ai 1.20.0 → 1.20.2
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 +9 -16
- package/cli.js +22 -19
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -80,17 +80,11 @@ There are two ways to connect: **talk to Limbo** (conversational, with its perso
|
|
|
80
80
|
|
|
81
81
|
#### Telegram (recommended)
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
During setup (`npx limbo-ai start`), the wizard will walk you through creating a Telegram bot via BotFather and pairing it. Message your bot and Limbo will respond — full agent with personality, memory logic, and vault tools.
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
npx limbo-ai start --reconfigure
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
Message your bot and Limbo will respond — full agent with personality, memory logic, and vault tools.
|
|
90
|
-
|
|
91
|
-
#### ZeroClaw client
|
|
85
|
+
#### ZeroClaw gateway
|
|
92
86
|
|
|
93
|
-
Any ZeroClaw-compatible chat client can connect
|
|
87
|
+
Any [ZeroClaw](https://github.com/zeroclaw-labs/zeroclaw)-compatible chat client can connect to:
|
|
94
88
|
|
|
95
89
|
```
|
|
96
90
|
ws://localhost:18789
|
|
@@ -130,7 +124,6 @@ Managed automatically by `npx limbo-ai start`, stored in `~/.limbo/.env`.
|
|
|
130
124
|
| `MODEL_NAME` | no | `claude-opus-4-6` | Model name (e.g. `claude-opus-4-6`, `claude-sonnet-4-6`, `gpt-5.4`) |
|
|
131
125
|
| `TELEGRAM_ENABLED` | no | `false` | Enable Telegram bot integration |
|
|
132
126
|
| `TELEGRAM_BOT_TOKEN` | no | — | Telegram bot token (required if `TELEGRAM_ENABLED=true`) |
|
|
133
|
-
| `TELEGRAM_AUTO_PAIR_FIRST_DM` | no | `false` | Auto-approves the first Telegram DM sender and persists access (must opt-in explicitly) |
|
|
134
127
|
|
|
135
128
|
> \* API keys are required only for `AUTH_MODE=api-key`. Subscription auth uses ZeroClaw auth profiles instead.
|
|
136
129
|
|
|
@@ -159,12 +152,12 @@ Full tool specs in `workspace/TOOLS.md`.
|
|
|
159
152
|
│ │
|
|
160
153
|
│ ┌─────────────┐ ┌────────────────┐ │
|
|
161
154
|
│ │ ZeroClaw │◄──►│ LLM (Claude │ │
|
|
162
|
-
│ │
|
|
155
|
+
│ │ daemon │ │ or OpenAI) │ │
|
|
163
156
|
│ │ :18789 │ └────────┬───────┘ │
|
|
164
157
|
│ └──────┬──────┘ │ │
|
|
165
158
|
│ │ ┌────────▼───────┐ │
|
|
166
|
-
│ Telegram Bot
|
|
167
|
-
│ │ │ limbo-vault
|
|
159
|
+
│ Telegram Bot │ MCP Server │ │
|
|
160
|
+
│ │ │ limbo-vault │ │
|
|
168
161
|
│ │ └────────┬───────┘ │
|
|
169
162
|
│ └────────────────────┤ │
|
|
170
163
|
│ ▼ │
|
|
@@ -173,8 +166,8 @@ Full tool specs in `workspace/TOOLS.md`.
|
|
|
173
166
|
└─────────────────────────────────────────┘
|
|
174
167
|
```
|
|
175
168
|
|
|
176
|
-
- **ZeroClaw** — lightweight Rust
|
|
177
|
-
- **MCP server** — Node.js server providing vault read/write tools
|
|
169
|
+
- **ZeroClaw** — lightweight Rust runtime (~5MB RAM) that handles client connections, routes to the LLM, manages Telegram, and integrates MCP tools natively
|
|
170
|
+
- **MCP server** — Node.js server providing vault read/write tools (spawned by ZeroClaw, no mcporter needed)
|
|
178
171
|
- **Vault** — plain markdown files with YAML frontmatter, persisted in a named Docker volume
|
|
179
172
|
- **Migrations** — lightweight Node.js migration runner for vault schema changes
|
|
180
173
|
|
|
@@ -212,7 +205,7 @@ VAULT_PATH=./dev-vault node index.js
|
|
|
212
205
|
|
|
213
206
|
```sh
|
|
214
207
|
docker build -t limbo:dev .
|
|
215
|
-
docker
|
|
208
|
+
docker compose up -d
|
|
216
209
|
```
|
|
217
210
|
|
|
218
211
|
### Run migrations standalone
|
package/cli.js
CHANGED
|
@@ -159,9 +159,12 @@ function composeContent() {
|
|
|
159
159
|
- ${VAULT_DIR}:/data/vault
|
|
160
160
|
- limbo-zeroclaw-state:/home/limbo/.zeroclaw
|
|
161
161
|
secrets:
|
|
162
|
-
- llm_api_key
|
|
163
|
-
|
|
164
|
-
-
|
|
162
|
+
- source: llm_api_key
|
|
163
|
+
mode: 0444
|
|
164
|
+
- source: telegram_bot_token
|
|
165
|
+
mode: 0444
|
|
166
|
+
- source: gateway_token
|
|
167
|
+
mode: 0444
|
|
165
168
|
env_file:
|
|
166
169
|
- ${LIMBO_DIR}/.env
|
|
167
170
|
environment:
|
|
@@ -179,10 +182,13 @@ function composeContent() {
|
|
|
179
182
|
secrets:
|
|
180
183
|
llm_api_key:
|
|
181
184
|
file: ${SECRETS_DIR}/llm_api_key
|
|
185
|
+
mode: 0444
|
|
182
186
|
telegram_bot_token:
|
|
183
187
|
file: ${SECRETS_DIR}/telegram_bot_token
|
|
188
|
+
mode: 0444
|
|
184
189
|
gateway_token:
|
|
185
190
|
file: ${SECRETS_DIR}/gateway_token
|
|
191
|
+
mode: 0444
|
|
186
192
|
|
|
187
193
|
volumes:
|
|
188
194
|
limbo-data:
|
|
@@ -215,9 +221,12 @@ function composeContentHardened() {
|
|
|
215
221
|
- ${VAULT_DIR}:/data/vault
|
|
216
222
|
- limbo-zeroclaw-state:/home/limbo/.zeroclaw
|
|
217
223
|
secrets:
|
|
218
|
-
- llm_api_key
|
|
219
|
-
|
|
220
|
-
-
|
|
224
|
+
- source: llm_api_key
|
|
225
|
+
mode: 0444
|
|
226
|
+
- source: telegram_bot_token
|
|
227
|
+
mode: 0444
|
|
228
|
+
- source: gateway_token
|
|
229
|
+
mode: 0444
|
|
221
230
|
env_file:
|
|
222
231
|
- ${LIMBO_DIR}/.env
|
|
223
232
|
environment:
|
|
@@ -266,10 +275,13 @@ networks:
|
|
|
266
275
|
secrets:
|
|
267
276
|
llm_api_key:
|
|
268
277
|
file: ${SECRETS_DIR}/llm_api_key
|
|
278
|
+
mode: 0444
|
|
269
279
|
telegram_bot_token:
|
|
270
280
|
file: ${SECRETS_DIR}/telegram_bot_token
|
|
281
|
+
mode: 0444
|
|
271
282
|
gateway_token:
|
|
272
283
|
file: ${SECRETS_DIR}/gateway_token
|
|
284
|
+
mode: 0444
|
|
273
285
|
|
|
274
286
|
volumes:
|
|
275
287
|
limbo-data:
|
|
@@ -1599,19 +1611,10 @@ async function cmdStart() {
|
|
|
1599
1611
|
tunnel = await createSetupTunnel(PORT);
|
|
1600
1612
|
}
|
|
1601
1613
|
|
|
1602
|
-
if
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
console.log(`
|
|
1607
|
-
${c.green}${c.bold}Limbo is starting.${c.reset}
|
|
1608
|
-
|
|
1609
|
-
Open: ${c.cyan}${c.bold}${fallbackUrl}${c.reset}
|
|
1610
|
-
${c.dim}(may take a few seconds to be ready)${c.reset}
|
|
1611
|
-
|
|
1612
|
-
Logs: ${c.dim}limbo logs${c.reset}
|
|
1613
|
-
`);
|
|
1614
|
-
}
|
|
1614
|
+
// Always show the wizard URL with tunnel/SSH info, even if we couldn't
|
|
1615
|
+
// extract the token-authenticated URL from logs.
|
|
1616
|
+
const displayUrl = wizardUrl || `http://127.0.0.1:${PORT}`;
|
|
1617
|
+
printWizardUrl(displayUrl, tunnel);
|
|
1615
1618
|
}
|
|
1616
1619
|
|
|
1617
1620
|
// Shared path for headless, CLI-prompt, and existing-config routes
|