OpenClaw's March 22nd release landed quietly but hits hard. Version 2026.3.22 is one of the most substantive updates in recent memory — a near-complete restructuring of how plugins, skills, and the extension API work, alongside a flood of new features, security fixes, and UI polish. If you're running a self-hosted instance, you'll want to read this before blindly running openclaw update.
The Big Shift: A Public Plugin SDK
The most significant architectural change in this release is the retirement of openclaw/extension-api in favor of a new, narrower public surface: openclaw/plugin-sdk/*.
There is no compatibility shim. If your bundled plugins import from the old SDK root, they will break.
The new model requires plugins to use injected runtime for host-side operations (e.g., api.runtime.agent.runEmbeddedPiAgent) and restricts direct imports to specific openclaw/plugin-sdk/* subpaths. The OpenClaw team has published a full migration guide and an SDK overview to help you make the transition.
ClawHub Is Now the Default for Plugin Installs
Previously, openclaw plugins install <name> would go straight to npm. Starting with this release, ClawHub gets priority for any npm-safe package name — npm is only consulted if ClawHub doesn't have it.
This is a meaningful shift for the ecosystem. It positions ClawHub as the canonical skill and plugin marketplace, and means the community can expect faster, more curated install experiences for popular packages. See the updated ClawHub docs for details.
New Web Search Integrations
Three new bundled web search providers ship in this release:
- Exa — Exa-native date filters, search-mode selection, and optional content extraction via
plugins.entries.exa.config.webSearch.* - Tavily — Dedicated
tavily_searchandtavily_extracttools underplugins.entries.tavily.config.webSearch.* - Firecrawl — Exposes
firecrawl_searchandfirecrawl_scrapetools with coreweb_fetchfallback behavior
These join the existing search tooling as first-class options you can configure per-agent. Useful if you want specialized crawling or extraction beyond the defaults.
New /btw Command
One of the more delightful quality-of-life additions: /btw lets you ask side questions in the current session without polluting the agent's context. You get a dismissible in-session answer in the TUI or an explicit BTW reply in external channels like Slack or Telegram — and the conversation continues as if you never asked. Great for quick clarifications without derailing your workflow.
Other Notable Changes
- OpenAI default model updated to
openai/gpt-5.4for setup, withgpt-5.4-miniandgpt-5.4-nanonow supported natively - Per-agent thinking/reasoning defaults — configure reasoning depth at the agent level rather than globally
- Claude via Google Vertex AI — Anthropic Vertex provider support added for teams running on GCP
- Chutes provider bundled in with OAuth/API-key auth and dynamic model discovery
- Matrix plugin rebuilt from scratch using the official
matrix-js-sdk— upgrade path has a migration guide - Sandbox backends now pluggable — OpenShell and SSH backends ship out of the box, with Docker no longer assumed
- Control UI roundness slider — Appearance settings now let you dial in corner radius from sharp to fully rounded
Breaking Changes Checklist
Before you update, make sure you've addressed:
- Migrate plugin imports from
openclaw/extension-api→openclaw/plugin-sdk/* - Update message discovery adapters to use
describeMessageTool(...)(legacylistActions/getCapabilitiesremoved) - Run
openclaw doctor --fixto migrate Chrome browser config away from the removed extension relay path - Replace
CLAWDBOT_*/MOLTBOT_*env variables withOPENCLAW_*equivalents - Move any state still under
~/.moltbotto~/.openclaw - Replace the
nano-banana-proskill config withagents.defaults.imageGenerationModel
This is a big release with real migration work attached. The upside: once you're through the breaking changes, the plugin architecture is significantly cleaner going forward.