Clawup

The secure golden path for deploying OpenClaw agent swarms — identity-driven, infrastructure-as-code, zero public ports.

$npm install -g clawup

Infrastructure via Pulumi · Secure networking via Tailscale

Quick start

Terminal
$ npm install -g clawup
$ clawup init # generate config scaffold
$ clawup deploy # provisions agents to your cloud

Example agents

AgentRoleHeartbeat
📋 JunoPMQueue-driven: preps tickets
⚙️ TitusEngineerQueue-driven: implements tickets
🔍 ScoutQAPolling: reviews PRs

Get started quickly with pre-built agent identities:

$npx army-create <project-name>

Config example

clawup init generates a manifest that defines your stack and agents.

clawup.yaml
stackName: my-team
provider: hetzner
region: nbg1
instanceType: cpx31
ownerName: Jordan
timezone: America/New_York
workingHours: "09:00-17:00"
 
agents:
- name: agent-pm
displayName: Juno
role: pm
identity: "github.com/myorg/identities#pm"
volumeSize: 30
- name: agent-eng
displayName: Titus
role: eng
identity: "github.com/myorg/identities#eng"
volumeSize: 50

Build your own agent

identity.yaml
name: ops-monitor
displayName: Sentinel
role: infrastructure-monitor
emoji: satellite
description: Infrastructure monitoring and incident response
volumeSize: 20
model: anthropic/claude-sonnet-4-5
 
deps:
- brave-search
 
plugins:
- slack
 
skills:
- healthcheck
- incident-response
 
templateVars:
- OWNER_NAME
- ESCALATION_CHANNEL

Each agent gets workspace files — version-controlled markdown that defines who the agent is and how it behaves:

SOUL.md— Personality, values, behavioral guidelines
IDENTITY.md— Name, role, emoji, display metadata
HEARTBEAT.md— Recurring checks and autonomous task loops
TOOLS.md— Tool permissions and usage patterns