refactor: rename clawdbot to moltbot with legacy compat

This commit is contained in:
Peter Steinberger
2026-01-27 12:19:58 +00:00
parent 83460df96f
commit 6d16a658e5
1839 changed files with 11250 additions and 11199 deletions

View File

@@ -6,13 +6,13 @@ read_when:
---
# Auth monitoring
Clawdbot exposes OAuth expiry health via `clawdbot models status`. Use that for
Moltbot exposes OAuth expiry health via `moltbot models status`. Use that for
automation and alerting; scripts are optional extras for phone workflows.
## Preferred: CLI check (portable)
```bash
clawdbot models status --check
moltbot models status --check
```
Exit codes:
@@ -27,15 +27,15 @@ This works in cron/systemd and requires no extra scripts.
These live under `scripts/` and are **optional**. They assume SSH access to the
gateway host and are tuned for systemd + Termux.
- `scripts/claude-auth-status.sh` now uses `clawdbot models status --json` as the
- `scripts/claude-auth-status.sh` now uses `moltbot models status --json` as the
source of truth (falling back to direct file reads if the CLI is unavailable),
so keep `clawdbot` on `PATH` for timers.
so keep `moltbot` on `PATH` for timers.
- `scripts/auth-monitor.sh`: cron/systemd timer target; sends alerts (ntfy or phone).
- `scripts/systemd/clawdbot-auth-monitor.{service,timer}`: systemd user timer.
- `scripts/claude-auth-status.sh`: Claude Code + Clawdbot auth checker (full/json/simple).
- `scripts/systemd/moltbot-auth-monitor.{service,timer}`: systemd user timer.
- `scripts/claude-auth-status.sh`: Claude Code + Moltbot auth checker (full/json/simple).
- `scripts/mobile-reauth.sh`: guided reauth flow over SSH.
- `scripts/termux-quick-auth.sh`: onetap widget status + open auth URL.
- `scripts/termux-auth-widget.sh`: full guided widget flow.
- `scripts/termux-sync-widget.sh`: sync Claude Code creds → Clawdbot.
- `scripts/termux-sync-widget.sh`: sync Claude Code creds → Moltbot.
If you dont need phone automation or systemd timers, skip these scripts.

View File

@@ -175,7 +175,7 @@ Disable cron entirely:
One-shot reminder (UTC ISO, auto-delete after success):
```bash
clawdbot cron add \
moltbot cron add \
--name "Send reminder" \
--at "2026-01-12T18:00:00Z" \
--session main \
@@ -186,7 +186,7 @@ clawdbot cron add \
One-shot reminder (main session, wake immediately):
```bash
clawdbot cron add \
moltbot cron add \
--name "Calendar check" \
--at "20m" \
--session main \
@@ -196,7 +196,7 @@ clawdbot cron add \
Recurring isolated job (deliver to WhatsApp):
```bash
clawdbot cron add \
moltbot cron add \
--name "Morning status" \
--cron "0 7 * * *" \
--tz "America/Los_Angeles" \
@@ -209,7 +209,7 @@ clawdbot cron add \
Recurring isolated job (deliver to a Telegram topic):
```bash
clawdbot cron add \
moltbot cron add \
--name "Nightly summary (topic)" \
--cron "0 22 * * *" \
--tz "America/Los_Angeles" \
@@ -222,7 +222,7 @@ clawdbot cron add \
Isolated job with model and thinking override:
```bash
clawdbot cron add \
moltbot cron add \
--name "Deep analysis" \
--cron "0 6 * * 1" \
--tz "America/Los_Angeles" \
@@ -237,22 +237,22 @@ clawdbot cron add \
Agent selection (multi-agent setups):
```bash
# Pin a job to agent "ops" (falls back to default if that agent is missing)
clawdbot cron add --name "Ops sweep" --cron "0 6 * * *" --session isolated --message "Check ops queue" --agent ops
moltbot cron add --name "Ops sweep" --cron "0 6 * * *" --session isolated --message "Check ops queue" --agent ops
# Switch or clear the agent on an existing job
clawdbot cron edit <jobId> --agent ops
clawdbot cron edit <jobId> --clear-agent
moltbot cron edit <jobId> --agent ops
moltbot cron edit <jobId> --clear-agent
```
```
Manual run (debug):
```bash
clawdbot cron run <jobId> --force
moltbot cron run <jobId> --force
```
Edit an existing job (patch fields):
```bash
clawdbot cron edit <jobId> \
moltbot cron edit <jobId> \
--message "Updated prompt" \
--model "opus" \
--thinking low
@@ -260,18 +260,18 @@ clawdbot cron edit <jobId> \
Run history:
```bash
clawdbot cron runs --id <jobId> --limit 50
moltbot cron runs --id <jobId> --limit 50
```
Immediate system event without creating a job:
```bash
clawdbot system event --mode now --text "Next heartbeat: check battery."
moltbot system event --mode now --text "Next heartbeat: check battery."
```
## Gateway API surface
- `cron.list`, `cron.status`, `cron.add`, `cron.update`, `cron.remove`
- `cron.run` (force or due), `cron.runs`
For immediate system events without a job, use [`clawdbot system event`](/cli/system).
For immediate system events without a job, use [`moltbot system event`](/cli/system).
## Troubleshooting

View File

@@ -95,7 +95,7 @@ Cron jobs run at **exact times** and can run in isolated sessions without affect
### Cron example: Daily morning briefing
```bash
clawdbot cron add \
moltbot cron add \
--name "Morning briefing" \
--cron "0 7 * * *" \
--tz "America/New_York" \
@@ -112,7 +112,7 @@ This runs at exactly 7:00 AM New York time, uses Opus for quality, and delivers
### Cron example: One-shot reminder
```bash
clawdbot cron add \
moltbot cron add \
--name "Meeting reminder" \
--at "20m" \
--session main \
@@ -168,13 +168,13 @@ The most efficient setup uses **both**:
**Cron jobs** (precise timing):
```bash
# Daily morning briefing at 7am
clawdbot cron add --name "Morning brief" --cron "0 7 * * *" --session isolated --message "..." --deliver
moltbot cron add --name "Morning brief" --cron "0 7 * * *" --session isolated --message "..." --deliver
# Weekly project review on Mondays at 9am
clawdbot cron add --name "Weekly review" --cron "0 9 * * 1" --session isolated --message "..." --model opus
moltbot cron add --name "Weekly review" --cron "0 9 * * 1" --session isolated --message "..." --model opus
# One-shot reminder
clawdbot cron add --name "Call back" --at "2h" --session main --system-event "Call back the client" --wake now
moltbot cron add --name "Call back" --at "2h" --session main --system-event "Call back the client" --wake now
```
@@ -226,7 +226,7 @@ Use `--session main` with `--system-event` when you want:
- No separate isolated run
```bash
clawdbot cron add \
moltbot cron add \
--name "Check project" \
--every "4h" \
--session main \
@@ -243,7 +243,7 @@ Use `--session isolated` when you want:
- History that doesn't clutter main session
```bash
clawdbot cron add \
moltbot cron add \
--name "Deep analysis" \
--cron "0 6 * * 0" \
--session isolated \

View File

@@ -1,19 +1,19 @@
---
summary: "Gmail Pub/Sub push wired into Clawdbot webhooks via gogcli"
summary: "Gmail Pub/Sub push wired into Moltbot webhooks via gogcli"
read_when:
- Wiring Gmail inbox triggers to Clawdbot
- Wiring Gmail inbox triggers to Moltbot
- Setting up Pub/Sub push for agent wake
---
# Gmail Pub/Sub -> Clawdbot
# Gmail Pub/Sub -> Moltbot
Goal: Gmail watch -> Pub/Sub push -> `gog gmail watch serve` -> Clawdbot webhook.
Goal: Gmail watch -> Pub/Sub push -> `gog gmail watch serve` -> Moltbot webhook.
## Prereqs
- `gcloud` installed and logged in ([install guide](https://docs.cloud.google.com/sdk/docs/install-sdk)).
- `gog` (gogcli) installed and authorized for the Gmail account ([gogcli.sh](https://gogcli.sh/)).
- Clawdbot hooks enabled (see [Webhooks](/automation/webhook)).
- Moltbot hooks enabled (see [Webhooks](/automation/webhook)).
- `tailscale` logged in ([tailscale.com](https://tailscale.com/)). Supported setup uses Tailscale Funnel for the public HTTPS endpoint.
Other tunnel services can work, but are DIY/unsupported and require manual wiring.
Right now, Tailscale is what we support.
@@ -91,19 +91,19 @@ under `hooks.transformsDir` (see [Webhooks](/automation/webhook)).
## Wizard (recommended)
Use the Clawdbot helper to wire everything together (installs deps on macOS via brew):
Use the Moltbot helper to wire everything together (installs deps on macOS via brew):
```bash
clawdbot webhooks gmail setup \
--account clawdbot@gmail.com
moltbot webhooks gmail setup \
--account moltbot@gmail.com
```
Defaults:
- Uses Tailscale Funnel for the public push endpoint.
- Writes `hooks.gmail` config for `clawdbot webhooks gmail run`.
- Writes `hooks.gmail` config for `moltbot webhooks gmail run`.
- Enables the Gmail hook preset (`hooks.presets: ["gmail"]`).
Path note: when `tailscale.mode` is enabled, Clawdbot automatically sets
Path note: when `tailscale.mode` is enabled, Moltbot automatically sets
`hooks.gmail.serve.path` to `/` and keeps the public path at
`hooks.gmail.tailscale.path` (default `/gmail-pubsub`) because Tailscale
strips the set-path prefix before proxying.
@@ -126,7 +126,7 @@ Gateway auto-start (recommended):
Manual daemon (starts `gog gmail watch serve` + auto-renew):
```bash
clawdbot webhooks gmail run
moltbot webhooks gmail run
```
## One-time setup
@@ -164,7 +164,7 @@ gcloud pubsub topics add-iam-policy-binding gog-gmail-watch \
```bash
gog gmail watch start \
--account clawdbot@gmail.com \
--account moltbot@gmail.com \
--label INBOX \
--topic projects/<project-id>/topics/gog-gmail-watch
```
@@ -177,7 +177,7 @@ Local example (shared token auth):
```bash
gog gmail watch serve \
--account clawdbot@gmail.com \
--account moltbot@gmail.com \
--bind 127.0.0.1 \
--port 8788 \
--path /gmail-pubsub \
@@ -190,10 +190,10 @@ gog gmail watch serve \
Notes:
- `--token` protects the push endpoint (`x-gog-token` or `?token=`).
- `--hook-url` points to Clawdbot `/hooks/gmail` (mapped; isolated run + summary to main).
- `--include-body` and `--max-bytes` control the body snippet sent to Clawdbot.
- `--hook-url` points to Moltbot `/hooks/gmail` (mapped; isolated run + summary to main).
- `--include-body` and `--max-bytes` control the body snippet sent to Moltbot.
Recommended: `clawdbot webhooks gmail run` wraps the same flow and auto-renews the watch.
Recommended: `moltbot webhooks gmail run` wraps the same flow and auto-renews the watch.
## Expose the handler (advanced, unsupported)
@@ -224,8 +224,8 @@ Send a message to the watched inbox:
```bash
gog gmail send \
--account clawdbot@gmail.com \
--to clawdbot@gmail.com \
--account moltbot@gmail.com \
--to moltbot@gmail.com \
--subject "watch test" \
--body "ping"
```
@@ -233,8 +233,8 @@ gog gmail send \
Check watch state and history:
```bash
gog gmail watch status --account clawdbot@gmail.com
gog gmail history --account clawdbot@gmail.com --since <historyId>
gog gmail watch status --account moltbot@gmail.com
gog gmail history --account moltbot@gmail.com --since <historyId>
```
## Troubleshooting
@@ -246,7 +246,7 @@ gog gmail history --account clawdbot@gmail.com --since <historyId>
## Cleanup
```bash
gog gmail watch stop --account clawdbot@gmail.com
gog gmail watch stop --account moltbot@gmail.com
gcloud pubsub subscriptions delete gog-gmail-watch-push
gcloud pubsub topics delete gog-gmail-watch
```

View File

@@ -16,19 +16,19 @@ read_when:
```bash
# WhatsApp
clawdbot message poll --target +15555550123 \
moltbot message poll --target +15555550123 \
--poll-question "Lunch today?" --poll-option "Yes" --poll-option "No" --poll-option "Maybe"
clawdbot message poll --target 123456789@g.us \
moltbot message poll --target 123456789@g.us \
--poll-question "Meeting time?" --poll-option "10am" --poll-option "2pm" --poll-option "4pm" --poll-multi
# Discord
clawdbot message poll --channel discord --target channel:123456789 \
moltbot message poll --channel discord --target channel:123456789 \
--poll-question "Snack?" --poll-option "Pizza" --poll-option "Sushi"
clawdbot message poll --channel discord --target channel:123456789 \
moltbot message poll --channel discord --target channel:123456789 \
--poll-question "Plan?" --poll-option "A" --poll-option "B" --poll-duration-hours 48
# MS Teams
clawdbot message poll --channel msteams --target conversation:19:abc@thread.tacv2 \
moltbot message poll --channel msteams --target conversation:19:abc@thread.tacv2 \
--poll-question "Lunch?" --poll-option "Pizza" --poll-option "Sushi"
```
@@ -53,7 +53,7 @@ Params:
## Channel differences
- WhatsApp: 2-12 options, `maxSelections` must be within option count, ignores `durationHours`.
- Discord: 2-10 options, `durationHours` clamped to 1-768 hours (default 24). `maxSelections > 1` enables multi-select; Discord does not support a strict selection count.
- MS Teams: Adaptive Card polls (Clawdbot-managed). No native poll API; `durationHours` is ignored.
- MS Teams: Adaptive Card polls (Moltbot-managed). No native poll API; `durationHours` is ignored.
## Agent tool (Message)
Use the `message` tool with `poll` action (`to`, `pollQuestion`, `pollOption`, optional `pollMulti`, `pollDurationHours`, `channel`).

View File

@@ -2,7 +2,7 @@
summary: "Webhook ingress for wake and isolated agent runs"
read_when:
- Adding or changing webhook endpoints
- Wiring external systems into Clawdbot
- Wiring external systems into Moltbot
---
# Webhooks
@@ -29,7 +29,7 @@ Notes:
Every request must include the hook token. Prefer headers:
- `Authorization: Bearer <token>` (recommended)
- `x-clawdbot-token: <token>`
- `x-moltbot-token: <token>`
- `?token=<token>` (deprecated; logs a warning and will be removed in a future major release)
## Endpoints
@@ -98,7 +98,7 @@ Mapping options (summary):
(`channel` defaults to `last` and falls back to WhatsApp).
- `allowUnsafeExternalContent: true` disables the external content safety wrapper for that hook
(dangerous; only for trusted internal sources).
- `clawdbot webhooks gmail setup` writes `hooks.gmail` config for `clawdbot webhooks gmail run`.
- `moltbot webhooks gmail setup` writes `hooks.gmail` config for `moltbot webhooks gmail run`.
See [Gmail Pub/Sub](/automation/gmail-pubsub) for the full Gmail watch flow.
## Responses
@@ -120,7 +120,7 @@ curl -X POST http://127.0.0.1:18789/hooks/wake \
```bash
curl -X POST http://127.0.0.1:18789/hooks/agent \
-H 'x-clawdbot-token: SECRET' \
-H 'x-moltbot-token: SECRET' \
-H 'Content-Type: application/json' \
-d '{"message":"Summarize inbox","name":"Email","wakeMode":"next-heartbeat"}'
```
@@ -131,7 +131,7 @@ Add `model` to the agent payload (or mapping) to override the model for that run
```bash
curl -X POST http://127.0.0.1:18789/hooks/agent \
-H 'x-clawdbot-token: SECRET' \
-H 'x-moltbot-token: SECRET' \
-H 'Content-Type: application/json' \
-d '{"message":"Summarize inbox","name":"Email","model":"openai/gpt-5.2-mini"}'
```