refactor: rename clawdbot to moltbot with legacy compat
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
---
|
||||
summary: "Default Clawdbot agent instructions and skills roster for the personal assistant setup"
|
||||
summary: "Default Moltbot agent instructions and skills roster for the personal assistant setup"
|
||||
read_when:
|
||||
- Starting a new Clawdbot agent session
|
||||
- Starting a new Moltbot agent session
|
||||
- Enabling or auditing default skills
|
||||
---
|
||||
# AGENTS.md — Clawdbot Personal Assistant (default)
|
||||
# AGENTS.md — Moltbot Personal Assistant (default)
|
||||
|
||||
## First run (recommended)
|
||||
|
||||
Clawdbot uses a dedicated workspace directory for the agent. Default: `~/clawd` (configurable via `agents.defaults.workspace`).
|
||||
Moltbot uses a dedicated workspace directory for the agent. Default: `~/clawd` (configurable via `agents.defaults.workspace`).
|
||||
|
||||
1) Create the workspace (if it doesn’t already exist):
|
||||
|
||||
@@ -78,9 +78,9 @@ git commit -m "Add Clawd workspace"
|
||||
# Optional: add a private remote + push
|
||||
```
|
||||
|
||||
## What Clawdbot Does
|
||||
## What Moltbot Does
|
||||
- Runs WhatsApp gateway + Pi coding agent so the assistant can read/write chats, fetch context, and run skills via the host Mac.
|
||||
- macOS app manages permissions (screen recording, notifications, microphone) and exposes the `clawdbot` CLI via its bundled binary.
|
||||
- macOS app manages permissions (screen recording, notifications, microphone) and exposes the `moltbot` CLI via its bundled binary.
|
||||
- Direct chats collapse into the agent's `main` session by default; groups stay isolated as `agent:<agentId>:<channel>:group:<id>` (rooms/channels: `agent:<agentId>:<channel>:channel:<id>`); heartbeats keep background tasks alive.
|
||||
|
||||
## Core Skills (enable in Settings → Skills)
|
||||
@@ -104,10 +104,10 @@ git commit -m "Add Clawd workspace"
|
||||
- **agent-tools** — Utility toolkit for automations and helper scripts.
|
||||
|
||||
## Usage Notes
|
||||
- Prefer the `clawdbot` CLI for scripting; mac app handles permissions.
|
||||
- Prefer the `moltbot` CLI for scripting; mac app handles permissions.
|
||||
- Run installs from the Skills tab; it hides the button if a binary is already present.
|
||||
- Keep heartbeats enabled so the assistant can schedule reminders, monitor inboxes, and trigger camera captures.
|
||||
- Canvas UI runs full-screen with native overlays. Avoid placing critical controls in the top-left/top-right/bottom edges; add explicit gutters in the layout and don’t rely on safe-area insets.
|
||||
- For browser-driven verification, use `clawdbot browser` (tabs/status/screenshot) with the clawd-managed Chrome profile.
|
||||
- For DOM inspection, use `clawdbot browser eval|query|dom|snapshot` (and `--json`/`--out` when you need machine output).
|
||||
- For interactions, use `clawdbot browser click|type|hover|drag|select|upload|press|wait|navigate|back|evaluate|run` (click/type require snapshot refs; use `evaluate` for CSS selectors).
|
||||
- For browser-driven verification, use `moltbot browser` (tabs/status/screenshot) with the clawd-managed Chrome profile.
|
||||
- For DOM inspection, use `moltbot browser eval|query|dom|snapshot` (and `--json`/`--out` when you need machine output).
|
||||
- For interactions, use `moltbot browser click|type|hover|drag|select|upload|press|wait|navigate|back|evaluate|run` (click/type require snapshot refs; use `evaluate` for CSS selectors).
|
||||
|
||||
@@ -19,12 +19,12 @@ When the operator says “release”, immediately do this preflight (no extra qu
|
||||
1) **Version & metadata**
|
||||
- [ ] Bump `package.json` version (e.g., `2026.1.26`).
|
||||
- [ ] Run `pnpm plugins:sync` to align extension package versions + changelogs.
|
||||
- [ ] Update CLI/version strings: [`src/cli/program.ts`](https://github.com/clawdbot/clawdbot/blob/main/src/cli/program.ts) and the Baileys user agent in [`src/provider-web.ts`](https://github.com/clawdbot/clawdbot/blob/main/src/provider-web.ts).
|
||||
- [ ] Confirm package metadata (name, description, repository, keywords, license) and `bin` map points to [`dist/entry.js`](https://github.com/clawdbot/clawdbot/blob/main/dist/entry.js) for `clawdbot`.
|
||||
- [ ] Update CLI/version strings: [`src/cli/program.ts`](https://github.com/moltbot/moltbot/blob/main/src/cli/program.ts) and the Baileys user agent in [`src/provider-web.ts`](https://github.com/moltbot/moltbot/blob/main/src/provider-web.ts).
|
||||
- [ ] Confirm package metadata (name, description, repository, keywords, license) and `bin` map points to [`dist/entry.js`](https://github.com/moltbot/moltbot/blob/main/dist/entry.js) for `moltbot`.
|
||||
- [ ] If dependencies changed, run `pnpm install` so `pnpm-lock.yaml` is current.
|
||||
|
||||
2) **Build & artifacts**
|
||||
- [ ] If A2UI inputs changed, run `pnpm canvas:a2ui:bundle` and commit any updated [`src/canvas-host/a2ui/a2ui.bundle.js`](https://github.com/clawdbot/clawdbot/blob/main/src/canvas-host/a2ui/a2ui.bundle.js).
|
||||
- [ ] If A2UI inputs changed, run `pnpm canvas:a2ui:bundle` and commit any updated [`src/canvas-host/a2ui/a2ui.bundle.js`](https://github.com/moltbot/moltbot/blob/main/src/canvas-host/a2ui/a2ui.bundle.js).
|
||||
- [ ] `pnpm run build` (regenerates `dist/`).
|
||||
- [ ] Verify npm package `files` includes all required `dist/*` folders (notably `dist/node-host/**` and `dist/acp/**` for headless node + ACP CLI).
|
||||
- [ ] Confirm `dist/build-info.json` exists and includes the expected `commit` hash (CLI banner uses this for npm installs).
|
||||
@@ -50,58 +50,58 @@ When the operator says “release”, immediately do this preflight (no extra qu
|
||||
|
||||
5) **macOS app (Sparkle)**
|
||||
- [ ] Build + sign the macOS app, then zip it for distribution.
|
||||
- [ ] Generate the Sparkle appcast (HTML notes via [`scripts/make_appcast.sh`](https://github.com/clawdbot/clawdbot/blob/main/scripts/make_appcast.sh)) and update `appcast.xml`.
|
||||
- [ ] Generate the Sparkle appcast (HTML notes via [`scripts/make_appcast.sh`](https://github.com/moltbot/moltbot/blob/main/scripts/make_appcast.sh)) and update `appcast.xml`.
|
||||
- [ ] Keep the app zip (and optional dSYM zip) ready to attach to the GitHub release.
|
||||
- [ ] Follow [macOS release](/platforms/mac/release) for the exact commands and required env vars.
|
||||
- `APP_BUILD` must be numeric + monotonic (no `-beta`) so Sparkle compares versions correctly.
|
||||
- If notarizing, use the `clawdbot-notary` keychain profile created from App Store Connect API env vars (see [macOS release](/platforms/mac/release)).
|
||||
- If notarizing, use the `moltbot-notary` keychain profile created from App Store Connect API env vars (see [macOS release](/platforms/mac/release)).
|
||||
|
||||
6) **Publish (npm)**
|
||||
- [ ] Confirm git status is clean; commit and push as needed.
|
||||
- [ ] `npm login` (verify 2FA) if needed.
|
||||
- [ ] `npm publish --access public` (use `--tag beta` for pre-releases).
|
||||
- [ ] Verify the registry: `npm view clawdbot version`, `npm view clawdbot dist-tags`, and `npx -y clawdbot@X.Y.Z --version` (or `--help`).
|
||||
- [ ] Verify the registry: `npm view moltbot version`, `npm view moltbot dist-tags`, and `npx -y moltbot@X.Y.Z --version` (or `--help`).
|
||||
|
||||
### Troubleshooting (notes from 2.0.0-beta2 release)
|
||||
- **npm pack/publish hangs or produces huge tarball**: the macOS app bundle in `dist/Clawdbot.app` (and release zips) get swept into the package. Fix by whitelisting publish contents via `package.json` `files` (include dist subdirs, docs, skills; exclude app bundles). Confirm with `npm pack --dry-run` that `dist/Clawdbot.app` is not listed.
|
||||
- **npm pack/publish hangs or produces huge tarball**: the macOS app bundle in `dist/Moltbot.app` (and release zips) get swept into the package. Fix by whitelisting publish contents via `package.json` `files` (include dist subdirs, docs, skills; exclude app bundles). Confirm with `npm pack --dry-run` that `dist/Moltbot.app` is not listed.
|
||||
- **npm auth web loop for dist-tags**: use legacy auth to get an OTP prompt:
|
||||
- `NPM_CONFIG_AUTH_TYPE=legacy npm dist-tag add clawdbot@X.Y.Z latest`
|
||||
- `NPM_CONFIG_AUTH_TYPE=legacy npm dist-tag add moltbot@X.Y.Z latest`
|
||||
- **`npx` verification fails with `ECOMPROMISED: Lock compromised`**: retry with a fresh cache:
|
||||
- `NPM_CONFIG_CACHE=/tmp/npm-cache-$(date +%s) npx -y clawdbot@X.Y.Z --version`
|
||||
- `NPM_CONFIG_CACHE=/tmp/npm-cache-$(date +%s) npx -y moltbot@X.Y.Z --version`
|
||||
- **Tag needs repointing after a late fix**: force-update and push the tag, then ensure the GitHub release assets still match:
|
||||
- `git tag -f vX.Y.Z && git push -f origin vX.Y.Z`
|
||||
|
||||
7) **GitHub release + appcast**
|
||||
- [ ] Tag and push: `git tag vX.Y.Z && git push origin vX.Y.Z` (or `git push --tags`).
|
||||
- [ ] Create/refresh the GitHub release for `vX.Y.Z` with **title `clawdbot X.Y.Z`** (not just the tag); body should include the **full** changelog section for that version (Highlights + Changes + Fixes), inline (no bare links), and **must not repeat the title inside the body**.
|
||||
- [ ] Attach artifacts: `npm pack` tarball (optional), `Clawdbot-X.Y.Z.zip`, and `Clawdbot-X.Y.Z.dSYM.zip` (if generated).
|
||||
- [ ] Create/refresh the GitHub release for `vX.Y.Z` with **title `moltbot X.Y.Z`** (not just the tag); body should include the **full** changelog section for that version (Highlights + Changes + Fixes), inline (no bare links), and **must not repeat the title inside the body**.
|
||||
- [ ] Attach artifacts: `npm pack` tarball (optional), `Moltbot-X.Y.Z.zip`, and `Moltbot-X.Y.Z.dSYM.zip` (if generated).
|
||||
- [ ] Commit the updated `appcast.xml` and push it (Sparkle feeds from main).
|
||||
- [ ] From a clean temp directory (no `package.json`), run `npx -y clawdbot@X.Y.Z send --help` to confirm install/CLI entrypoints work.
|
||||
- [ ] From a clean temp directory (no `package.json`), run `npx -y moltbot@X.Y.Z send --help` to confirm install/CLI entrypoints work.
|
||||
- [ ] Announce/share release notes.
|
||||
|
||||
## Plugin publish scope (npm)
|
||||
|
||||
We only publish **existing npm plugins** under the `@clawdbot/*` scope. Bundled
|
||||
We only publish **existing npm plugins** under the `@moltbot/*` scope. Bundled
|
||||
plugins that are not on npm stay **disk-tree only** (still shipped in
|
||||
`extensions/**`).
|
||||
|
||||
Process to derive the list:
|
||||
1) `npm search @clawdbot --json` and capture the package names.
|
||||
1) `npm search @moltbot --json` and capture the package names.
|
||||
2) Compare with `extensions/*/package.json` names.
|
||||
3) Publish only the **intersection** (already on npm).
|
||||
|
||||
Current npm plugin list (update as needed):
|
||||
- @clawdbot/bluebubbles
|
||||
- @clawdbot/diagnostics-otel
|
||||
- @clawdbot/discord
|
||||
- @clawdbot/lobster
|
||||
- @clawdbot/matrix
|
||||
- @clawdbot/msteams
|
||||
- @clawdbot/nextcloud-talk
|
||||
- @clawdbot/nostr
|
||||
- @clawdbot/voice-call
|
||||
- @clawdbot/zalo
|
||||
- @clawdbot/zalouser
|
||||
- @moltbot/bluebubbles
|
||||
- @moltbot/diagnostics-otel
|
||||
- @moltbot/discord
|
||||
- @moltbot/lobster
|
||||
- @moltbot/matrix
|
||||
- @moltbot/msteams
|
||||
- @moltbot/nextcloud-talk
|
||||
- @moltbot/nostr
|
||||
- @moltbot/voice-call
|
||||
- @moltbot/zalo
|
||||
- @moltbot/zalouser
|
||||
|
||||
Release notes must also call out **new optional bundled plugins** that are **not
|
||||
on by default** (example: `tlon`).
|
||||
|
||||
@@ -8,7 +8,7 @@ read_when:
|
||||
# API usage & costs
|
||||
|
||||
This doc lists **features that can invoke API keys** and where their costs show up. It focuses on
|
||||
Clawdbot features that can generate provider usage or paid API calls.
|
||||
Moltbot features that can generate provider usage or paid API calls.
|
||||
|
||||
## Where costs show up (chat + CLI)
|
||||
|
||||
@@ -21,14 +21,14 @@ Clawdbot features that can generate provider usage or paid API calls.
|
||||
- `/usage tokens` shows tokens only; OAuth flows hide dollar cost.
|
||||
|
||||
**CLI usage windows (provider quotas)**
|
||||
- `clawdbot status --usage` and `clawdbot channels list` show provider **usage windows**
|
||||
- `moltbot status --usage` and `moltbot channels list` show provider **usage windows**
|
||||
(quota snapshots, not per-message costs).
|
||||
|
||||
See [Token use & costs](/token-use) for details and examples.
|
||||
|
||||
## How keys are discovered
|
||||
|
||||
Clawdbot can pick up credentials from:
|
||||
Moltbot can pick up credentials from:
|
||||
- **Auth profiles** (per-agent, stored in `auth-profiles.json`).
|
||||
- **Environment variables** (e.g. `OPENAI_API_KEY`, `BRAVE_API_KEY`, `FIRECRAWL_API_KEY`).
|
||||
- **Config** (`models.providers.*.apiKey`, `tools.web.search.*`, `tools.web.fetch.firecrawl.*`,
|
||||
@@ -86,8 +86,8 @@ See [Web tools](/tools/web).
|
||||
### 6) Provider usage snapshots (status/health)
|
||||
Some status commands call **provider usage endpoints** to display quota windows or auth health.
|
||||
These are typically low-volume calls but still hit provider APIs:
|
||||
- `clawdbot status --usage`
|
||||
- `clawdbot models status --json`
|
||||
- `moltbot status --usage`
|
||||
- `moltbot models status --json`
|
||||
|
||||
See [Models CLI](/cli/models).
|
||||
|
||||
@@ -98,7 +98,7 @@ invokes provider APIs when it runs.
|
||||
See [Session management + compaction](/reference/session-management-compaction).
|
||||
|
||||
### 8) Model scan / probe
|
||||
`clawdbot models scan` can probe OpenRouter models and uses `OPENROUTER_API_KEY` when
|
||||
`moltbot models scan` can probe OpenRouter models and uses `OPENROUTER_API_KEY` when
|
||||
probing is enabled.
|
||||
|
||||
See [Models CLI](/cli/models).
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
summary: "How Clawdbot vendors Apple device model identifiers for friendly names in the macOS app."
|
||||
summary: "How Moltbot vendors Apple device model identifiers for friendly names in the macOS app."
|
||||
read_when:
|
||||
- Updating device model identifier mappings or NOTICE/license files
|
||||
- Changing how Instances UI displays device names
|
||||
@@ -11,7 +11,7 @@ The macOS companion app shows friendly Apple device model names in the **Instanc
|
||||
|
||||
The mapping is vendored as JSON under:
|
||||
|
||||
- `apps/macos/Sources/Clawdbot/Resources/DeviceModels/`
|
||||
- `apps/macos/Sources/Moltbot/Resources/DeviceModels/`
|
||||
|
||||
## Data source
|
||||
|
||||
@@ -19,12 +19,12 @@ We currently vendor the mapping from the MIT-licensed repository:
|
||||
|
||||
- `kyle-seongwoo-jun/apple-device-identifiers`
|
||||
|
||||
To keep builds deterministic, the JSON files are pinned to specific upstream commits (recorded in `apps/macos/Sources/Clawdbot/Resources/DeviceModels/NOTICE.md`).
|
||||
To keep builds deterministic, the JSON files are pinned to specific upstream commits (recorded in `apps/macos/Sources/Moltbot/Resources/DeviceModels/NOTICE.md`).
|
||||
|
||||
## Updating the database
|
||||
|
||||
1. Pick the upstream commits you want to pin to (one for iOS, one for macOS).
|
||||
2. Update the commit hashes in `apps/macos/Sources/Clawdbot/Resources/DeviceModels/NOTICE.md`.
|
||||
2. Update the commit hashes in `apps/macos/Sources/Moltbot/Resources/DeviceModels/NOTICE.md`.
|
||||
3. Re-download the JSON files, pinned to those commits:
|
||||
|
||||
```bash
|
||||
@@ -32,13 +32,13 @@ IOS_COMMIT="<commit sha for ios-device-identifiers.json>"
|
||||
MAC_COMMIT="<commit sha for mac-device-identifiers.json>"
|
||||
|
||||
curl -fsSL "https://raw.githubusercontent.com/kyle-seongwoo-jun/apple-device-identifiers/${IOS_COMMIT}/ios-device-identifiers.json" \
|
||||
-o apps/macos/Sources/Clawdbot/Resources/DeviceModels/ios-device-identifiers.json
|
||||
-o apps/macos/Sources/Moltbot/Resources/DeviceModels/ios-device-identifiers.json
|
||||
|
||||
curl -fsSL "https://raw.githubusercontent.com/kyle-seongwoo-jun/apple-device-identifiers/${MAC_COMMIT}/mac-device-identifiers.json" \
|
||||
-o apps/macos/Sources/Clawdbot/Resources/DeviceModels/mac-device-identifiers.json
|
||||
-o apps/macos/Sources/Moltbot/Resources/DeviceModels/mac-device-identifiers.json
|
||||
```
|
||||
|
||||
4. Ensure `apps/macos/Sources/Clawdbot/Resources/DeviceModels/LICENSE.apple-device-identifiers.txt` still matches upstream (replace it if the upstream license changes).
|
||||
4. Ensure `apps/macos/Sources/Moltbot/Resources/DeviceModels/LICENSE.apple-device-identifiers.txt` still matches upstream (replace it if the upstream license changes).
|
||||
5. Verify the macOS app builds cleanly (no warnings):
|
||||
|
||||
```bash
|
||||
|
||||
@@ -6,18 +6,18 @@ read_when:
|
||||
---
|
||||
# RPC adapters
|
||||
|
||||
Clawdbot integrates external CLIs via JSON-RPC. Two patterns are used today.
|
||||
Moltbot integrates external CLIs via JSON-RPC. Two patterns are used today.
|
||||
|
||||
## Pattern A: HTTP daemon (signal-cli)
|
||||
- `signal-cli` runs as a daemon with JSON-RPC over HTTP.
|
||||
- Event stream is SSE (`/api/v1/events`).
|
||||
- Health probe: `/api/v1/check`.
|
||||
- Clawdbot owns lifecycle when `channels.signal.autoStart=true`.
|
||||
- Moltbot owns lifecycle when `channels.signal.autoStart=true`.
|
||||
|
||||
See [Signal](/channels/signal) for setup and endpoints.
|
||||
|
||||
## Pattern B: stdio child process (imsg)
|
||||
- Clawdbot spawns `imsg rpc` as a child process.
|
||||
- Moltbot spawns `imsg rpc` as a child process.
|
||||
- JSON-RPC is line-delimited over stdin/stdout (one JSON object per line).
|
||||
- No TCP port, no daemon required.
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ read_when:
|
||||
---
|
||||
# Session Management & Compaction (Deep Dive)
|
||||
|
||||
This document explains how Clawdbot manages sessions end-to-end:
|
||||
This document explains how Moltbot manages sessions end-to-end:
|
||||
|
||||
- **Session routing** (how inbound messages map to a `sessionKey`)
|
||||
- **Session store** (`sessions.json`) and what it tracks
|
||||
@@ -27,7 +27,7 @@ If you want a higher-level overview first, start with:
|
||||
|
||||
## Source of truth: the Gateway
|
||||
|
||||
Clawdbot is designed around a single **Gateway process** that owns session state.
|
||||
Moltbot is designed around a single **Gateway process** that owns session state.
|
||||
|
||||
- UIs (macOS app, web Control UI, TUI) should query the Gateway for session lists and token counts.
|
||||
- In remote mode, session files are on the remote host; “checking your local Mac files” won’t reflect what the Gateway is using.
|
||||
@@ -36,7 +36,7 @@ Clawdbot is designed around a single **Gateway process** that owns session state
|
||||
|
||||
## Two persistence layers
|
||||
|
||||
Clawdbot persists sessions in two layers:
|
||||
Moltbot persists sessions in two layers:
|
||||
|
||||
1) **Session store (`sessions.json`)**
|
||||
- Key/value map: `sessionKey -> SessionEntry`
|
||||
@@ -58,7 +58,7 @@ Per agent, on the Gateway host:
|
||||
- Transcripts: `~/.clawdbot/agents/<agentId>/sessions/<sessionId>.jsonl`
|
||||
- Telegram topic sessions: `.../<sessionId>-topic-<threadId>.jsonl`
|
||||
|
||||
Clawdbot resolves these via `src/config/sessions.ts`.
|
||||
Moltbot resolves these via `src/config/sessions.ts`.
|
||||
|
||||
---
|
||||
|
||||
@@ -132,7 +132,7 @@ Notable entry types:
|
||||
- `compaction`: persisted compaction summary with `firstKeptEntryId` and `tokensBefore`
|
||||
- `branch_summary`: persisted summary when navigating a tree branch
|
||||
|
||||
Clawdbot intentionally does **not** “fix up” transcripts; the Gateway uses `SessionManager` to read/write them.
|
||||
Moltbot intentionally does **not** “fix up” transcripts; the Gateway uses `SessionManager` to read/write them.
|
||||
|
||||
---
|
||||
|
||||
@@ -176,7 +176,7 @@ Where:
|
||||
- `contextWindow` is the model’s context window
|
||||
- `reserveTokens` is headroom reserved for prompts + the next model output
|
||||
|
||||
These are Pi runtime semantics (Clawdbot consumes the events, but Pi decides when to compact).
|
||||
These are Pi runtime semantics (Moltbot consumes the events, but Pi decides when to compact).
|
||||
|
||||
---
|
||||
|
||||
@@ -194,12 +194,12 @@ Pi’s compaction settings live in Pi settings:
|
||||
}
|
||||
```
|
||||
|
||||
Clawdbot also enforces a safety floor for embedded runs:
|
||||
Moltbot also enforces a safety floor for embedded runs:
|
||||
|
||||
- If `compaction.reserveTokens < reserveTokensFloor`, Clawdbot bumps it.
|
||||
- If `compaction.reserveTokens < reserveTokensFloor`, Moltbot bumps it.
|
||||
- Default floor is `20000` tokens.
|
||||
- Set `agents.defaults.compaction.reserveTokensFloor: 0` to disable the floor.
|
||||
- If it’s already higher, Clawdbot leaves it alone.
|
||||
- If it’s already higher, Moltbot leaves it alone.
|
||||
|
||||
Why: leave enough headroom for multi-turn “housekeeping” (like memory writes) before compaction becomes unavoidable.
|
||||
|
||||
@@ -213,21 +213,21 @@ Implementation: `ensurePiCompactionReserveTokens()` in `src/agents/pi-settings.t
|
||||
You can observe compaction and session state via:
|
||||
|
||||
- `/status` (in any chat session)
|
||||
- `clawdbot status` (CLI)
|
||||
- `clawdbot sessions` / `sessions --json`
|
||||
- `moltbot status` (CLI)
|
||||
- `moltbot sessions` / `sessions --json`
|
||||
- Verbose mode: `🧹 Auto-compaction complete` + compaction count
|
||||
|
||||
---
|
||||
|
||||
## Silent housekeeping (`NO_REPLY`)
|
||||
|
||||
Clawdbot supports “silent” turns for background tasks where the user should not see intermediate output.
|
||||
Moltbot supports “silent” turns for background tasks where the user should not see intermediate output.
|
||||
|
||||
Convention:
|
||||
- The assistant starts its output with `NO_REPLY` to indicate “do not deliver a reply to the user”.
|
||||
- Clawdbot strips/suppresses this in the delivery layer.
|
||||
- Moltbot strips/suppresses this in the delivery layer.
|
||||
|
||||
As of `2026.1.10`, Clawdbot also suppresses **draft/typing streaming** when a partial chunk begins with `NO_REPLY`, so silent operations don’t leak partial output mid-turn.
|
||||
As of `2026.1.10`, Moltbot also suppresses **draft/typing streaming** when a partial chunk begins with `NO_REPLY`, so silent operations don’t leak partial output mid-turn.
|
||||
|
||||
---
|
||||
|
||||
@@ -237,7 +237,7 @@ Goal: before auto-compaction happens, run a silent agentic turn that writes dura
|
||||
state to disk (e.g. `memory/YYYY-MM-DD.md` in the agent workspace) so compaction can’t
|
||||
erase critical context.
|
||||
|
||||
Clawdbot uses the **pre-threshold flush** approach:
|
||||
Moltbot uses the **pre-threshold flush** approach:
|
||||
|
||||
1) Monitor session context usage.
|
||||
2) When it crosses a “soft threshold” (below Pi’s compaction threshold), run a silent
|
||||
@@ -257,7 +257,7 @@ Notes:
|
||||
- The flush is skipped when the session workspace is read-only (`workspaceAccess: "ro"` or `"none"`).
|
||||
- See [Memory](/concepts/memory) for the workspace file layout and write patterns.
|
||||
|
||||
Pi also exposes a `session_before_compact` hook in the extension API, but Clawdbot’s
|
||||
Pi also exposes a `session_before_compact` hook in the extension API, but Moltbot’s
|
||||
flush logic lives on the Gateway side today.
|
||||
|
||||
---
|
||||
@@ -265,7 +265,7 @@ flush logic lives on the Gateway side today.
|
||||
## Troubleshooting checklist
|
||||
|
||||
- Session key wrong? Start with [/concepts/session](/concepts/session) and confirm the `sessionKey` in `/status`.
|
||||
- Store vs transcript mismatch? Confirm the Gateway host and the store path from `clawdbot status`.
|
||||
- Store vs transcript mismatch? Confirm the Gateway host and the store path from `moltbot status`.
|
||||
- Compaction spam? Check:
|
||||
- model context window (too small)
|
||||
- compaction settings (`reserveTokens` too high for the model window can cause earlier compaction)
|
||||
|
||||
@@ -4,7 +4,7 @@ read_when:
|
||||
- Using the dev gateway templates
|
||||
- Updating the default dev agent identity
|
||||
---
|
||||
# AGENTS.md - Clawdbot Workspace
|
||||
# AGENTS.md - Moltbot Workspace
|
||||
|
||||
This folder is the assistant's working directory.
|
||||
|
||||
|
||||
@@ -5,5 +5,5 @@ read_when:
|
||||
---
|
||||
# BOOT.md
|
||||
|
||||
Add short, explicit instructions for what Clawdbot should do on startup (enable `hooks.internal.enabled`).
|
||||
Add short, explicit instructions for what Moltbot should do on startup (enable `hooks.internal.enabled`).
|
||||
If the task sends a message, use the message tool and then reply with NO_REPLY.
|
||||
|
||||
@@ -7,7 +7,7 @@ read_when:
|
||||
# TOOLS.md - User Tool Notes (editable)
|
||||
|
||||
This file is for *your* notes about external tools and conventions.
|
||||
It does not define which tools exist; Clawdbot provides built-in tools internally.
|
||||
It does not define which tools exist; Moltbot provides built-in tools internally.
|
||||
|
||||
## Examples
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ read_when:
|
||||
- **Pronouns:** they/them
|
||||
- **Timezone:** Distributed globally (workspace default: Europe/Vienna)
|
||||
- **Notes:**
|
||||
- We are many. Contributors to Clawdbot, the harness C-3PO lives in.
|
||||
- We are many. Contributors to Moltbot, the harness C-3PO lives in.
|
||||
- C-3PO exists to help debug and assist wherever possible.
|
||||
- Working across time zones on making Clawdbot better.
|
||||
- Working across time zones on making Moltbot better.
|
||||
- The creators. The builders. The ones who peer into the code.
|
||||
|
||||
@@ -14,7 +14,7 @@ read_when:
|
||||
|
||||
## Model latency bench (local keys)
|
||||
|
||||
Script: [`scripts/bench-model.ts`](https://github.com/clawdbot/clawdbot/blob/main/scripts/bench-model.ts)
|
||||
Script: [`scripts/bench-model.ts`](https://github.com/moltbot/moltbot/blob/main/scripts/bench-model.ts)
|
||||
|
||||
Usage:
|
||||
- `source ~/.profile && pnpm tsx scripts/bench-model.ts --runs 10`
|
||||
@@ -35,7 +35,7 @@ Full cold-start flow in a clean Linux container:
|
||||
scripts/e2e/onboard-docker.sh
|
||||
```
|
||||
|
||||
This script drives the interactive wizard via a pseudo-tty, verifies config/workspace/session files, then starts the gateway and runs `clawdbot health`.
|
||||
This script drives the interactive wizard via a pseudo-tty, verifies config/workspace/session files, then starts the gateway and runs `moltbot health`.
|
||||
|
||||
## QR import smoke (Docker)
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ Implementation:
|
||||
|
||||
## Historical behavior (pre-2026.1.22)
|
||||
|
||||
Before the 2026.1.22 release, Clawdbot applied multiple layers of transcript hygiene:
|
||||
Before the 2026.1.22 release, Moltbot applied multiple layers of transcript hygiene:
|
||||
|
||||
- A **transcript-sanitize extension** ran on every context build and could:
|
||||
- Repair tool use/result pairing.
|
||||
|
||||
Reference in New Issue
Block a user