Skip to main content
Clawup uses an identity system to define agent behavior. Each identity is a self-contained directory with an 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

Identities can live in a Git repo, a monorepo subdirectory (using 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 like codingAgent, deps, and plugins reference entries from built-in registries. Each registry maps a name to install scripts and configuration.

Coding Agent Registry

The codingAgent 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 the deps field. New deps can be added in packages/core/src/dep-registry.ts.

Plugin Registry

OpenClaw plugins configured per-agent. Declared via the plugins 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 in skills/<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 containing identity.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

The pluginDefaults 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’s HEARTBEAT.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:
Reference each with 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, use army-create to scaffold a new identity:
This interactively generates all required files — 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.
The key files to customize are SOUL.md (personality), HEARTBEAT.md (periodic tasks), and any skills you want to bundle.