~/.openclaw/, which stores config, credentials, and sessions.
Default location
- Default:
~/.openclaw/workspace - If
OPENCLAW_PROFILEis set and not"default", the default becomes~/.openclaw/workspace-<profile>. - Override in
~/.openclaw/openclaw.json:
openclaw onboard, openclaw configure, or openclaw setup will create the workspace and seed the bootstrap files if they are missing.
Sandbox seed copies only accept regular in-workspace files; symlink/hardlink aliases that resolve outside the source workspace are ignored.
Extra workspace folders
Older installs may have created~/openclaw. Keeping multiple workspace directories around can cause confusing auth or state drift, because only one workspace is active at a time.
Recommendation: keep a single active workspace. If you no longer use the extra folders, archive or move them to Trash (for example
trash ~/openclaw). If you intentionally keep multiple workspaces, make sure agents.defaults.workspace points to the active one.openclaw doctor warns when it detects extra workspace directories.Workspace file map
These are the standard files OpenClaw expects inside the workspace:AGENTS.md — operating instructions
AGENTS.md — operating instructions
Operating instructions for the agent and how it should use memory. Loaded at the start of every session. Good place for rules, priorities, and “how to behave” details.
SOUL.md — persona and tone
SOUL.md — persona and tone
Persona, tone, and boundaries. Loaded every session. Guide: SOUL.md personality guide.
USER.md — who the user is
USER.md — who the user is
Who the user is and how to address them. Loaded every session.
IDENTITY.md — name, vibe, emoji
IDENTITY.md — name, vibe, emoji
The agent’s name, vibe, and emoji. Created/updated during the bootstrap ritual.
TOOLS.md — local tool conventions
TOOLS.md — local tool conventions
Notes about your local tools and conventions. Does not control tool availability; it is only guidance.
HEARTBEAT.md — heartbeat checklist
HEARTBEAT.md — heartbeat checklist
Optional tiny checklist for heartbeat runs. Keep it short to avoid token burn.
BOOT.md — startup checklist
BOOT.md — startup checklist
Optional startup checklist run automatically on gateway restart (when internal hooks are enabled). Keep it short; use the message tool for outbound sends.
BOOTSTRAP.md — first-run ritual
BOOTSTRAP.md — first-run ritual
One-time first-run ritual. Only created for a brand-new workspace. Delete it after the ritual is complete.
memory/YYYY-MM-DD.md — daily memory log
memory/YYYY-MM-DD.md — daily memory log
Daily memory log (one file per day). Recommended to read today + yesterday on session start.
MEMORY.md — curated long-term memory (optional)
MEMORY.md — curated long-term memory (optional)
Curated long-term memory. Only load in the main, private session (not shared/group contexts). See Memory for the workflow and automatic memory flush.
skills/ — workspace skills (optional)
skills/ — workspace skills (optional)
Workspace-specific skills. Highest-precedence skill location for that workspace. Overrides project agent skills, personal agent skills, managed skills, bundled skills, and
skills.load.extraDirs when names collide.canvas/ — Canvas UI files (optional)
canvas/ — Canvas UI files (optional)
Canvas UI files for node displays (for example
canvas/index.html).If any bootstrap file is missing, OpenClaw injects a “missing file” marker into the session and continues. Large bootstrap files are truncated when injected; adjust limits with
agents.defaults.bootstrapMaxChars (default: 12000) and agents.defaults.bootstrapTotalMaxChars (default: 60000). openclaw setup can recreate missing defaults without overwriting existing files.What is NOT in the workspace
These live under~/.openclaw/ and should NOT be committed to the workspace repo:
~/.openclaw/openclaw.json(config)~/.openclaw/agents/<agentId>/agent/auth-profiles.json(model auth profiles: OAuth + API keys)~/.openclaw/credentials/(channel/provider state plus legacy OAuth import data)~/.openclaw/agents/<agentId>/sessions/(session transcripts + metadata)~/.openclaw/skills/(managed skills)
Git backup (recommended, private)
Treat the workspace as private memory. Put it in a private git repo so it is backed up and recoverable. Run these steps on the machine where the Gateway runs (that is where the workspace lives).Initialize the repo
If git is installed, brand-new workspaces are initialized automatically. If this workspace is not already a repo, run:
Add a private remote
- GitHub web UI
- GitHub CLI (gh)
- GitLab web UI
- Create a new private repository on GitHub.
- Do not initialize with a README (avoids merge conflicts).
- Copy the HTTPS remote URL.
- Add the remote and push:
Do not commit secrets
Suggested.gitignore starter:
Moving the workspace to a new machine
Advanced notes
- Multi-agent routing can use different workspaces per agent. See Channel routing for routing configuration.
- If
agents.defaults.sandboxis enabled, non-main sessions can use per-session sandbox workspaces underagents.defaults.sandbox.workspaceRoot.
Related
- Heartbeat — HEARTBEAT.md workspace file
- Sandboxing — workspace access in sandboxed environments
- Session — session storage paths
- Standing orders — persistent instructions in workspace files