Skip to content
Merged
4 changes: 4 additions & 0 deletions docs/getting-started/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ Do not use `sudo npm`. Point npm's global prefix at a directory you own (for exa

Both desktop apps can set up a local Gateway on first run or connect to a remote one.

:::warning Changing in 2026.10.10 (beta)
2026.10.10-beta.1 (npm `beta`, 2026-10-15; not in 2026.10.4) requires **macOS 26.2, iOS 26.2 and Safari 26.2** or newer for the native apps and the Control UI ([PR #168595](https://github.com/openclaw/openclaw/pull/168595)). 2026.10.4's macOS app needs macOS 15.0 or later. If a Mac, iPhone or iPad you use cannot update to 26.2, stay on 2026.10.4 for the apps, or use the Control UI from another browser.
:::

## Method 4: Docker

Use Docker for a headless server or an isolated Gateway. The supported path is the setup script in the repo, which builds or pulls the image, runs onboarding, writes a Gateway token to `.env` and starts Docker Compose:
Expand Down
6 changes: 3 additions & 3 deletions docs/guides/channels.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ openclaw channels status --probe

With the default hot reload, a running Gateway applies new channel config without a restart. If the Gateway is not running, start it with `openclaw gateway start` (service) or `openclaw gateway run` (foreground).

In 2026.10.4, `openclaw plugins install @openclaw/<id>` installs from npm first and falls back to the package's ClawHub listing only when the npm target is unavailable; prefix `npm:` or `clawhub:` to force a source. Reference: [`openclaw channels`](https://docs.openclaw.ai/cli/channels), [plugins](https://docs.openclaw.ai/tools/plugin).
In 2026.10.4, `openclaw plugins install @openclaw/<id>` installs from npm first and falls back to the package's ClawHub listing only when the npm target is unavailable; prefix `npm:` or `clawhub:` to force a source. Upstream `main` (not yet in any release, including 2026.10.10-beta.1) resolves bare names through ClawHub instead, with no npm fallback ([PR #173669](https://github.com/openclaw/openclaw/pull/173669)); the official `@openclaw/*` channel plugins install either way, but scripts that need npm should say `npm:`. Reference: [`openclaw channels`](https://docs.openclaw.ai/cli/channels), [plugins](https://docs.openclaw.ai/tools/plugin).

---

Expand Down Expand Up @@ -310,8 +310,8 @@ openclaw channels status --probe

OpenClaw 2026.10.4 has no built-in X / Twitter channel.

:::note Next release
Upstream `main` adds a bundled **X channel** (`x`) that turns mentions of your bot account into conversations and posts public replies, only for allowlisted authors by default, with no DMs, likes or original posts. It is not in 2026.10.4. See [docs.openclaw.ai/channels/x](https://docs.openclaw.ai/channels/x) once you upgrade.
:::note Coming in 2026.10.10 (beta)
2026.10.10-beta.1 (npm `beta`, 2026-10-15; not in 2026.10.4) adds an **X channel plugin** (`x`, [PR #165138](https://github.com/openclaw/openclaw/pull/165138)). It turns mentions of your bot account into conversations and posts public replies, only for allowlisted authors by default. It uses X Activity API streaming or mention polling, has an optional guest mode for unknown authors, and enforces daily and monthly X API cost limits. No DMs, likes or original posts. Until it is stable, use TweetClaw below or wait; see [docs.openclaw.ai/channels/x](https://docs.openclaw.ai/channels/x) once you upgrade.
:::

For X automation today (search, follower export, monitors, giveaways), [TweetClaw](https://github.com/Xquik-dev/tweetclaw) is a **third-party** plugin backed by Xquik's paid API:
Expand Down
4 changes: 2 additions & 2 deletions docs/guides/clawhub.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ For CI, ClawHub ships a reusable GitHub Actions workflow; see [CI/CD & Testing](

### After you publish

Publishes are staged: a release is held behind pre-publication checks (static analysis, VirusTotal, SkillSpector, Tencent A.I.G, ClawScan risk analysis) and appears in search once it clears. Releases that are held or blocked stay visible to their owner. Download the scan report for a blocked version with:
Publishes are staged: since 2026-10-13 every skill version and package release is held as pending behind pre-publication checks, and a scanner failure or timeout leaves it unpublished rather than letting it through ([clawhub PR #3947](https://github.com/openclaw/clawhub/pull/3947)). The checks are static analysis, VirusTotal, SkillSpector, Tencent A.I.G and ClawScan risk analysis; the release appears in search once it clears. Releases that are held or blocked stay visible to their owner. Download the scan report for a blocked version with:

```bash
clawhub scan download my-skill --version 1.0.1 --output report.zip
Expand Down Expand Up @@ -202,7 +202,7 @@ Each release gets a security audit on its skill page, combining ([Security audit
- **ClawScan** risk analysis, which asks whether the name, description, declared permissions and actual content line up, using the OWASP Agentic Skills Top 10 as a lens
- **VirusTotal** and static analysis results, shown as detail pages

Signed-in users can report a skill with the **Report skill** button; a skill is hidden automatically after more than three unique reports, pending moderator review.
Signed-in users can report a skill with the **Report skill** button. Reports never hide a skill automatically; moderators review them ([ClawHub moderation spec](https://github.com/openclaw/clawhub/blob/main/specs/security-moderation.md)). The old auto-hide rule was withdrawn after GHSA-5jj4-m8c9-gwcq showed that four ordinary accounts could hide any skill, official ones included.

OpenClaw itself also has a local code-safety scanner (since 2026.2.6), and `openclaw skills install` refuses releases ClawHub has marked malicious or blocked.

Expand Down
2 changes: 1 addition & 1 deletion docs/guides/deployment-options.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ openclaw gateway status
openclaw gateway restart
```

- **macOS:** a per-user LaunchAgent labelled `ai.openclaw.gateway`.
- **macOS:** a per-user LaunchAgent labelled `ai.openclaw.gateway`. The Gateway itself only needs Node; from 2026.10.10 (now in beta) the macOS app and the Control UI in Safari need macOS or Safari 26.2 or newer ([PR #168595](https://github.com/openclaw/openclaw/pull/168595)).
- **Linux:** a systemd **user** unit, `openclaw-gateway.service`. Inspect it with `systemctl --user status openclaw-gateway` and `journalctl --user -u openclaw-gateway -f`. On a headless server, run `sudo loginctl enable-linger $(whoami)` so it keeps running after you log out.
- After changing `gateway.port`, run `openclaw gateway install --force` so the service starts on the new port.

Expand Down
3 changes: 2 additions & 1 deletion docs/guides/plugin-system.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ openclaw plugins install --link ./my-plugin --force # link a dev checkout

Git sources use `git:github.com/<owner>/<repo>` with an optional `@<ref>`. Claude-compatible marketplaces use `<plugin>@<marketplace>` or `--marketplace <source>`.

In v2026.10.4, a **bare** name (`openclaw plugins install some-plugin`) installs from **npm**, unless it matches a bundled or official plugin id. Upstream `main` has switched bare names to ClawHub for the next release. Use an explicit `clawhub:` or `npm:` prefix so the command means the same thing on both.
In v2026.10.4, a **bare** name (`openclaw plugins install some-plugin`) installs from **npm**, unless it matches a bundled or official plugin id. Upstream `main` has switched bare names to ClawHub with no npm fallback ([PR #173669](https://github.com/openclaw/openclaw/pull/173669)). That change merged after 2026.10.10-beta.1 and beta.2 were cut, so it is in no release yet and may or may not ship in 2026.10.10. Use an explicit `clawhub:` or `npm:` prefix so the command means the same thing on both sides.

ClawHub packages and OpenClaw's bundled and official catalogue are trusted sources. Arbitrary npm packages, git, local paths and marketplaces warn and ask first; non-interactive installs need `--force` after you have reviewed the source. `--force` does not bypass `security.installPolicy`.

Expand Down Expand Up @@ -294,6 +294,7 @@ Points that trip people up:
- Every plugin needs `openclaw.plugin.json` with a `configSchema`, even an empty one.
- Every tool the plugin registers must be listed in `contracts.tools`.
- The SDK is imported from the `openclaw` package itself (`openclaw/plugin-sdk/plugin-entry`, `openclaw/plugin-sdk/core` for channels). There is no separate `@openclaw/plugin-sdk` package on npm.
- Deprecated synchronous SQLite-backed SDK members stay compatible through **2026-12-31**; upstream plans to remove them in the first January 2027 stable release. Move to the async replacements before then ([plugin compatibility](https://docs.openclaw.ai/plugins/compatibility), as documented in the 2026.10.10-beta.1 docs; the 2026.10.4 docs do not give the date yet).
- Runtime imports go in `dependencies`; `devDependencies` are not installed for the plugin at runtime.
- Published plugins point `openclaw.extensions` at built JavaScript, not `.ts` source.

Expand Down
4 changes: 4 additions & 0 deletions docs/guides/privacy-compliance.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ Upstream says to assume anything under `~/.openclaw/` (or `$OPENCLAW_STATE_DIR`)
| **Gateway logs** | `/tmp/openclaw/openclaw-YYYY-MM-DD.log` | JSONL; known secret patterns masked before writing (best-effort); rotate at 100 MB, five archives kept ([logging](https://docs.openclaw.ai/gateway/logging)) |
| **Sandbox workspaces** | `~/.openclaw/sandboxes/` | Copies of files the sandbox touched |

:::warning Changing in 2026.10.10 (beta)
In 2026.10.4, known secret patterns in tool arguments and results are masked before they reach the model and the transcript. 2026.10.10-beta.1 (npm `beta`, 2026-10-15; not in 2026.10.4) removes that masking: tool payloads and `.env` reads are stored and sent to the provider as-is, while logs, support exports and telemetry stay masked ([PR #169063](https://github.com/openclaw/openclaw/pull/169063)). Treat session transcripts as holding credentials, and review your provider's retention terms before upgrading.
:::

Nothing here is encrypted by OpenClaw. Use full-disk encryption on the Gateway host, keep `~/.openclaw` at `700` and its files at `600`, and on shared machines run the Gateway as a dedicated OS user.

### Does OpenClaw phone home? {#does-openclaw-phone-home}
Expand Down
4 changes: 2 additions & 2 deletions docs/guides/skill-development.md
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ See [ClawHub — Publishing](https://docs.openclaw.ai/clawhub/publishing) for ow

### Via Skill Workshop

Skills that the agent writes for itself go through [Skill Workshop](/guides/skill-workshop), not through your workspace folder.
Skills that the agent writes for itself go through [Skill Workshop](/guides/skill-workshop), not through your workspace folder. On 2026.10.4 you can make them wait for review with `propose` mode. 2026.10.10-beta.1 (npm `beta`, 2026-10-15) removes proposals: changes apply immediately with Undo, and `openclaw doctor --fix` rewrites `propose` to `off`, which disables learning. Do not rely on `propose` as a lasting review gate.

---

Expand Down Expand Up @@ -506,7 +506,7 @@ There is no `openclaw skill` (singular) or `openclaw clawhub` command.
## See Also

- [ClawHub](/guides/clawhub): find, verify and install community skills
- [Skill Workshop](/guides/skill-workshop): skills the agent proposes for itself
- [Skill Workshop](/guides/skill-workshop): skills the agent writes for itself
- [Plugin System](/guides/plugin-system): when you need real code, not instructions
- [Security hardening](/security/hardening): sandboxing and approvals
- Upstream: [Creating skills](https://docs.openclaw.ai/tools/creating-skills), [Skills](https://docs.openclaw.ai/tools/skills), [Skills config](https://docs.openclaw.ai/tools/skills-config), [`openclaw skills`](https://docs.openclaw.ai/cli/skills)
12 changes: 7 additions & 5 deletions docs/guides/skill-workshop.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@ Skills you write by hand (workspace, project, managed, ClawHub, plugin, bundled)

The official reference is [Skill Workshop](https://docs.openclaw.ai/tools/skill-workshop) and [Self-learning](https://docs.openclaw.ai/tools/self-learning).

:::info Version note
This page describes **v2026.10.4**, the current stable release. The upstream `main` branch has already removed the proposal queue: learned skills apply immediately, every change keeps the previous version, and the CLI becomes `openclaw skills workshop list | changes | show | archive | restore`. docs.openclaw.ai may already describe that newer model. When you upgrade to the release that ships it, `openclaw doctor --fix` exports pending proposals and removes the old `approvalPolicy` and `maxPending` settings.
:::warning Changing in 2026.10.10 (beta)
This page describes **v2026.10.4**, the current stable release. **2026.10.10-beta.1** (npm `beta`, published 2026-10-15; not in 2026.10.4) retires the proposal flow: `propose` mode, `approvalPolicy`, `maxPending`, `propose-create`/`propose-update` and the other proposal subcommands are gone. Learned changes apply immediately, each keeps the previous version, and you revert with **Undo** (the Learned notice, or say "undo"). The CLI becomes `openclaw skills workshop list | changes | show | archive | restore`.

On upgrade, `openclaw doctor --fix` rewrites `autonomous.mode: "propose"` to **`"off"`** (not `auto`), so self-learning is silently disabled, deletes `approvalPolicy` and `maxPending`, and exports pending or quarantined drafts to `<agentDir>/workshop-skills/.archive/.retired-proposals/` without installing them. If you use `propose` today, plan to check `openclaw config get skills.workshop.autonomous.mode` after upgrading and set it to `auto` or leave it `off` deliberately. Sources: [PR #161057](https://github.com/openclaw/openclaw/pull/161057), [PR #168577](https://github.com/openclaw/openclaw/pull/168577), [v2026.10.10-beta.1 notes](https://github.com/openclaw/openclaw/releases/tag/v2026.10.10-beta.1).
:::

---
Expand Down Expand Up @@ -49,7 +51,7 @@ In the default `auto` mode, the agent edits its Workshop skills without asking.
| `"propose"` | The background review can stage **one pending proposal** per review. Nothing goes live until it is applied. |
| `"off"` | No background learning. You can still create skills on request or with `/learn`. |

The default is `auto`, so learning is **on** on a fresh install. If you want every change reviewed before it goes live, switch to `propose`:
The default is `auto`, so learning is **on** on a fresh install. On 2026.10.4, if you want every change reviewed before it goes live, switch to `propose`. This setup does not survive the next release: 2026.10.10 removes it and `doctor --fix` turns learning **off** (see the warning above).

```json5 title="~/.openclaw/openclaw.json"
{
Expand Down Expand Up @@ -78,7 +80,7 @@ openclaw config set skills.workshop.autonomous.mode off
```

:::note
`approvalPolicy: "pending"` only matters for proposals. In `auto` mode the background review edits skills directly and never asks. For a reviewed setup you need both `mode: "propose"` and `approvalPolicy: "pending"`.
`approvalPolicy: "pending"` only matters for proposals. In `auto` mode the background review edits skills directly and never asks. For a reviewed setup on 2026.10.4 you need both `mode: "propose"` and `approvalPolicy: "pending"`. Both keys are removed in 2026.10.10.
:::

The background review uses the same model and provider as the conversation, so it costs tokens. Incognito turns are never reviewed. The review keeps the source session's shell approvals; the Workshop file root is not a shell sandbox.
Expand Down Expand Up @@ -235,7 +237,7 @@ Do not edit these directories by hand while the Gateway runs. Upgrades from rele
| `Proposal scan failed` | Inspect the scanner findings, then revise or quarantine |
| Proposal missing from `list` | Check `--agent` and `OPENCLAW_STATE_DIR` |
| Agent cannot call `skill_workshop` | Sandboxed run, or tool policy hides it; see above |
| Agent changes skills without asking | Mode is `auto`; switch to `propose` and set `approvalPolicy: "pending"` |
| Agent changes skills without asking | Mode is `auto`; on 2026.10.4 switch to `propose` and set `approvalPolicy: "pending"` (removed in 2026.10.10, where you use Undo or `mode: "off"`) |

---

Expand Down
7 changes: 4 additions & 3 deletions docs/guides/upgrading-to-2.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ openclaw --version
openclaw update status
```

Write the version down: you need it to roll back. `update status` shows your update channel. If it says `extended-stable`, `openclaw update` takes you to the 2026.9.3x line, not to 2026.10.4. Pass `--channel stable` when you reach the last step.
Write the version down: you need it to roll back. `update status` shows your update channel. If it says `extended-stable`, `openclaw update` takes you to the 2026.9.3x line, not to 2026.10.4. Pass `--channel stable` when you reach the last step. If it says `beta`, `openclaw update` installs 2026.10.10-beta.1 (npm `beta` since 2026-10-15), which is newer than this guide; version numbers are not chronological, and that beta was published before 2026.10.4. This guide covers the move to 2026.10.4.

### 2. Upgrade Node first

Expand Down Expand Up @@ -409,7 +409,7 @@ Results on 2026-10-18, run directly on 2026.10.4: `a-july-two-agents` and `e-gui

Doctor does not flag these, because nothing is broken. They do change behaviour after the upgrade.

- **Self-learning is on.** `skills.workshop.autonomous.mode` defaults to `auto`: the agent maintains its own Workshop skills. Set `propose` to review changes first, or `off` ([Self-learning](https://docs.openclaw.ai/tools/self-learning)).
- **Self-learning is on.** `skills.workshop.autonomous.mode` defaults to `auto`: the agent maintains its own Workshop skills. On 2026.10.4 you can set `propose` to review changes first, or `off` ([Self-learning](https://docs.openclaw.ai/tools/self-learning)). `propose` is removed in 2026.10.10, where `doctor --fix` turns it into `off`; see [Skill Workshop](/guides/skill-workshop).
- **Dreaming is on.** Background memory consolidation runs by default and writes `DREAMS.md` ([Dreaming](https://docs.openclaw.ai/concepts/dreaming)).
- **Heartbeat alerts go to the owner's DM.** The default `target` is `owner`. Without a command owner, Doctor reports "No command owner is configured" and ambient alerts have nowhere to go. Set `commands.ownerAllowFrom`.
- **Sessions no longer reset at idle or day boundaries** unless you configured a reset policy. An explicit `session.reset` is kept, as in Example 1.
Expand Down Expand Up @@ -477,7 +477,8 @@ openclaw gateway status --deep
:::tip Changes on upstream `main` that will matter for your next upgrade
These are in upstream's development docs as of 2026-10-18 and are **not** in 2026.10.4. They may change before release.

- **Plugin installs default to ClawHub.** A bare `openclaw plugins install <package>`, including `@openclaw/*` names, will resolve through ClawHub with no automatic npm fallback. To install from npm, write `npm:@openclaw/<plugin>@<version>`. Scripts that rely on npm resolution will need the prefix.
- **Already in 2026.10.10-beta.1** (npm `beta`, 2026-10-15): the Skill Workshop proposal flow is retired, and `doctor --fix` turns `propose` mode **off** ([Skill Workshop](/guides/skill-workshop)); tool payloads and `.env` reads are no longer masked in model context and transcripts ([hardening](/security/hardening)); the macOS and iOS apps and the Control UI in Safari need 26.2 or newer ([installation](/getting-started/installation)).
- **Plugin installs default to ClawHub** (main only; merged after both 10.10 beta tags, so it may not be in 2026.10.10). A bare `openclaw plugins install <package>`, including `@openclaw/*` names, will resolve through ClawHub with no automatic npm fallback. To install from npm, write `npm:@openclaw/<plugin>@<version>`. Scripts that rely on npm resolution will need the prefix.
- **`openai-codex-responses` joins the refused list.** In 2026.10.4, Doctor still rewrites this provider API id to `openai-chatgpt-responses`. On `main`, current Doctor refuses it and sends you to an intermediate release. Run `openclaw doctor --fix` on 2026.10.4 before you move past it.
- **Crabbox cloud-worker `settings.setupEnv` is retired** in favour of `settings.setupSecrets` store references. This only matters if you use cloud workers.
:::
Expand Down
Loading
Loading