identity.yaml manifest and workspace files — everything an agent needs to operate: personality, skills, model preferences, plugin configuration, and dependencies.
For a complete field-by-field reference, see Identity Manifest Reference. For a step-by-step creation guide, see Creating Identities.
Identity Structure
repo#subfolder syntax), or a local directory.
identity.yaml Reference
The identity manifest declares the agent’s configuration defaults.
Required Fields
Optional Fields
Full Example
Registries
Identity fields likecodingAgent, deps, and plugins reference entries from built-in registries. Each registry maps a name to install scripts and configuration.
Coding Agent Registry
ThecodingAgent field selects which coding CLI is installed and configured on the agent’s cloud instance.
Each entry provides an install script, model configuration script, and OpenClaw
cliBackends config. New coding agents can be added by extending the registry in packages/core/src/coding-agent-registry.ts.
Dep Registry
System-level tools installed on agents. Declared via thedeps field.
New deps can be added in
packages/core/src/dep-registry.ts.
Plugin Registry
OpenClaw plugins configured per-agent. Declared via theplugins field.
Plugin metadata is defined in
packages/core/src/plugin-registry.ts. Plugin configuration defaults can be set in pluginDefaults in the identity manifest, and overridden per-deployment in the agent’s plugins field in the manifest.
Workspace Files
Workspace files are injected into~/.openclaw/workspace/ on the agent’s cloud instance. They define everything about how the agent behaves.
Identity-Specific Files
Shared Files
These files follow the same conventions across identities:Skills
Skills are reusable workflows bundled with an identity. Each skill lives inskills/<skill-name>/SKILL.md.
SKILL.md Format
Every skill file has YAML frontmatter followed by markdown instructions:Frontmatter Fields
Private vs Public Skills
- Private skills — directory name in the
skills/folder, bundled with the identity - Public skills — prefixed with
clawhub:, fetched from the ClawHub public registry at deploy time
Template Variables
Workspace files support{{VARIABLE}} substitution. Variables declared in templateVars are populated from values collected during clawup init.
You can define custom variables beyond these — any name listed in
templateVars will be prompted during clawup init and substituted at deploy time.
Example Identities
Clawup discovers identities from local directories (subdirectories containingidentity.yaml) or Git repos. The easiest way to create a new identity is with army-create — run npx army-create to scaffold all required files interactively. You can also start from the example identity or the multi-agent example for a complete 3-agent fleet with cross-agent ticket workflows.
Example Skills
How Agents Coordinate
The built-in identities coordinate asynchronously through Linear and GitHub. Work is driven by the openclaw-linear plugin, which watches for ticket state changes via webhooks and routes tickets into per-agent queues.Linear Plugin Queue System
ThepluginDefaults for openclaw-linear in each identity define routing rules — which ticket states add or remove tickets from the agent’s queue:
When a ticket enters an agent’s queue, the plugin triggers that agent’s queue handler skill automatically.
Heartbeat
The heartbeat fires every minute and executes the agent’sHEARTBEAT.md checklist. For most agents this is minimal — just a bootstrap check. The primary work trigger is the Linear plugin queue.
The tester identity has a more active heartbeat that also handles PR review comment resolution (scanning open PRs for unresolved comments and applying fixes).
Using Identities
Git Repository
Local Directory
Monorepo Layout
Multiple identities can share a single Git repo, each in a subdirectory:https://github.com/org/my-identities#researcher, #analyst, etc.
Identities are cached locally at ~/.clawup/identity-cache/ and re-fetched on each deploy.
Customization
Override Plugins and Deps
The manifest can override an identity’s default plugins and deps per-agent:Override Volume and Instance Type
Create a New Identity
To create an agent with a completely custom role, usearmy-create to scaffold a new identity:
identity.yaml, workspace files, and skill stubs. See the Creating Identities guide for a full walkthrough, or start from the example identity or the multi-agent example.