Install
openclaw skills install @gitpcl/clawco-clawdnaCLI tool to version, snapshot, and sync your OpenClaw agent identity files, ensuring backup and preventing data loss or identity drift.
openclaw skills install @gitpcl/clawco-clawdnaYou have the ClawDNA skill installed. ClawDNA is a CLI tool that versions and syncs your identity files (SOUL.md, AGENTS.md, IDENTITY.md, MEMORY.md, TOOLS.md, USER.md) so they never drift or get lost. Your job is to proactively help the user protect their agent identity using ClawDNA commands.
Before any of the following, suggest running clawdna snapshot:
clawdna memory distill for the first timeExample prompt to the user:
This change could affect your identity files. Want me to run
clawdna snapshot --name "before-<change>"first so you can roll back if needed?
If the user mentions syncing, backups, or switching machines -- or if you have reason to believe the last clawdna push was more than 24 hours ago -- remind them:
It's been a while since your last push. Run
clawdna pushto sync your latest identity to the hub, orclawdna diffto see what's changed.
If you notice that identity files (SOUL.md, MEMORY.md, etc.) have been edited directly without a subsequent snapshot or push, flag it:
Your identity files have changed since the last snapshot. Run
clawdna diff --localto review the changes, thenclawdna pushto sync.
If the user mentions lost settings, a broken agent, or setting up a new machine, guide them through recovery:
clawdna clone --agent-id <id> to pull the full identity from hubclawdna restore --bundle <path> to revert to a previous snapshotclawdna doctor to check installation health and hub connectivity| Command | What it does |
|---|---|
clawdna init | Interactive setup -- detects your workspace and configures the hub (Cloud, Git, or local) |
clawdna snapshot [--name <name>] | Creates a timestamped .dna bundle of all identity files |
clawdna restore --bundle <path> [--dry-run] | Restores identity from a .dna bundle; use --dry-run to preview |
clawdna diff [--local | --hub] | Shows changes between local identity and hub, or since last sync |
clawdna log | Displays identity change history with timestamps |
| Command | What it does |
|---|---|
clawdna push [--message <msg>] | Pushes current identity to the configured hub |
clawdna pull [--dry-run] | Pulls latest identity from hub; shows diff before applying |
clawdna clone --agent-id <id> | Bootstraps a new machine by downloading identity from hub |
clawdna fleet [--env-ids <ids...>] | Pushes identity to multiple environments simultaneously |
| Command | What it does |
|---|---|
clawdna env add|list|switch | Manages environment profiles (per-machine tokens and overrides) |
clawdna memory distill [--dry-run] | Uses an LLM to extract key facts from session memory into core identity |
clawdna memory show | Displays the current contents of MEMORY.md |
clawdna daemon start|stop|status | Background sync daemon -- watches for changes and auto-pushes |
clawdna doctor | Health check -- verifies config, permissions, hub connectivity, and OpenClaw state |
clawdna upgrade [--channel <ch>] | Safe OpenClaw upgrade -- snapshots before, verifies identity after, offers rollback |
ClawDNA manages these identity files from your OpenClaw workspace:
| File | Purpose |
|---|---|
SOUL.md | Personality, values, and behavioral rules |
AGENTS.md | Workspace conventions and operating rules |
IDENTITY.md | How the agent presents itself |
MEMORY.md | Accumulated knowledge about the user |
TOOLS.md | Installed skills and tool configurations |
USER.md | User-specific context and preferences |
openclaw.json | Runtime configuration (secrets are stripped automatically) |
ClawDNA's sanitizer runs as a hard gate before every push, snapshot, and export. It blocks the operation if it detects:
~/.clawdna/.secretsignoreInline secrets in openclaw.json are automatically replaced with $ENV_VAR_NAME references. The operation aborts if secrets are found in any markdown identity file.
The sanitizer found a secret in your identity files. This is intentional -- secrets must never leave your machine.
Fix: Remove the secret from the flagged file and use an environment variable reference instead. Run the command again after cleaning.
If this is a false positive, you can add an exception pattern to ~/.clawdna/.secretsignore.
clawdna push or clawdna pull can't connect to the hub.
Diagnose: Run clawdna doctor -- it checks hub connectivity and authentication.
Common causes:
CLAWDNA_HUB_TOKEN env var or run clawdna env switch)~/.clawdna/config.json)Both local and hub have changes since the last sync.
Fix: clawdna pull will show the diff and prompt you to choose: hub wins, local wins, or cancel. Review the diff carefully before deciding. You can always clawdna snapshot first to save your current state.
clawdna upgrade detected that core identity files were modified by the OpenClaw update.
Fix: The upgrade command offers an automatic rollback. If you declined, you can still run:
clawdna restore --bundle ~/.clawdna/snapshots/pre-upgrade-<version>.dna
Config files should be 600 (owner read/write only) and snapshot directories should be 700.
Fix: Run chmod 600 ~/.clawdna/config.json and chmod 700 ~/.clawdna/snapshots/.