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.
Files changed (3) hide show
  1. package/README.md +9 -16
  2. package/cli.js +22 -19
  3. 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
- Set `TELEGRAM_ENABLED=true` and `TELEGRAM_BOT_TOKEN` in `~/.limbo/.env`, then restart:
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
- ```sh
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 via WebSocket to:
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
- │ │ Gateway │ │ or OpenAI) │ │
155
+ │ │ daemon │ │ or OpenAI) │ │
163
156
  │ │ :18789 │ └────────┬───────┘ │
164
157
  │ └──────┬──────┘ │ │
165
158
  │ │ ┌────────▼───────┐ │
166
- │ Telegram Bot │ MCP Server │ │
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 gateway that handles client connections, routes to the LLM, and integrates MCP tools
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 run --rm -e LLM_API_KEY=sk-ant-... -p 18789:18789 limbo:dev
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
- - telegram_bot_token
164
- - gateway_token
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
- - telegram_bot_token
220
- - gateway_token
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 (wizardUrl) {
1603
- printWizardUrl(wizardUrl, tunnel);
1604
- } else {
1605
- const fallbackUrl = `http://127.0.0.1:${PORT}`;
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "limbo-ai",
3
- "version": "1.20.0",
3
+ "version": "1.20.2",
4
4
  "description": "Your personal AI memory agent — install and manage Limbo via npx",
5
5
  "type": "commonjs",
6
6
  "bin": {