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 configpreset.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
| File | What it controls |
|---|---|
SOUL.md | Agent personality, communication style, boundaries |
AGENTS.md | Operating instructions, session startup, safety rules |
TOOLS.md | Tool 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-agentClawRun 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:
- Create a package implementing the
Agentinterface from@clawrun/agent - Self-register it with the agent registry
- Reference it by name in your preset's
agentfield
{
"agent": "my-agent"
}See the Providers page for how to use a different sandbox provider.