Custom Presets

Create your own preset with a different agent or provider.

Creating a preset

To create a custom preset, add a directory under presets/ with a preset.json and any workspace .md files:

presets/my-preset/
├── preset.json
├── SOUL.md          # optional, overrides the agent personality
├── AGENTS.md        # optional, overrides operating instructions
└── vercel.json      # optional, Vercel deployment config

preset.json

{
  "id": "my-preset",
  "name": "My Custom Preset",
  "agent": "zeroclaw",
  "provider": "vercel",
  "description": "A customized agent setup"
}

Customizing workspace files

Any .md file in your preset directory overrides the matching base template from @clawrun/agent. For example, adding a SOUL.md replaces the default agent personality.

See workspace file resolution for the full merge order.

Common files to override

FileWhat it controls
SOUL.mdAgent personality, communication style, boundaries
AGENTS.mdOperating instructions, session startup, safety rules
TOOLS.mdTool reference and local notes

User overrides at deploy time

You don't need a full preset to customize your agent. Pass any folder to clawrun deploy and include only the .md files you want to change:

my-agent/
├── SOUL.md    # your custom personality
└── TOOLS.md   # your SSH hosts, API endpoints, etc.
clawrun deploy ./my-agent

ClawRun merges your files with the defaults. Your SOUL.md and TOOLS.md take priority, while AGENTS.md, BOOTSTRAP.md, IDENTITY.md, and the rest are filled in from the starter preset and base templates. Unrelated .md files in the folder are ignored.

Using a custom agent

To use a different agent implementation:

  1. Create a package implementing the Agent interface from @clawrun/agent
  2. Self-register it with the agent registry
  3. Reference it by name in your preset's agent field
{
  "agent": "my-agent"
}

See the Providers page for how to use a different sandbox provider.