Skip to main content
Validates your .env secrets, configures the Pulumi stack, and provisions infrastructure for your agent team — all in a single command.

Usage

clawup deploy [options]

Options

OptionDescription
-y, --yesSkip confirmation prompt
--localDeploy to local Docker containers instead of cloud
--env-file <path>Path to .env file (defaults to .env in project root)
--skip-hooksSkip plugin lifecycle hook execution

What It Does

  1. Validates secrets — Loads .env, resolves ${env:VAR} references, validates formats, and reports any missing secrets
  2. Fetches identities — Resolves agent identities from Git repos or local paths
  3. Auto-resolves secrets — Fetches Linear user UUIDs and other auto-resolvable values
  4. Configures Pulumi — Creates/selects the stack and sets all config values
  5. Provisions infrastructure — Runs pulumi up to create servers, volumes, networking, and security groups
  6. Bootstraps agents — Installs OpenClaw, tools, and configured integrations on each agent
  7. Connects to Tailscale — Joins agents to your Tailscale network
In previous versions, steps 1-4 were handled by a separate clawup setup command. As of v2.6.0, deploy handles everything automatically.

Local Docker Mode

Use --local to run agents in local Docker containers for testing:
clawup deploy --local
This creates a separate Pulumi stack (<stackName>-local), copies config from your cloud stack (skipping Tailscale keys), and runs agents locally. No cloud resources are created.

Examples

# Deploy with confirmation
clawup deploy

# Deploy without confirmation
clawup deploy --yes

# Deploy with custom .env location
clawup deploy --env-file /path/to/.env

# Deploy to local Docker containers
clawup deploy --local --yes
First deployment takes 3-5 minutes. Subsequent deployments are incremental — only changes are applied.
Deployment creates cloud resources that incur costs. Review your config and cost estimates before deploying.