The workspace is the agent’s home. It is the only working directory used for file tools and for workspace context. Keep it private and treat it as memory.
This is separate from ~/.coderclaw/, which stores config, credentials, and
sessions.
Important: the workspace is the default cwd, not a hard sandbox. Tools
resolve relative paths against the workspace, but absolute paths can still reach
elsewhere on the host unless sandboxing is enabled. If you need isolation, use
agents.defaults.sandbox (and/or per‑agent sandbox config).
When sandboxing is enabled and workspaceAccess is not "rw", tools operate
inside a sandbox workspace under ~/.coderclaw/sandboxes, not your host workspace.
~/.coderclaw/workspaceCODERCLAW_PROFILE is set and not "default", the default becomes
~/.coderclaw/workspace-<profile>.~/.coderclaw/coderclaw.json:{
agent: {
workspace: "~/.coderclaw/workspace",
},
}
coderclaw onboard, coderclaw configure, or coderclaw setup will create the
workspace and seed the bootstrap files if they are missing.
If you already manage the workspace files yourself, you can disable bootstrap file creation:
{ agent: { skipBootstrap: true } }
Older installs may have created ~/coderclaw. 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 ~/coderclaw).
If you intentionally keep multiple workspaces, make sure
agents.defaults.workspace points to the active one.
coderclaw doctor warns when it detects extra workspace directories.
These are the standard files CoderClaw expects inside the workspace:
AGENTS.md
SOUL.md
USER.md
IDENTITY.md
TOOLS.md
HEARTBEAT.md
BOOT.md
BOOTSTRAP.md
memory/YYYY-MM-DD.md
MEMORY.md (optional)
See Memory for the workflow and automatic memory flush.
skills/ (optional)
canvas/ (optional)
canvas/index.html).If any bootstrap file is missing, CoderClaw injects a “missing file” marker into
the session and continues. Large bootstrap files are truncated when injected;
adjust limits with agents.defaults.bootstrapMaxChars (default: 20000) and
agents.defaults.bootstrapTotalMaxChars (default: 150000).
coderclaw setup can recreate missing defaults without overwriting existing
files.
These live under ~/.coderclaw/ and should NOT be committed to the workspace repo:
~/.coderclaw/coderclaw.json (config)~/.coderclaw/credentials/ (OAuth tokens, API keys)~/.coderclaw/agents/<agentId>/sessions/ (session transcripts + metadata)~/.coderclaw/skills/ (managed skills)If you need to migrate sessions or config, copy them separately and keep them out of version control.
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).
If git is installed, brand-new workspaces are initialized automatically. If this workspace is not already a repo, run:
cd ~/.coderclaw/workspace
git init
git add AGENTS.md SOUL.md TOOLS.md IDENTITY.md USER.md HEARTBEAT.md memory/
git commit -m "Add agent workspace"
Option A: GitHub web UI
git branch -M main
git remote add origin <https-url>
git push -u origin main
Option B: GitHub CLI (gh)
gh auth login
gh repo create coderclaw-workspace --private --source . --remote origin --push
Option C: GitLab web UI
git branch -M main
git remote add origin <https-url>
git push -u origin main
git status
git add .
git commit -m "Update memory"
git push
Even in a private repo, avoid storing secrets in the workspace:
~/.coderclaw/.If you must store sensitive references, use placeholders and keep the real
secret elsewhere (password manager, environment variables, or ~/.coderclaw/).
Suggested .gitignore starter:
.DS_Store
.env
**/*.key
**/*.pem
**/secrets*
~/.coderclaw/workspace).agents.defaults.workspace to that path in ~/.coderclaw/coderclaw.json.coderclaw setup --workspace <path> to seed any missing files.~/.coderclaw/agents/<agentId>/sessions/ from the
old machine separately.agents.defaults.sandbox is enabled, non-main sessions can use per-session sandbox
workspaces under agents.defaults.sandbox.workspaceRoot.