clawmacdo 0.19.0 → 0.21.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 (2) hide show
  1. package/README.md +110 -11
  2. package/package.json +4 -4
package/README.md CHANGED
@@ -5,8 +5,11 @@
5
5
 
6
6
  Rust CLI tool for deploying [OpenClaw](https://openclaw.ai) to **DigitalOcean**, **AWS Lightsail**, **Tencent Cloud**, **Microsoft Azure**, or **BytePlus Cloud** — with Claude Code, Codex, and Gemini CLI pre-installed.
7
7
 
8
- ## ✨ What's New in v0.19.0
8
+ ## ✨ What's New in v0.20.0
9
9
 
10
+ - **`do-restore` subcommand** — restore a DigitalOcean droplet from a snapshot by name, with standard `openclaw-{id}` naming and deploy record saved to both JSON and SQLite (visible in web UI Deployments tab)
11
+
12
+ ### Previous highlights (v0.19.x)
10
13
  - **One-click Funnel access** — "Open" button in Deployments tab opens the Funnel webchat with gateway token pre-injected (no manual token paste or device pairing needed)
11
14
  - **Auto-disable device pairing for Funnel** — Funnel setup sets `dangerouslyDisableDeviceAuth: true` so browser connections via Tailscale Funnel skip the pairing screen
12
15
 
@@ -81,6 +84,7 @@ clawmacdo/
81
84
  - **Backup** local `~/.openclaw/` config into a timestamped `.tar.gz`
82
85
  - **1-click deploy**: generate SSH keys, provision a cloud instance, install Node 24 + OpenClaw + Claude Code + Codex + Gemini CLI, restore config, configure `.env` (API + messaging), start the gateway, and auto-configure model failover
83
86
  - **Cloud-to-cloud migration**: SSH into a source instance, back up remotely, deploy to a new instance, restore
87
+ - **Snapshot restore**: create a DigitalOcean droplet from a snapshot by name, with deploy record saved to SQLite for web UI visibility
84
88
  - **Destroy**: delete an instance by name with confirmation, clean up SSH keys (cloud + local)
85
89
  - **Status**: list all openclaw-tagged instances with IPs
86
90
  - **List backups**: show local backup archives with sizes and dates
@@ -221,11 +225,14 @@ clawmacdo deploy \
221
225
  export BYTEPLUS_ACCESS_KEY="your_access_key"
222
226
  export BYTEPLUS_SECRET_KEY="your_secret_key"
223
227
 
224
- # Deploy to Singapore region
228
+ # Deploy with BytePlus ARK as primary AI model
225
229
  clawmacdo deploy \
226
230
  --provider byteplus \
227
231
  --customer-name "my-openclaw-bp" \
228
- --region ap-southeast-1
232
+ --region ap-southeast-1 \
233
+ --primary-model byteplus \
234
+ --byteplus-ark-api-key "$BYTEPLUS_ARK_API_KEY" \
235
+ --anthropic-key "$ANTHROPIC_API_KEY"
229
236
  ```
230
237
 
231
238
  #### BytePlus Instance Sizes
@@ -237,6 +244,90 @@ clawmacdo deploy \
237
244
  | `ecs.c3i.xlarge` | 4 | 8 GB | Compute-optimized |
238
245
  | `ecs.g3i.xlarge` | 4 | 16 GB | General purpose |
239
246
 
247
+ ### AI Model Configuration
248
+
249
+ Set a primary AI model and optional failovers for the deployed instance. Supported models: `anthropic`, `openai`, `gemini`, `byteplus`.
250
+
251
+ ```bash
252
+ # Anthropic as primary (default)
253
+ clawmacdo deploy --provider do --customer-email "user@example.com" \
254
+ --primary-model anthropic --anthropic-key "$ANTHROPIC_API_KEY"
255
+
256
+ # BytePlus ARK as primary with Anthropic failover
257
+ clawmacdo deploy --provider bp --customer-email "user@example.com" \
258
+ --primary-model byteplus --failover-1 anthropic \
259
+ --byteplus-ark-api-key "$BYTEPLUS_ARK_API_KEY" \
260
+ --anthropic-key "$ANTHROPIC_API_KEY"
261
+
262
+ # Multi-model failover chain
263
+ clawmacdo deploy --provider do --customer-email "user@example.com" \
264
+ --primary-model anthropic --failover-1 openai --failover-2 gemini \
265
+ --anthropic-key "$ANTHROPIC_API_KEY" \
266
+ --openai-key "$OPENAI_API_KEY" --gemini-key "$GEMINI_API_KEY"
267
+ ```
268
+
269
+ | Model | `--primary-model` value | Model identifier | Required flag |
270
+ |-------|------------------------|------------------|---------------|
271
+ | Anthropic Claude | `anthropic` | `anthropic/claude-opus-4-6` | `--anthropic-key` |
272
+ | OpenAI | `openai` | `openai/gpt-5-mini` | `--openai-key` |
273
+ | Google Gemini | `gemini` | `google/gemini-2.5-flash` | `--gemini-key` |
274
+ | BytePlus ARK | `byteplus` | `byteplus/ark-code-latest` | `--byteplus-ark-api-key` |
275
+
276
+ ### ARK API Key Management
277
+
278
+ Generate temporary BytePlus ARK API keys or list available endpoints.
279
+
280
+ ```bash
281
+ # List available ARK endpoints
282
+ clawmacdo ark-api-key --list
283
+
284
+ # Generate a 7-day API key for an endpoint
285
+ clawmacdo ark-api-key \
286
+ --resource-ids ep-20260315233753-58rpv
287
+
288
+ # Generate a 30-day key for multiple endpoints
289
+ clawmacdo ark-api-key \
290
+ --resource-ids ep-abc123,ep-def456 \
291
+ --duration 2592000
292
+ ```
293
+
294
+ ### ARK Chat
295
+
296
+ Send chat prompts directly to BytePlus ARK model endpoints from the CLI.
297
+
298
+ ```bash
299
+ # Direct usage
300
+ clawmacdo ark-chat \
301
+ --api-key "$ARK_API_KEY" \
302
+ --endpoint-id ep-20260315233753-58rpv \
303
+ "Hello, what model are you?"
304
+
305
+ # Using environment variables
306
+ export ARK_API_KEY="your_ark_api_key"
307
+ export ARK_ENDPOINT_ID="ep-20260315233753-58rpv"
308
+ clawmacdo ark-chat "Explain quantum computing in 3 sentences."
309
+ ```
310
+
311
+ ### Restore DigitalOcean Droplet from Snapshot
312
+
313
+ Create a new droplet from an existing DigitalOcean snapshot. The droplet name follows the standard `openclaw-{id}` naming convention.
314
+
315
+ ```bash
316
+ # Restore from a snapshot by name
317
+ clawmacdo do-restore \
318
+ --do-token "$DO_TOKEN" \
319
+ --snapshot-name "my-openclaw-snapshot"
320
+
321
+ # With region and size overrides
322
+ clawmacdo do-restore \
323
+ --do-token "$DO_TOKEN" \
324
+ --snapshot-name "my-openclaw-snapshot" \
325
+ --region nyc1 \
326
+ --size s-4vcpu-8gb
327
+ ```
328
+
329
+ The command generates a new SSH key pair, looks up the snapshot by name, creates the droplet, waits for it to become active, and saves a deploy record for use with other `clawmacdo` commands.
330
+
240
331
  ### Track Deploy Progress
241
332
 
242
333
  ```bash
@@ -290,15 +381,20 @@ clawmacdo deploy --restore-from ~/.openclaw/backups/openclaw-2024-03-09_14-30-15
290
381
  clawmacdo deploy \
291
382
  --provider digitalocean \
292
383
  --customer-name "production-openclaw" \
384
+ --customer-email "admin@company.com" \
293
385
  --size s-2vcpu-4gb \
294
386
  --region nyc1 \
295
- --restore-from ~/openclaw-backup.tar.gz \
296
- --claude-api-key "$CLAUDE_API_KEY" \
297
- --openai-api-key "$OPENAI_API_KEY" \
298
- --whatsapp-phone "+1234567890" \
299
- --telegram-token "$TELEGRAM_TOKEN" \
387
+ --primary-model anthropic \
388
+ --failover-1 openai \
389
+ --failover-2 gemini \
390
+ --anthropic-key "$ANTHROPIC_API_KEY" \
391
+ --openai-key "$OPENAI_API_KEY" \
392
+ --gemini-key "$GEMINI_API_KEY" \
393
+ --telegram-bot-token "$TELEGRAM_TOKEN" \
394
+ --whatsapp-phone-number "+1234567890" \
300
395
  --tailscale \
301
- --tailscale-auth-key "$TAILSCALE_AUTH"
396
+ --tailscale-auth-key "$TAILSCALE_AUTH" \
397
+ --backup ~/openclaw-backup.tar.gz
302
398
  ```
303
399
 
304
400
  ### Quick Status Check
@@ -362,6 +458,9 @@ new-crate = { workspace = true }
362
458
  | `AZURE_CLIENT_SECRET` | Azure service principal client secret | For Azure deploys |
363
459
  | `BYTEPLUS_ACCESS_KEY` | BytePlus Access Key | For BytePlus deploys |
364
460
  | `BYTEPLUS_SECRET_KEY` | BytePlus Secret Key | For BytePlus deploys |
461
+ | `BYTEPLUS_ARK_API_KEY` | BytePlus ARK API key (for AI model inference) | For BytePlus ARK model |
462
+ | `ARK_API_KEY` | ARK bearer token for `ark-chat` | For `ark-chat` |
463
+ | `ARK_ENDPOINT_ID` | ARK endpoint ID for `ark-chat` | For `ark-chat` |
365
464
  | `CLAUDE_API_KEY` | Anthropic Claude API key | Optional |
366
465
  | `OPENAI_API_KEY` | OpenAI API key | Optional |
367
466
  | `TELEGRAM_TOKEN` | Telegram bot token | Optional |
@@ -412,6 +511,6 @@ See [CHANGELOG.md](CHANGELOG.md) for version history and breaking changes.
412
511
 
413
512
  ---
414
513
 
415
- **Last updated:** March 16, 2026
416
- **Current version:** 0.18.0
514
+ **Last updated:** March 17, 2026
515
+ **Current version:** 0.20.0
417
516
  **Architecture version:** 2.0 (modular workspace)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clawmacdo",
3
- "version": "0.19.0",
3
+ "version": "0.21.0",
4
4
  "description": "CLI tool for deploying OpenClaw to multiple cloud providers with pre-installed AI dev tools",
5
5
  "keywords": [
6
6
  "openclaw",
@@ -30,8 +30,8 @@
30
30
  "node": ">=16"
31
31
  },
32
32
  "optionalDependencies": {
33
- "@clawmacdo/darwin-arm64": "0.19.0",
34
- "@clawmacdo/linux-x64": "0.19.0",
35
- "@clawmacdo/win32-x64": "0.19.0"
33
+ "@clawmacdo/darwin-arm64": "0.21.0",
34
+ "@clawmacdo/linux-x64": "0.21.0",
35
+ "@clawmacdo/win32-x64": "0.21.0"
36
36
  }
37
37
  }