Some checks failed
ClawSweeper Dispatch / dispatch (push) Has been cancelled
CodeQL / Security High (actions) (push) Has been cancelled
CodeQL / Security High (channel-runtime-boundary) (push) Has been cancelled
CodeQL / Security High (core-auth-secrets) (push) Has been cancelled
CodeQL / Security High (mcp-process-tool-boundary) (push) Has been cancelled
CodeQL / Security High (network-ssrf-boundary) (push) Has been cancelled
CodeQL / Security High (plugin-trust-boundary) (push) Has been cancelled
CodeQL / Security High (process-exec-boundary) (push) Has been cancelled
Docs Sync Publish Repo / sync-publish-repo (push) Has been cancelled
Docs / docs (push) Has been cancelled
OpenClaw Stable Main Closeout / Resolve stable release closeout inputs (push) Has been cancelled
OpenClaw Stable Main Closeout / Verify stable main closeout (push) Has been cancelled
Workflow Sanity / no-tabs (push) Has been cancelled
Workflow Sanity / actionlint (push) Has been cancelled
Workflow Sanity / generated-doc-baselines (push) Has been cancelled
CI / runner-admission (push) Has been cancelled
CI / preflight (push) Has been cancelled
CI / security-fast (push) Has been cancelled
CI / pnpm-store-warmup (push) Has been cancelled
CI / build-artifacts (push) Has been cancelled
CI / native-i18n (push) Has been cancelled
CI / ${{ matrix.check_name }} (push) Has been cancelled
CI / ${{ matrix.checkName }} (push) Has been cancelled
CI / checks-node-compat-node22 (push) Has been cancelled
CI / check-bundled-channel-config-metadata (push) Has been cancelled
CI / check-dependencies (push) Has been cancelled
CI / check-guards (push) Has been cancelled
CI / check-lint (push) Has been cancelled
CI / check-prod-types (push) Has been cancelled
CI / check-shrinkwrap (push) Has been cancelled
CI / check-test-types (push) Has been cancelled
CI / check-additional-boundaries-a (push) Has been cancelled
CI / check-additional-boundaries-bcd (push) Has been cancelled
CI / check-additional-extension-bundled (push) Has been cancelled
CI / check-additional-extension-channels (push) Has been cancelled
CI / check-additional-extension-package-boundary (push) Has been cancelled
CI / check-additional-runtime-topology-architecture (push) Has been cancelled
CI / check-session-accessor-boundary (push) Has been cancelled
CI / check-session-transcript-reader-boundary (push) Has been cancelled
CI / check-docs (push) Has been cancelled
CI / skills-python (push) Has been cancelled
CI / macos-swift (push) Has been cancelled
CI / ios-build (push) Has been cancelled
CI / ci-timings-summary (push) Has been cancelled
Native App Locale Refresh / Refresh native fa (push) Has been cancelled
Native App Locale Refresh / Refresh native fr (push) Has been cancelled
Native App Locale Refresh / Refresh native hi (push) Has been cancelled
Native App Locale Refresh / Refresh native id (push) Has been cancelled
Native App Locale Refresh / Refresh native it (push) Has been cancelled
Native App Locale Refresh / Refresh native ja-JP (push) Has been cancelled
Control UI Locale Refresh / plan (push) Has been cancelled
Control UI Locale Refresh / Refresh ${{ matrix.locale }} (push) Has been cancelled
Control UI Locale Refresh / Commit control UI locale refresh (push) Has been cancelled
Live Media Runner Image / Build live media runner image (push) Has been cancelled
Native App Locale Refresh / Refresh native ar (push) Has been cancelled
Native App Locale Refresh / Refresh native de (push) Has been cancelled
Native App Locale Refresh / Refresh native es (push) Has been cancelled
Native App Locale Refresh / Refresh native ko (push) Has been cancelled
Native App Locale Refresh / Refresh native nl (push) Has been cancelled
Native App Locale Refresh / Refresh native pl (push) Has been cancelled
Native App Locale Refresh / Refresh native pt-BR (push) Has been cancelled
Native App Locale Refresh / Refresh native ru (push) Has been cancelled
Native App Locale Refresh / Refresh native sv (push) Has been cancelled
Native App Locale Refresh / Refresh native th (push) Has been cancelled
Native App Locale Refresh / Refresh native tr (push) Has been cancelled
Native App Locale Refresh / Refresh native uk (push) Has been cancelled
Native App Locale Refresh / Refresh native vi (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-CN (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-TW (push) Has been cancelled
Native App Locale Refresh / Commit native locale refresh (push) Has been cancelled
Plugin Init Scaffold Validation / Validate provider scaffold (push) Has been cancelled
Plugin NPM Release / preview_plugins_npm (push) Has been cancelled
Plugin NPM Release / Validate release publish approval (push) Has been cancelled
Plugin NPM Release / preview_plugin_pack (push) Has been cancelled
Plugin NPM Release / publish_plugins_npm (push) Has been cancelled
Sandbox Common Smoke / sandbox-common-smoke (push) Has been cancelled
Website Installer Sync / static (push) Has been cancelled
Website Installer Sync / linux-docker (push) Has been cancelled
Website Installer Sync / macos-installer (push) Has been cancelled
Website Installer Sync / windows-installer (push) Has been cancelled
Website Installer Sync / sync-website (push) Has been cancelled
Adolf is a fork/vendored clone of github.com/openclaw/openclaw (v2026.6.11), free to diverge. Tree copied sans upstream .git; upstream remote added for future syncs. Node pinned to 24 (.nvmrc); engines already require >=22.19. Preserves docs/ARCHITECTURE.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LeqyaxJF2nbRXJtae2kNB2
127 lines
5.8 KiB
Markdown
127 lines
5.8 KiB
Markdown
## OpenClaw Vision
|
|
|
|
OpenClaw is the AI that actually does things.
|
|
It runs on your devices, in your channels, with your rules.
|
|
|
|
This document explains the current state and direction of the project.
|
|
We are still early, so iteration is fast.
|
|
Project overview and developer docs: [`README.md`](README.md)
|
|
Contribution guide: [`CONTRIBUTING.md`](CONTRIBUTING.md)
|
|
|
|
OpenClaw started as a personal playground to learn AI and build something genuinely useful:
|
|
an assistant that can run real tasks on a real computer.
|
|
It evolved through several names and shells: Warelay -> Clawdbot -> Moltbot -> OpenClaw.
|
|
|
|
The goal: a personal assistant that is easy to use, supports a wide range of platforms, and respects privacy and security.
|
|
|
|
The current focus is:
|
|
|
|
Priority:
|
|
|
|
- Security and safe defaults
|
|
- Bug fixes and stability
|
|
- Setup reliability and first-run UX
|
|
|
|
Next priorities:
|
|
|
|
- Supporting all major model providers
|
|
- Improving support for major messaging channels (and adding a few high-demand ones)
|
|
- Performance and test infrastructure
|
|
- Better computer-use and agent harness capabilities
|
|
- Ergonomics across CLI and web frontend
|
|
- Companion apps on macOS, iOS, Android, Windows, and Linux
|
|
|
|
Contribution rules:
|
|
|
|
- One PR = one issue/topic. Do not bundle multiple unrelated fixes/features.
|
|
- PRs over ~5,000 changed lines are reviewed only in exceptional circumstances.
|
|
- Do not open large batches of tiny PRs at once; each PR has review cost.
|
|
- For very small related fixes, grouping into one focused PR is encouraged.
|
|
|
|
Configuration compatibility:
|
|
|
|
OpenClaw runtime code reads the current configuration schema only.
|
|
We do not keep long-lived aliases or compatibility branches that silently accept old, renamed, or malformed config keys.
|
|
|
|
When a config change makes existing user config invalid, the same change needs a doctor migration.
|
|
`openclaw doctor --fix` should detect the old shape, explain it, back it up when needed, and rewrite it to the canonical format.
|
|
Core-owned config and auth state are repaired in core doctor code; plugin-owned config is repaired by that plugin's doctor contract.
|
|
|
|
## Security
|
|
|
|
Security in OpenClaw is a deliberate tradeoff: strong defaults without killing capability.
|
|
The goal is to stay powerful for real work while making risky paths explicit and operator-controlled.
|
|
|
|
Canonical security policy and reporting:
|
|
|
|
- [`SECURITY.md`](SECURITY.md)
|
|
|
|
We prioritize secure defaults, but also expose clear knobs for trusted high-power workflows.
|
|
|
|
## Plugins & Memory
|
|
|
|
OpenClaw has an extensive plugin API.
|
|
Core stays lean; optional capabilities should usually ship as plugins.
|
|
We are generally slimming down core while expanding what plugins can do.
|
|
If a useful feature cannot be built as a plugin yet, we welcome PRs and design discussions that extend the plugin API instead of adding one-off core behavior.
|
|
|
|
There are two broad plugin styles:
|
|
|
|
- Code plugins run OpenClaw plugin code and are appropriate for deeper runtime extension.
|
|
- Bundle-style plugins package stable external surfaces such as skills, MCP servers, and related configuration.
|
|
|
|
Prefer bundle-style plugins when they can express the capability.
|
|
They have a smaller, more stable interface and better security boundaries.
|
|
Use code plugins when the capability needs runtime hooks, providers, channels, tools, or other in-process extension points.
|
|
|
|
Preferred plugin path is npm package distribution plus local extension loading for development.
|
|
If you build a plugin, host and maintain it in your own repository.
|
|
The bar for adding optional plugins to core is intentionally high.
|
|
Plugin docs: [`docs/tools/plugin.md`](docs/tools/plugin.md)
|
|
Plugin discovery, official publisher status, provenance, and security review live in [ClawHub](https://clawhub.ai/).
|
|
OpenClaw docs should document core extension points; plugin promotion belongs in ClawHub, preferably under vetted org publishers for official plugins.
|
|
|
|
Memory is a special plugin slot where only one memory plugin can be active at a time.
|
|
Today we ship multiple memory options; over time we plan to converge on one recommended default path.
|
|
|
|
### Skills
|
|
|
|
We still ship some bundled skills for baseline UX.
|
|
New skills should be published through [ClawHub](https://clawhub.ai/) first, not added to core by default.
|
|
Official or bundled promotion should require a clear product, security, or maintainer-ownership reason.
|
|
|
|
### MCP Support
|
|
|
|
OpenClaw supports MCP as both a server and a runtime integration surface.
|
|
MCP details live in [`docs/cli/mcp.md`](docs/cli/mcp.md).
|
|
|
|
The project goal is pragmatic MCP support without duplicating existing agent,
|
|
tool, ACPX, plugin, or ClawHub paths.
|
|
|
|
### Setup
|
|
|
|
OpenClaw is currently terminal-first by design.
|
|
This keeps setup explicit: users see docs, auth, permissions, and security posture up front.
|
|
|
|
Long term, we want easier onboarding flows as hardening matures.
|
|
We do not want convenience wrappers that hide critical security decisions from users.
|
|
|
|
### Why TypeScript?
|
|
|
|
OpenClaw is primarily an orchestration system: prompts, tools, protocols, and integrations.
|
|
TypeScript was chosen to keep OpenClaw hackable by default.
|
|
It is widely known, fast to iterate in, and easy to read, modify, and extend.
|
|
|
|
## What We Will Not Merge (For Now)
|
|
|
|
- New core skills when they can live on [ClawHub](https://clawhub.ai/)
|
|
- Full-doc translation sets for all docs (deferred; we plan AI-generated translations later)
|
|
- Commercial service integrations that do not clearly fit the model-provider category
|
|
- Wrapper channels around already supported channels without a clear capability or security gap
|
|
- MCP work that duplicates existing MCP, ACPX, plugin, or ClawHub paths without a clear product or security gap
|
|
- Agent-hierarchy frameworks (manager-of-managers / nested planner trees) as a default architecture
|
|
- Heavy orchestration layers that duplicate existing agent and tool infrastructure
|
|
|
|
This list is a roadmap guardrail, not a law of physics.
|
|
Strong user demand and strong technical rationale can change it.
|