crates

Ten crates, one workspace.

Each crate is independently usable. The CLI assembles the common deployment shape; embedders can pull in just the pieces they need.

Crate Status Role Links
openclaw-core stable Foundation: types, JSON5 config loader, sled-backed event store, AES-256-GCM credential store, OAuth token management, input validation.
openclaw-ipc stable IPC message types and nng transport — the wire format for the TypeScript plugin bridge.
openclaw-providers stable Anthropic + OpenAI clients with SSE streaming, tool use, and configurable base URLs.
openclaw-agents stable Agent runtime, platform-specific sandbox (bwrap / sandbox-exec / Job Objects), tool registry, node-based workflow engine.
openclaw-channels partial Channel traits + allowlist + routing. Telegram adapter complete; Discord, Slack, Signal, Matrix, WhatsApp planned.
openclaw-gateway stable axum HTTP/WebSocket server with JSON-RPC 2.0 dispatch, rate-limit and auth middleware, embedded Vue 3 dashboard.
openclaw-plugins partial Plugin API + nng-based TypeScript bridge. WASM runtime (wasmtime vs wasmer) under evaluation.
openclaw-cli stable Top-level CLI: onboard, gateway, doctor, status, config, sessions, channels, daemon, completion.
openclaw-node stable napi-rs bindings: AnthropicProvider, OpenAIProvider, NodeEventStore, CredentialStore, ToolRegistry. Pre-built binaries on npm.
openclaw-ui stable Vue 3 + Vite dashboard. Served by openclaw-gateway at /. No external admin to deploy.

Reading the table

Stable means the public API is settled and we don't intend to break it without bumping a major. Partial means the crate is functional but a known piece is roadmap-tracked — for openclaw-channels that's "more adapters", for openclaw-plugins that's "WASM runtime alongside the TypeScript IPC bridge that ships today".

The five layers

Foundationopenclaw-core + openclaw-ipc. Types, config, events, secrets, validation, the IPC wire format. No external dependencies above this layer.

Integrationopenclaw-providers + openclaw-agents. Provider clients with streaming. Agent runtime with sandboxing, tool registry, workflow engine.

Servicesopenclaw-channels + openclaw-plugins. Channel adapters. Plugin bridge.

Gatewayopenclaw-gateway. The JSON-RPC server + WebSocket handler + embedded dashboard.

Surfacesopenclaw-cli + openclaw-node + openclaw-ui. The CLI, the Node bindings, the Vue 3 dashboard.

Picking what you need

If you're deploying a runtime, install openclaw-cli — it bundles the gateway, the runtime, and the dashboard.

If you're embedding agent calls in your Rust service, depend on openclaw-providers + openclaw-agents directly.

If you're calling Rust from Node.js, npm-install openclaw-node.

If you're building a new channel adapter, the Channel trait lives in openclaw-channels; the Telegram adapter is the reference implementation.

If you're building a TypeScript plugin, the contract lives in openclaw-plugins — and the same plugin works against TypeScript OpenClaw and openclaw-rs.

docs

Crate-level documentation lives on docs.rs.

docs.neullabs.com/openclaw-rs/ has the conceptual docs and guides; docs.rs has the API reference per crate.