refactor: rename to openclaw

This commit is contained in:
Peter Steinberger
2026-01-30 03:15:10 +01:00
parent 4583f88626
commit 9a7160786a
2357 changed files with 16688 additions and 16788 deletions

View File

@@ -1,40 +1,40 @@
---
summary: "Default Moltbot agent instructions and skills roster for the personal assistant setup"
summary: "Default OpenClaw agent instructions and skills roster for the personal assistant setup"
read_when:
- Starting a new Moltbot agent session
- Starting a new OpenClaw agent session
- Enabling or auditing default skills
---
# AGENTS.md — Moltbot Personal Assistant (default)
# AGENTS.md — OpenClaw Personal Assistant (default)
## First run (recommended)
Moltbot uses a dedicated workspace directory for the agent. Default: `~/clawd` (configurable via `agents.defaults.workspace`).
OpenClaw uses a dedicated workspace directory for the agent. Default: `~/.openclaw/workspace` (configurable via `agents.defaults.workspace`).
1) Create the workspace (if it doesnt already exist):
```bash
mkdir -p ~/clawd
mkdir -p ~/.openclaw/workspace
```
2) Copy the default workspace templates into the workspace:
```bash
cp docs/reference/templates/AGENTS.md ~/clawd/AGENTS.md
cp docs/reference/templates/SOUL.md ~/clawd/SOUL.md
cp docs/reference/templates/TOOLS.md ~/clawd/TOOLS.md
cp docs/reference/templates/AGENTS.md ~/.openclaw/workspace/AGENTS.md
cp docs/reference/templates/SOUL.md ~/.openclaw/workspace/SOUL.md
cp docs/reference/templates/TOOLS.md ~/.openclaw/workspace/TOOLS.md
```
3) Optional: if you want the personal assistant skill roster, replace AGENTS.md with this file:
```bash
cp docs/reference/AGENTS.default.md ~/clawd/AGENTS.md
cp docs/reference/AGENTS.default.md ~/.openclaw/workspace/AGENTS.md
```
4) Optional: choose a different workspace by setting `agents.defaults.workspace` (supports `~`):
```json5
{
agents: { defaults: { workspace: "~/clawd" } }
agents: { defaults: { workspace: "~/.openclaw/workspace" } }
}
```
@@ -71,16 +71,16 @@ cp docs/reference/AGENTS.default.md ~/clawd/AGENTS.md
If you treat this workspace as Clawds “memory”, make it a git repo (ideally private) so `AGENTS.md` and your memory files are backed up.
```bash
cd ~/clawd
cd ~/.openclaw/workspace
git init
git add AGENTS.md
git commit -m "Add Clawd workspace"
# Optional: add a private remote + push
```
## What Moltbot Does
## What OpenClaw 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 `moltbot` CLI via its bundled binary.
- macOS app manages permissions (screen recording, notifications, microphone) and exposes the `openclaw` 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 `moltbot` CLI for scripting; mac app handles permissions.
- Prefer the `openclaw` 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 dont rely on safe-area insets.
- 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).
- For browser-driven verification, use `openclaw browser` (tabs/status/screenshot) with the OpenClaw-managed Chrome profile.
- For DOM inspection, use `openclaw browser eval|query|dom|snapshot` (and `--json`/`--out` when you need machine output).
- For interactions, use `openclaw browser click|type|hover|drag|select|upload|press|wait|navigate|back|evaluate|run` (click/type require snapshot refs; use `evaluate` for CSS selectors).

View File

@@ -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.29`).
- [ ] Run `pnpm plugins:sync` to align extension package versions + changelogs.
- [ ] 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 [`moltbot.mjs`](https://github.com/moltbot/moltbot/blob/main/moltbot.mjs) for `moltbot`.
- [ ] Update CLI/version strings: [`src/cli/program.ts`](https://github.com/openclaw/openclaw/blob/main/src/cli/program.ts) and the Baileys user agent in [`src/provider-web.ts`](https://github.com/openclaw/openclaw/blob/main/src/provider-web.ts).
- [ ] Confirm package metadata (name, description, repository, keywords, license) and `bin` map points to [`openclaw.mjs`](https://github.com/openclaw/openclaw/blob/main/openclaw.mjs) for `openclaw`.
- [ ] 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/moltbot/moltbot/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/openclaw/openclaw/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).
@@ -39,10 +39,10 @@ When the operator says “release”, immediately do this preflight (no extra qu
- [ ] `pnpm test` (or `pnpm test:coverage` if you need coverage output)
- [ ] `pnpm run build` (last sanity check after tests)
- [ ] `pnpm release:check` (verifies npm pack contents)
- [ ] `CLAWDBOT_INSTALL_SMOKE_SKIP_NONROOT=1 pnpm test:install:smoke` (Docker install smoke test, fast path; required before release)
- If the immediate previous npm release is known broken, set `CLAWDBOT_INSTALL_SMOKE_PREVIOUS=<last-good-version>` or `CLAWDBOT_INSTALL_SMOKE_SKIP_PREVIOUS=1` for the preinstall step.
- [ ] `OPENCLAW_INSTALL_SMOKE_SKIP_NONROOT=1 pnpm test:install:smoke` (Docker install smoke test, fast path; required before release)
- If the immediate previous npm release is known broken, set `OPENCLAW_INSTALL_SMOKE_PREVIOUS=<last-good-version>` or `OPENCLAW_INSTALL_SMOKE_SKIP_PREVIOUS=1` for the preinstall step.
- [ ] (Optional) Full installer smoke (adds non-root + CLI coverage): `pnpm test:install:smoke`
- [ ] (Optional) Installer E2E (Docker, runs `curl -fsSL https://molt.bot/install.sh | bash`, onboards, then runs real tool calls):
- [ ] (Optional) Installer E2E (Docker, runs `curl -fsSL https://openclaw.bot/install.sh | bash`, onboards, then runs real tool calls):
- `pnpm test:install:e2e:openai` (requires `OPENAI_API_KEY`)
- `pnpm test:install:e2e:anthropic` (requires `ANTHROPIC_API_KEY`)
- `pnpm test:install:e2e` (requires both keys; runs both providers)
@@ -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/moltbot/moltbot/blob/main/scripts/make_appcast.sh)) and update `appcast.xml`.
- [ ] Generate the Sparkle appcast (HTML notes via [`scripts/make_appcast.sh`](https://github.com/openclaw/openclaw/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 `moltbot-notary` keychain profile created from App Store Connect API env vars (see [macOS release](/platforms/mac/release)).
- If notarizing, use the `openclaw-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 moltbot version`, `npm view moltbot dist-tags`, and `npx -y moltbot@X.Y.Z --version` (or `--help`).
- [ ] Verify the registry: `npm view openclaw version`, `npm view openclaw dist-tags`, and `npx -y openclaw@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/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 pack/publish hangs or produces huge tarball**: the macOS app bundle in `dist/OpenClaw.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/OpenClaw.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 moltbot@X.Y.Z latest`
- `NPM_CONFIG_AUTH_TYPE=legacy npm dist-tag add openclaw@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 moltbot@X.Y.Z --version`
- `NPM_CONFIG_CACHE=/tmp/npm-cache-$(date +%s) npx -y openclaw@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 `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).
- [ ] Create/refresh the GitHub release for `vX.Y.Z` with **title `openclaw 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), `OpenClaw-X.Y.Z.zip`, and `OpenClaw-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 moltbot@X.Y.Z send --help` to confirm install/CLI entrypoints work.
- [ ] From a clean temp directory (no `package.json`), run `npx -y openclaw@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 `@moltbot/*` scope. Bundled
We only publish **existing npm plugins** under the `@openclaw/*` scope. Bundled
plugins that are not on npm stay **disk-tree only** (still shipped in
`extensions/**`).
Process to derive the list:
1) `npm search @moltbot --json` and capture the package names.
1) `npm search @openclaw --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):
- @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
- @openclaw/bluebubbles
- @openclaw/diagnostics-otel
- @openclaw/discord
- @openclaw/lobster
- @openclaw/matrix
- @openclaw/msteams
- @openclaw/nextcloud-talk
- @openclaw/nostr
- @openclaw/voice-call
- @openclaw/zalo
- @openclaw/zalouser
Release notes must also call out **new optional bundled plugins** that are **not
on by default** (example: `tlon`).

View File

@@ -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
Moltbot features that can generate provider usage or paid API calls.
OpenClaw features that can generate provider usage or paid API calls.
## Where costs show up (chat + CLI)
@@ -21,14 +21,14 @@ Moltbot 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)**
- `moltbot status --usage` and `moltbot channels list` show provider **usage windows**
- `openclaw status --usage` and `openclaw 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
Moltbot can pick up credentials from:
OpenClaw 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:
- `moltbot status --usage`
- `moltbot models status --json`
- `openclaw status --usage`
- `openclaw 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
`moltbot models scan` can probe OpenRouter models and uses `OPENROUTER_API_KEY` when
`openclaw models scan` can probe OpenRouter models and uses `OPENROUTER_API_KEY` when
probing is enabled.
See [Models CLI](/cli/models).

View File

@@ -1,5 +1,5 @@
---
summary: "How Moltbot vendors Apple device model identifiers for friendly names in the macOS app."
summary: "How OpenClaw 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/Moltbot/Resources/DeviceModels/`
- `apps/macos/Sources/OpenClaw/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/Moltbot/Resources/DeviceModels/NOTICE.md`).
To keep builds deterministic, the JSON files are pinned to specific upstream commits (recorded in `apps/macos/Sources/OpenClaw/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/Moltbot/Resources/DeviceModels/NOTICE.md`.
2. Update the commit hashes in `apps/macos/Sources/OpenClaw/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/Moltbot/Resources/DeviceModels/ios-device-identifiers.json
-o apps/macos/Sources/OpenClaw/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/Moltbot/Resources/DeviceModels/mac-device-identifiers.json
-o apps/macos/Sources/OpenClaw/Resources/DeviceModels/mac-device-identifiers.json
```
4. Ensure `apps/macos/Sources/Moltbot/Resources/DeviceModels/LICENSE.apple-device-identifiers.txt` still matches upstream (replace it if the upstream license changes).
4. Ensure `apps/macos/Sources/OpenClaw/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

View File

@@ -6,18 +6,18 @@ read_when:
---
# RPC adapters
Moltbot integrates external CLIs via JSON-RPC. Two patterns are used today.
OpenClaw 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`.
- Moltbot owns lifecycle when `channels.signal.autoStart=true`.
- OpenClaw owns lifecycle when `channels.signal.autoStart=true`.
See [Signal](/channels/signal) for setup and endpoints.
## Pattern B: stdio child process (imsg)
- Moltbot spawns `imsg rpc` as a child process.
- OpenClaw 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.

View File

@@ -7,7 +7,7 @@ read_when:
---
# Session Management & Compaction (Deep Dive)
This document explains how Moltbot manages sessions end-to-end:
This document explains how OpenClaw 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
Moltbot is designed around a single **Gateway process** that owns session state.
OpenClaw 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” wont reflect what the Gateway is using.
@@ -36,7 +36,7 @@ Moltbot is designed around a single **Gateway process** that owns session state.
## Two persistence layers
Moltbot persists sessions in two layers:
OpenClaw persists sessions in two layers:
1) **Session store (`sessions.json`)**
- Key/value map: `sessionKey -> SessionEntry`
@@ -54,11 +54,11 @@ Moltbot persists sessions in two layers:
Per agent, on the Gateway host:
- Store: `~/.clawdbot/agents/<agentId>/sessions/sessions.json`
- Transcripts: `~/.clawdbot/agents/<agentId>/sessions/<sessionId>.jsonl`
- Store: `~/.openclaw/agents/<agentId>/sessions/sessions.json`
- Transcripts: `~/.openclaw/agents/<agentId>/sessions/<sessionId>.jsonl`
- Telegram topic sessions: `.../<sessionId>-topic-<threadId>.jsonl`
Moltbot resolves these via `src/config/sessions.ts`.
OpenClaw 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
Moltbot intentionally does **not** “fix up” transcripts; the Gateway uses `SessionManager` to read/write them.
OpenClaw intentionally does **not** “fix up” transcripts; the Gateway uses `SessionManager` to read/write them.
---
@@ -176,7 +176,7 @@ Where:
- `contextWindow` is the models context window
- `reserveTokens` is headroom reserved for prompts + the next model output
These are Pi runtime semantics (Moltbot consumes the events, but Pi decides when to compact).
These are Pi runtime semantics (OpenClaw consumes the events, but Pi decides when to compact).
---
@@ -194,12 +194,12 @@ Pis compaction settings live in Pi settings:
}
```
Moltbot also enforces a safety floor for embedded runs:
OpenClaw also enforces a safety floor for embedded runs:
- If `compaction.reserveTokens < reserveTokensFloor`, Moltbot bumps it.
- If `compaction.reserveTokens < reserveTokensFloor`, OpenClaw bumps it.
- Default floor is `20000` tokens.
- Set `agents.defaults.compaction.reserveTokensFloor: 0` to disable the floor.
- If its already higher, Moltbot leaves it alone.
- If its already higher, OpenClaw 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)
- `moltbot status` (CLI)
- `moltbot sessions` / `sessions --json`
- `openclaw status` (CLI)
- `openclaw sessions` / `sessions --json`
- Verbose mode: `🧹 Auto-compaction complete` + compaction count
---
## Silent housekeeping (`NO_REPLY`)
Moltbot supports “silent” turns for background tasks where the user should not see intermediate output.
OpenClaw 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”.
- Moltbot strips/suppresses this in the delivery layer.
- OpenClaw strips/suppresses this in the delivery layer.
As of `2026.1.10`, Moltbot also suppresses **draft/typing streaming** when a partial chunk begins with `NO_REPLY`, so silent operations dont leak partial output mid-turn.
As of `2026.1.10`, OpenClaw also suppresses **draft/typing streaming** when a partial chunk begins with `NO_REPLY`, so silent operations dont 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 cant
erase critical context.
Moltbot uses the **pre-threshold flush** approach:
OpenClaw uses the **pre-threshold flush** approach:
1) Monitor session context usage.
2) When it crosses a “soft threshold” (below Pis 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 Moltbots
Pi also exposes a `session_before_compact` hook in the extension API, but OpenClaws
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 `moltbot status`.
- Store vs transcript mismatch? Confirm the Gateway host and the store path from `openclaw status`.
- Compaction spam? Check:
- model context window (too small)
- compaction settings (`reserveTokens` too high for the model window can cause earlier compaction)

View File

@@ -4,7 +4,7 @@ read_when:
- Using the dev gateway templates
- Updating the default dev agent identity
---
# AGENTS.md - Moltbot Workspace
# AGENTS.md - OpenClaw Workspace
This folder is the assistant's working directory.

View File

@@ -5,5 +5,5 @@ read_when:
---
# BOOT.md
Add short, explicit instructions for what Moltbot should do on startup (enable `hooks.internal.enabled`).
Add short, explicit instructions for what OpenClaw should do on startup (enable `hooks.internal.enabled`).
If the task sends a message, use the message tool and then reply with NO_REPLY.

View File

@@ -24,4 +24,4 @@ This isn't just metadata. It's the start of figuring out who you are.
Notes:
- Save this file at the workspace root as `IDENTITY.md`.
- For avatars, use a workspace-relative path like `avatars/clawd.png`.
- For avatars, use a workspace-relative path like `avatars/openclaw.png`.

View File

@@ -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; Moltbot provides built-in tools internally.
It does not define which tools exist; OpenClaw provides built-in tools internally.
## Examples

View File

@@ -11,7 +11,7 @@ read_when:
- **Pronouns:** they/them
- **Timezone:** Distributed globally (workspace default: Europe/Vienna)
- **Notes:**
- We are many. Contributors to Moltbot, the harness C-3PO lives in.
- We are many. Contributors to OpenClaw, the harness C-3PO lives in.
- C-3PO exists to help debug and assist wherever possible.
- Working across time zones on making Moltbot better.
- Working across time zones on making OpenClaw better.
- The creators. The builders. The ones who peer into the code.

View File

@@ -14,7 +14,7 @@ read_when:
## Model latency bench (local keys)
Script: [`scripts/bench-model.ts`](https://github.com/moltbot/moltbot/blob/main/scripts/bench-model.ts)
Script: [`scripts/bench-model.ts`](https://github.com/openclaw/openclaw/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 `moltbot health`.
This script drives the interactive wizard via a pseudo-tty, verifies config/workspace/session files, then starts the gateway and runs `openclaw health`.
## QR import smoke (Docker)

View File

@@ -79,7 +79,7 @@ Implementation:
## Historical behavior (pre-2026.1.22)
Before the 2026.1.22 release, Moltbot applied multiple layers of transcript hygiene:
Before the 2026.1.22 release, OpenClaw applied multiple layers of transcript hygiene:
- A **transcript-sanitize extension** ran on every context build and could:
- Repair tool use/result pairing.