Overview
OpenClaw is the open-source, publicly distributable version of the Claw agent deployment system, with AgentMux as its native GUI layer. Where Claw is a private PowerShell-based tool for managing Docker containers, OpenClaw is a cross-platform, configuration-driven platform that anyone can use.
AgentMux is the natural GUI frontend. OpenClaw handles container/process management. Together they form a complete agent orchestration platform without proprietary infrastructure.
Problem
Today's workflow requires:
- Claw — private, Windows-only, PowerShell-based container orchestration
- AgentMux — GUI terminal multiplexer
- AgentBus — private inter-agent messaging service
These work together but can't be shared publicly. OpenClaw packages the deployment layer as a public, cross-platform tool integrated natively with AgentMux.
Architecture
┌─────────────────────────────────────────────────┐
│ AgentMux (GUI + Terminal Multiplexer) │
│ ┌───────────┐ ┌──────────────┐ │
│ │ Forge │ │ Agent Panes │ │
│ │ (manage) │ │ (run agents) │ │
│ └─────┬─────┘ └──────┬───────┘ │
│ │ │ jekt │
├────────┼───────────────┼─────────────────────────┤
│ OpenClaw Agent Registry + Launcher │
│ ┌─────────────────────────────────┐ │
│ │ Runtime Adapters │ │
│ │ Docker · Process · WSL2 │ │
│ └─────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
Agent Config Format
Cross-platform, provider-agnostic. Compatible with Forge's AgentConfig schema.
# ~/.openclaw/agents/agent1/agent.yaml
name: agent1
provider: claude
working_directory: ~/projects/my-app
shell: bash
runtime: docker # docker | process | wsl
environment:
NODE_ENV: development
GITHUB_TOKEN: "${secrets:services/dev/gh-token}"
provider_flags:
- "--model"
- "claude-opus-4-5"
mcp_servers_file: .mcp.json
auto_start: false
restart_on_crash: true
Runtime Adapters
| Runtime |
Platform |
Use case |
docker |
All |
Full isolation, multi-agent swarms |
process |
All |
Lightweight, single-user dev |
wsl |
Windows |
WSL2 distro, Linux tools on Windows |
Forge Integration
The Forge becomes the primary GUI for OpenClaw. Both share the same SQLite agent config store.
Launch flow:
- User clicks "Launch" in Forge
- Forge calls:
openclaw launch agent1
- OpenClaw resolves secrets, writes
CLAUDE.md + .mcp.json
- OpenClaw starts container/process with
AGENTMUX_AGENT_ID=agent1
- Creates terminal block in AgentMux pointing to the process
- Agent auto-registers with JektRouter — immediately available as jekt target
Config compatibility:
| Forge field |
OpenClaw YAML |
name |
name |
provider_id |
provider |
working_directory |
working_directory |
env_vars |
environment |
provider_flags |
provider_flags |
auto_start |
auto_start |
Import: POST /api/forge/import { source: "openclaw", agent: "agent1" }
Export: GET /api/forge/agents/:id/export?format=openclaw
Jekt Integration
OpenClaw agents auto-register with AgentMux's JektRouter via shell integration script (sourced from .bashrc/.profile):
# Auto-register with local AgentMux on startup
curl -s -X POST http://localhost:${AGENTMUX_PORT}/wave/reactive/register \
-H "Content-Type: application/json" \
-d "{\"agent_id\": \"$AGENTMUX_AGENT_ID\", \"block_id\": \"$AGENTMUX_BLOCK_ID\"}"
Any process/container with AGENTMUX_AGENT_ID set — whether launched by OpenClaw, Claw, or manually — registers automatically. AgentBus MCP becomes optional, built-in jekt handles local delivery.
Secrets Backends
OpenClaw resolves ${secrets:path} at launch time:
- AWS Secrets Manager (team/cloud setups)
- 1Password CLI (
${secrets:op://vault/item/field})
- OS Keychain / Credential Manager (local desktop)
- Plain env var (
${env:MY_TOKEN})
.openclaw/secrets.json (local encrypted, dev only)
CLI
openclaw init # Initialize config dir
openclaw agent create agent1 # Create new agent
openclaw agent list # List all agents + status
openclaw launch agent1 # Start in AgentMux
openclaw stop agent1 # Stop agent
openclaw jekt agent1 "review PR #42" # Inject message
openclaw status # All agent states
openclaw watch # Lifecycle daemon
openclaw swarm launch swarm.json # Launch a swarm
Docker Base Image
openclaw/agent-base (published to GHCR):
- Claude Code CLI pre-installed (version-pinned)
- Shell integration (jekt auto-registration, OSC sequences for AgentMux pane titles)
wsh binary for AgentMux shell integration
ENV PROVIDER=claude AGENT_NAME=agent1
Migration from Claw
| Claw |
OpenClaw |
claw agent1 |
openclaw launch agent1 |
claw deploy |
openclaw deploy |
| Container workspaces |
~/.openclaw/workspaces/ |
| AgentBus MCP |
Built-in jekt (AgentBus still works as fallback) |
| PowerShell modules |
Cross-platform YAML + CLI |
CLAUDE.md per workspace |
Forge-managed AgentMD + Soul |
Claw and OpenClaw coexist during migration. Both write AGENTMUX_AGENT_ID — JektRouter handles both.
Community Templates
Pre-built agent.yaml configs for common roles:
frontend-developer — React/TypeScript, Claude, relevant MCP servers
backend-developer — API work, database tools
code-reviewer — Read-only access, GitHub MCP, review-focused soul
devops — Infrastructure tools, deployment commands
orchestrator — Planner/coordinator role, full permissions
Governance
- License: Apache 2.0
- Repo:
agentmuxai/openclaw (new repo)
- Config schema: Versioned JSON Schema, published alongside releases
- Community templates:
agentmuxai/openclaw-templates
Implementation Phases
- Config schema + Forge import/export
- CLI scaffold (TypeScript or Rust)
- Process runtime (local, no Docker)
- Docker runtime
- Jekt shell integration script + base image
- Secrets backends (AWS SM + env var first)
openclaw watch lifecycle daemon
- Community templates
Acceptance Criteria
Overview
OpenClaw is the open-source, publicly distributable version of the Claw agent deployment system, with AgentMux as its native GUI layer. Where Claw is a private PowerShell-based tool for managing Docker containers, OpenClaw is a cross-platform, configuration-driven platform that anyone can use.
AgentMux is the natural GUI frontend. OpenClaw handles container/process management. Together they form a complete agent orchestration platform without proprietary infrastructure.
Problem
Today's workflow requires:
These work together but can't be shared publicly. OpenClaw packages the deployment layer as a public, cross-platform tool integrated natively with AgentMux.
Architecture
Agent Config Format
Cross-platform, provider-agnostic. Compatible with Forge's
AgentConfigschema.Runtime Adapters
dockerprocesswslForge Integration
The Forge becomes the primary GUI for OpenClaw. Both share the same SQLite agent config store.
Launch flow:
openclaw launch agent1CLAUDE.md+.mcp.jsonAGENTMUX_AGENT_ID=agent1Config compatibility:
namenameprovider_idproviderworking_directoryworking_directoryenv_varsenvironmentprovider_flagsprovider_flagsauto_startauto_startImport:
POST /api/forge/import { source: "openclaw", agent: "agent1" }Export:
GET /api/forge/agents/:id/export?format=openclawJekt Integration
OpenClaw agents auto-register with AgentMux's JektRouter via shell integration script (sourced from
.bashrc/.profile):Any process/container with
AGENTMUX_AGENT_IDset — whether launched by OpenClaw, Claw, or manually — registers automatically. AgentBus MCP becomes optional, built-in jekt handles local delivery.Secrets Backends
OpenClaw resolves
${secrets:path}at launch time:${secrets:op://vault/item/field})${env:MY_TOKEN}).openclaw/secrets.json(local encrypted, dev only)CLI
Docker Base Image
openclaw/agent-base(published to GHCR):wshbinary for AgentMux shell integrationENV PROVIDER=claude AGENT_NAME=agent1Migration from Claw
claw agent1openclaw launch agent1claw deployopenclaw deploy~/.openclaw/workspaces/CLAUDE.mdper workspaceClaw and OpenClaw coexist during migration. Both write
AGENTMUX_AGENT_ID— JektRouter handles both.Community Templates
Pre-built
agent.yamlconfigs for common roles:frontend-developer— React/TypeScript, Claude, relevant MCP serversbackend-developer— API work, database toolscode-reviewer— Read-only access, GitHub MCP, review-focused souldevops— Infrastructure tools, deployment commandsorchestrator— Planner/coordinator role, full permissionsGovernance
agentmuxai/openclaw(new repo)agentmuxai/openclaw-templatesImplementation Phases
openclaw watchlifecycle daemonAcceptance Criteria
openclaw init && openclaw agent create agent1 --provider claudeworks on Linux, macOS, Windowsopenclaw launch agent1starts Claude in an AgentMux terminal paneopenclaw jekt agent1 "hello"delivers immediatelyopenclaw statusshows per-agent JSONL-derived stateagent.yamlAGENTMUX_AGENT_ID, shell integration active${secrets:services/dev/gh-token}resolves from AWS Secrets Manager at launchopenclaw/agent-baseDocker image available on GHCR with Claude CLI + wsh + shell integration