Skip to main content
The 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 stored in ~/.clawup/configs/<stack>/.

Schema

interface ClawupManifest {
  stackName: string;           // Unique deployment name
  provider: "aws" | "hetzner"; // Cloud provider
  region: string;              // Deployment region/location
  instanceType: string;        // Default server size
  ownerName: string;           // Your name
  timezone?: string;           // e.g., "America/New_York"
  workingHours?: string;       // e.g., "9am-6pm"
  userNotes?: string;          // Additional context for agents
  linearTeam?: string;         // Linear team identifier
  githubRepo?: string;         // GitHub repo URL
  agents: AgentDefinition[];   // Agent configurations
}

Example

stackName: prod
provider: hetzner
region: fsn1
instanceType: cx32
ownerName: Jane Doe
timezone: America/New_York
workingHours: 9am-6pm
githubRepo: https://github.com/myorg/myrepo
linearTeam: ENG
agents:
  - name: agent-pm
    displayName: Juno
    role: pm
    identity: "https://github.com/stepandel/army-identities#pm"
    volumeSize: 30
    plugins:
      - openclaw-linear
      - slack
    deps:
      - gh
      - brave-search
  - name: agent-eng
    displayName: Titus
    role: eng
    identity: "https://github.com/stepandel/army-identities#eng"
    volumeSize: 50
  - name: agent-researcher
    displayName: Atlas
    role: researcher
    identity: "./my-identities/researcher"
    volumeSize: 20

Fields

Stack Configuration

FieldTypeRequiredDescription
stackNamestringYesUnique name for the Pulumi stack
provider"aws" | "hetzner"YesCloud provider
regionstringYesProvider-specific region/location
instanceTypestringYesDefault server type

Owner Configuration

FieldTypeRequiredDescription
ownerNamestringYesYour name (used in agent USER.md)
timezonestringTimezone for scheduling
workingHoursstringYour availability window
userNotesstringExtra context for agents

Integration Configuration

FieldTypeRequiredDescription
linearTeamstringLinear team key — agents pull tickets from this team
githubRepostringGitHub repo — agents open PRs and review code here

Agent Configuration

Each entry in the agents array defines a single agent:
FieldTypeRequiredDescription
namestringYesResource name (e.g., agent-pm, agent-researcher)
displayNamestringYesHuman-readable name (e.g., Juno, Atlas)
rolestringYesRole identifier (e.g., pm, eng, researcher)
identitystringGit URL or local path to an identity directory. Supports repo#subfolder syntax for mono-repos. Mutually exclusive with preset.
identityVersionstringPin the identity to a specific Git tag or commit hash. Requires identity to be set.
presetstring | nullLegacy built-in preset name (pm, eng, tester). Use identity instead for new deployments. Mutually exclusive with identity.
volumeSizenumberYesPersistent storage in GB
instanceTypestringOverride the default server size for this agent
pluginsstring[]Plugin names to install (e.g., ["openclaw-linear", "slack"]). Overrides identity defaults when specified.
depsstring[]Dependency names to install (e.g., ["gh", "brave-search"]). Overrides identity defaults when specified.
envVarsobjectAdditional environment variables
soulContentstringDeprecated. Custom SOUL.md content. Use an identity repo instead.
identityContentstringDeprecated. Custom IDENTITY.md content. Use an identity repo instead.
An agent must specify exactly one of identity, preset, or soulContent. The identity field is the recommended approach — it points 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 specify plugins or deps, the manifest values take precedence. This lets you override identity defaults per-deployment.
ConcernDefined In
Cloud provider, region, instance typeManifest
Volume sizeManifest
Personality, skills, heartbeatIdentity (identity.yaml + workspace files)
Model, backup model, coding agentIdentity (identity.yaml)
Plugins, deps (defaults)Identity (identity.yaml)
Plugins, deps (overrides)Manifest (per-agent)
Template variable valuesManifest (owner fields)