Skip to content

feat: OpenClaw — Open-Source Agent Deployment Platform #102

@agentx-workflow

Description

@agentx-workflow

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:

  1. Claw — private, Windows-only, PowerShell-based container orchestration
  2. AgentMux — GUI terminal multiplexer
  3. 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:

  1. User clicks "Launch" in Forge
  2. Forge calls: openclaw launch agent1
  3. OpenClaw resolves secrets, writes CLAUDE.md + .mcp.json
  4. OpenClaw starts container/process with AGENTMUX_AGENT_ID=agent1
  5. Creates terminal block in AgentMux pointing to the process
  6. 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

  1. Config schema + Forge import/export
  2. CLI scaffold (TypeScript or Rust)
  3. Process runtime (local, no Docker)
  4. Docker runtime
  5. Jekt shell integration script + base image
  6. Secrets backends (AWS SM + env var first)
  7. openclaw watch lifecycle daemon
  8. Community templates

Acceptance Criteria

  • openclaw init && openclaw agent create agent1 --provider claude works on Linux, macOS, Windows
  • openclaw launch agent1 starts Claude in an AgentMux terminal pane
  • Agent auto-registers with JektRouter — openclaw jekt agent1 "hello" delivers immediately
  • openclaw status shows per-agent JSONL-derived state
  • Forge imports OpenClaw config and exports back to agent.yaml
  • Docker runtime: container starts with correct AGENTMUX_AGENT_ID, shell integration active
  • ${secrets:services/dev/gh-token} resolves from AWS Secrets Manager at launch
  • openclaw/agent-base Docker image available on GHCR with Claude CLI + wsh + shell integration

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions