OpenClaw
OpenClaw is an active Spawnfile runtime with a JSON config file and a rich markdown workspace layout. It supports multi-agent operation through native sessions, but Spawnfile v0.1 does not inject its own team router.
Status: Active
Config Shape
Section titled “Config Shape”OpenClaw uses a JSON configuration file at ~/.openclaw/openclaw.json. The adapter emits a config file that maps Spawnfile execution intent to OpenClaw’s native structure.
Key config areas:
- Agent model selection (
agent.model) - Auth profile configuration
- Session state and model persistence
The short-form runtime: openclaw in a Spawnfile normalizes internally to:
runtime: name: openclaw options: {}The long form allows adapter-specific options:
runtime: name: openclaw options: profile: defaultWorkspace Layout
Section titled “Workspace Layout”OpenClaw uses ~/.openclaw/workspace as its workspace root. The adapter places Spawnfile docs into this structure:
| Spawnfile Role | OpenClaw File |
|---|---|
identity | IDENTITY.md |
soul | SOUL.md |
system | AGENTS.md |
memory | MEMORY.md |
heartbeat | HEARTBEAT.md |
extras.* | Placed by key name (e.g. USER.md) |
Skills are placed under ~/.openclaw/workspace/skills/<skill>/SKILL.md, matching the workspace skill model.
Model Mapping
Section titled “Model Mapping”The adapter maps execution.model.primary to the agent’s default model setting:
# Spawnfileexecution: model: primary: provider: anthropic name: claude-sonnet-4-5Fallback models are mapped only if the runtime path supports them. Auth handling remains runtime-native and adapter-specific.
MCP Handling
Section titled “MCP Handling”OpenClaw supports MCP through an mcporter bridge layer rather than a pure first-class MCP config surface. The adapter compiles logical Spawnfile MCP declarations into OpenClaw’s MCP bridge or plugin-native config.
ACPX runtime paths can inject named MCP server maps, which gives the adapter a target for MCP lowering.
Workspace and Sandbox
Section titled “Workspace and Sandbox”- The main session can run on the host
- Non-main sessions can be sandboxed in Docker
- Workspace root is explicit and configurable
The adapter maps workspace.docs, workspace.resources, and execution.sandbox.mode to OpenClaw’s workspace and session sandboxing configuration.
OpenClaw does not have a native team manifest. What it has:
- Multi-agent sessions
- Agent-to-agent session tools
The adapter lowers Spawnfile team members into runtime-native agents/sessions where possible and reports degradation when native semantics do not preserve Spawnfile representatives, context artifacts, or team networks.
Nested teams and full native team identity are reported as degraded.
Surfaces
Section titled “Surfaces”OpenClaw has the strongest chat-surface support among the active runtimes. Discord, Telegram, WhatsApp, and Slack are supported with pairing, allowlist, and open access modes. Portable HTTP is not part of the v0.1 alpha surface contract.
Discord
Section titled “Discord”Spawnfile lowers Discord access into OpenClaw’s rich config surface:
dmPolicygroupPolicyallowFromguildsguilds.*.channels
| Mode | Support |
|---|---|
pairing | Supported |
allowlist | Supported (users, guilds, channels) |
open | Supported |
Channel allowlists currently require exactly one guild in the Spawnfile lowering.
Telegram
Section titled “Telegram”Spawnfile lowers Telegram access into the same rich OpenClaw channel surface:
dmPolicygroupPolicyallowFromgroups
| Mode | Support |
|---|---|
pairing | Supported |
allowlist | Supported (users, chats) |
open | Supported |
Spawnfile lowers WhatsApp access into OpenClaw’s channel surface:
dmPolicygroupPolicyallowFromgroups
| Mode | Support |
|---|---|
pairing | Supported |
allowlist | Supported (users, groups) |
open | Supported |
WhatsApp does not have a portable token secret. QR/session auth is runtime-defined.
Spawnfile lowers Slack access into OpenClaw’s channel surface using socket mode:
mode: socketdmPolicygroupPolicyallowFromchannels
| Mode | Support |
|---|---|
pairing | Supported |
allowlist | Supported (users, channels) |
open | Supported |
Slack requires both bot_token_secret and app_token_secret.
What The Adapter Emits
Section titled “What The Adapter Emits”For a single agent, the adapter emits:
- An OpenClaw JSON config file
- Workspace markdown files mapped from Spawnfile doc roles
- Skill directories with
SKILL.mdfiles - MCP bridge configuration
For container compilation, the adapter provides container metadata including:
- The standalone base image
- System dependencies
- Config and workspace paths inside the container
- The start command
- Port and environment configuration
Container Notes
Section titled “Container Notes”- Container output has been verified from the host, not only inside Docker.
- The generated runtime must bind to a host-reachable gateway setting for Docker port publishing to work.
- Compiled output places config and workspace files into final runtime paths at build time. The entrypoint only needs validation and startup.
- Host-side smoke checks use the control UI root path and
/healthz.
Example
Section titled “Example”From the single-agent fixture:
spawnfile_version: "0.1"kind: agentname: analyst
runtime: openclaw
execution: model: primary: provider: anthropic name: claude-sonnet-4-5 sandbox: mode: workspace
workspace: docs: identity: IDENTITY.md soul: SOUL.md system: AGENTS.md memory: MEMORY.md heartbeat: HEARTBEAT.md skills: - ref: ./skills/web_search requires: mcp: - web_search
environment: mcp_servers: - name: web_search transport: streamable_http url: https://search.mcp.example.com/mcp auth: secret: SEARCH_API_KEY