clawup.yaml manifest defines your entire deployment — which agents to deploy, where to run them, and how to connect integrations. It’s generated by clawup init and lives at the root of your project directory.
Schema
Example
Fields
Stack Configuration
| Field | Type | Required | Description |
|---|---|---|---|
stackName | string | Yes | Unique name for the Pulumi stack |
provider | "aws" | "hetzner" | Yes | Cloud provider |
region | string | Yes | Provider-specific region/location |
instanceType | string | Yes | Default server type |
Owner Configuration
| Field | Type | Required | Description |
|---|---|---|---|
ownerName | string | Yes | Your name (used in agent USER.md) |
timezone | string | Timezone for scheduling | |
workingHours | string | Your availability window | |
userNotes | string | Extra context for agents |
Model Configuration
| Field | Type | Required | Description |
|---|---|---|---|
modelProvider | string | Model provider key (e.g., anthropic, openai, google, openrouter). Set automatically during clawup deploy. | |
defaultModel | string | Default model for all agents (e.g., anthropic/claude-opus-4-6). Can be overridden per-identity. |
Template Variables
| Field | Type | Required | Description |
|---|---|---|---|
templateVars | Record<string, string> | Generic template variable values (e.g., LINEAR_TEAM, GITHUB_REPO). Substituted into workspace files at deploy time. |
Organization
| Field | Type | Required | Description |
|---|---|---|---|
organization | string | Pulumi organization name. When set, stack operations use org/stackName. |
Secrets
| Field | Type | Required | Description |
|---|---|---|---|
secrets | object | Global secret references using ${env:VAR_NAME} syntax. Auto-generated by clawup init. See Environment Variables. |
Hooks
| Field | Type | Required | Description |
|---|---|---|---|
hooks | Hooks | Swarm-level lifecycle hooks that run for all agents during deployment. |
| Hook | When | Description |
|---|---|---|
resolve | During clawup deploy | Auto-resolve environment variables via shell scripts |
onboard | During clawup onboard | Interactive first-time setup |
postProvision | During cloud-init | Server setup after base provisioning |
preStart | During cloud-init | Final config before gateway starts |
Agent Configuration
Each entry in theagents array defines a single agent:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Resource name (e.g., agent-pm, agent-researcher) |
displayName | string | Yes | Human-readable name (e.g., Juno, Atlas) |
role | string | Yes | Role identifier (e.g., pm, eng, researcher) |
identity | string | Yes | Git URL or local path to an identity directory. Supports repo#subfolder syntax for mono-repos. |
identityVersion | string | Pin the identity to a specific Git tag or commit hash. Requires identity to be set. | |
volumeSize | number | Yes | Persistent storage in GB |
instanceType | string | Override the default server size for this agent | |
plugins | Record<string, Record<string, unknown>> | Inline plugin configuration (e.g., openclaw-linear: { agentId: agent-pm }). Overrides identity defaults when specified. | |
secrets | object | Per-agent secret references using ${env:VAR_NAME} syntax. Auto-generated based on plugins, deps, and identity requiredSecrets. | |
envVars | object | Additional environment variables |
Every agent must specify an
identity — a Git URL or local path to a self-contained identity directory with all workspace files, skills, and configuration. See Identities for details.Identity vs Manifest
The manifest defines deployment concerns — where agents run, how much storage they get, which stack they belong to. The identity defines agent concerns — personality, skills, model preferences, default plugins and deps. When both the manifest and the identity specifyplugins or deps, the manifest values take precedence. This lets you override identity defaults per-deployment.
| Concern | Defined In |
|---|---|
| Cloud provider, region, instance type | Manifest |
| Volume size | Manifest |
| Personality, skills, heartbeat | Identity (identity.yaml + workspace files) |
| Model, backup model, coding agent | Identity (identity.yaml) |
| Plugins, deps (defaults) | Identity (identity.yaml) |
| Plugins, deps (overrides) | Manifest (per-agent) |
| Template variable values | Manifest (owner fields) |