> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clawup.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# init

> Generate a clawup.yaml scaffold for your agent deployment

Generates a `clawup.yaml` manifest and `.env.example` in the current directory. Completely non-interactive — edit the YAML by hand to configure your deployment.

## Usage

```bash theme={null}
clawup init
```

## Two Modes

### Fresh Init (no `clawup.yaml`)

Discovers local identity directories (subdirectories containing `identity.yaml`) and scaffolds a manifest with sensible defaults. If you don't have identities yet, create one first with [`army-create`](https://github.com/stepandel/army-create) (`npx army-create`).

Defaults:

* **Provider**: AWS
* **Region**: us-east-1
* **Instance type**: t3.medium
* **Agents**: discovered from local identity directories

The generated `clawup.yaml` includes `${env:VAR}` secret references, inline plugin config from identities, and per-agent secrets. Edit the values directly in the YAML file to match your setup.

### Repair Mode (existing `clawup.yaml`)

When `clawup.yaml` already exists, init enters **repair mode** — a non-interactive refresh that:

1. Re-fetches all agent identities (picks up upstream changes)
2. Updates the secrets section with any new plugins, deps, or `requiredSecrets`
3. Refreshes inline plugin config with latest `pluginDefaults` from identities
4. Warns about any missing template variables
5. Regenerates `.env.example` to reflect current requirements

Existing manifest values (stack name, provider, region, agents, etc.) are preserved. This is useful after updating an identity repo or adding new plugins to an identity.

## Examples

```bash theme={null}
# First-time setup — generates scaffold
clawup init

# Refresh after identity changes
clawup init
```

## Output

Creates (or updates) in your project directory:

* `clawup.yaml` — deployment manifest with `${env:VAR}` secret references
* `.env.example` — all required env var names with empty values

The `.clawup/` directory and `.env` are added to `.gitignore` automatically.

## Next Steps

After `init` completes:

1. Edit `clawup.yaml` — set your provider, region, owner info, and agents
2. Copy `.env.example` to `.env` and fill in your secrets
3. Run [`clawup deploy`](/cli/deploy) to validate secrets, configure Pulumi, and deploy your agents

See [Environment Variables](/configuration/environment) for full details on the `${env:VAR}` reference system.
