Skip to content

NazmulGit/ClawControl

Repository files navigation

ClawControl

Self-hosted mission control for OpenClaw — agent ops, company-structure governance (goals · org chart · heartbeats · budgets), and infra tooling (Doctor · backups · updates) in one portable dashboard.

┌────────────────────────────────────────────────────────┐
│  UI :3000   ◄── REST + WebSocket ──►   Server :3001    │
│  (React + Vite + Tailwind)             (Express + ws + │
│                                         SQLite WAL)    │
│                                              │         │
│                          process-manager · WS gateway  │
│                                              ▼         │
│                                         OpenClaw :3002 │
└────────────────────────────────────────────────────────┘

Quickstart

One-shot install (Linux / macOS / WSL)

curl -fsSL https://example.com/install.sh | bash

The installer detects your OS, makes sure you're on Node 20+, runs npm install -g clawcontrol, then launches the wizard.

npm

npm install -g clawcontrol
clawcontrol start          # wizard on first run, then opens http://localhost:3000

Fresh installs land on an empty dashboard. To explore every screen with sample data, opt in to the Nova SaaS Co demo:

clawcontrol demo           # load 7 agents, 15-node goal tree, 10 tasks, etc.
# or: Settings → Demo dataset → Load demo data
clawcontrol demo --clear   # remove the demo (your own data is preserved)

Docker

docker compose up -d                                  # just clawcontrol
docker compose --profile ollama up -d                 # + local Ollama
docker compose --profile ollama --profile openclaw up -d   # the works

From source

pnpm install
pnpm start                  # server :3001 + UI :3000 in parallel

CLI

clawcontrol start            First run launches the wizard, then starts the
                             server and opens the UI in your default browser
clawcontrol stop             SIGTERM (force-kill after 8s)
clawcontrol status           Running pid + /api/health
clawcontrol backup           Trigger a manual backup
clawcontrol doctor           Run all health checks; non-zero on any FAIL
clawcontrol update           Check + install updates
clawcontrol reset            Reset config (keep DB/secrets/backups)
clawcontrol reset --hard     Delete everything in ~/.clawcontrol/
clawcontrol export <path>    tar.gz the entire ~/.clawcontrol/
clawcontrol import <path>    Restore from a previous export
clawcontrol logs             Tail server logs
clawcontrol --help

What's inside

Layer Highlights
Layer A · Agent operations Agent roster with live status · 3-step create wizard · Mission Board (Kanban) with approvals · Skills · MMR memory · Channels (Telegram / Discord / Slack / email / webhook) · multi-provider models (Anthropic, OpenAI, Gemini, OpenRouter, Ollama, Codex CLI)
Layer B · Paperclip company structure 4-level Goal hierarchy (Mission → Project → Agent goal → Task) · visual Org chart with budget bars · Heartbeats (cron-scheduled agent runs) · Budgets with hard-stop at 100%
Layer C · Infrastructure Doctor — runs in-process separately from OpenClaw and works when OpenClaw is dead · automatic + manual backups (encryption optional) · one-click updates with pre-update backup · audit log · org isolation
Layer D · System shell Dark theme · Cmd+K palette · Cmd+D Doctor · Cmd+B backup · WebSocket-driven (no polling) · responsive (sidebar collapses to bottom tab bar) · npx clawcontrol deployment

How it compares to Paperclip

ClawControl Paperclip
Self-hosted ✓ Single binary, single SQLite file Cloud-only
Multi-provider models ✓ 6 adapters in one file each Single provider
Doctor that runs when the runtime is dead ✓ Separate process; never touches OpenClaw's API
Hard-stop budgets per agent ✓ Auto-pauses at 100%, broadcast over WS
Goal hierarchy (4-level) ✓ Mission → Project → Agent goal → Task
Org chart with budget bars
Heartbeats (cron) ✓ Survives reconnects via offline queue
Encrypted local key vault ✓ AES-256-GCM, machine-specific master key API-managed
One-click backup + restore ✓ tar.gz + WAL checkpoint + retention
Open source MIT proprietary

Configuration

The server reads ~/.clawcontrol/config.json. The wizard creates it on first run; manual edits work too:

{
  "port": 3001,
  "host": "127.0.0.1",
  "authToken": null,                                 // bearer token; null = open mode
  "authPasswordHash": null,                          // argon2id hash of admin password
  "dbPath": "/home/you/.clawcontrol/clawcontrol.db",
  "openclaw": { "gatewayUrl": "ws://localhost:3002" },
  "backup": {
    "schedule": "0 2 * * *",                         // node-cron expression
    "retention_days": 30,
    "encryption_enabled": false,
    "s3_bucket": null
  },
  "updates": {
    "auto_check": true,
    "auto_install": false,
    "repo_url": "https://api.github.com/repos/clawcontrol/clawcontrol/releases/latest"
  }
}

Layout

clawcontrol/
├── packages/
│   ├── ui/                 React + Vite + TypeScript + Tailwind (port 3000)
│   └── server/             Node + Express + TypeScript + ws (port 3001)
├── bin/
│   └── clawcontrol.js      CLI entry point for npx (Phase 9 fills this in)
├── design/                 Original Mission Control design bundle (reference)
├── install.sh              Curl-installable bootstrap (scaffold)
├── Dockerfile
├── docker-compose.yml
├── package.json            Workspace root
└── pnpm-workspace.yaml

Requirements

  • Node.js >= 20
  • pnpm >= 9

Quickstart

pnpm install
pnpm start          # runs server :3001 + UI :3000 in parallel

Then open http://localhost:3000 — the UI proxies /api/* and /ws to the server on port 3001. A health probe lives at http://localhost:3001/api/health.

Build

pnpm build          # esbuild bundles the server into dist/, vite builds the UI

Workspace scripts

Script What it does
pnpm start Runs both packages' dev scripts in parallel
pnpm build Builds server (esbuild) and UI (vite)
pnpm ui:dev Run only the UI dev server
pnpm ui:build Build only the UI
pnpm server:dev Run only the server (tsx watch)
pnpm server:build Bundle only the server

Configuration

The server reads ~/.clawcontrol/config.json on startup. If the file does not exist it is created with sensible defaults:

{
  "port": 3001,
  "host": "127.0.0.1",
  "authToken": null,
  "openclaw": { "gatewayUrl": "ws://localhost:3002" }
}

Roadmap

See PROJECT_BRIEF.md for the full 10-phase roadmap. The original UI prototype that drives the design lives under design/ and was generated by Claude Design — see its README for handoff context.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors