claude memory sync

overview

claude code builds up project memory over time — preferences, context, and patterns stored in .claude/memory/. since each atlas workspace is an isolated git worktree, this memory doesn’t automatically carry between workspaces. without memory sync, every new workspace starts with a blank slate and any knowledge claude accumulated is lost when the workspace is archived.

atlas solves this by automatically syncing claude’s memory through the central repo clone.

how it works

atlas uses your central repo clone (~/.atlas/repos/{repo}/) as a hub for accumulating and redistributing claude’s project memory.

when you create a workspace:

  • atlas copies .claude/memory/ from the central repo into the new worktree
  • your new workspace starts with all the knowledge claude has built up from previous workspaces

when you archive a workspace:

  • atlas merges .claude/memory/ from the worktree back into the central repo
  • any new memories claude created during the workspace session are preserved for future workspaces

what gets synced

only .claude/memory/ is synced — the auto-generated, gitignored directory where claude stores its project knowledge.

files like CLAUDE.md, .claude/skills/, and .claude/commands/ are not synced by this feature. those are typically committed to your repo and travel with the branch via git, so they’re already available in every worktree automatically.

merge strategy

the merge uses an additive approach:

  • new files are copied over
  • existing files are updated only if the source has a newer modification time
  • nothing is ever deleted — knowledge accumulates across workspaces

this means if workspace A creates one memory and workspace B creates another, archiving both results in the central repo having both memories. the next workspace you create inherits everything.

no configuration needed

memory sync is always on. if no .claude/memory/ directory exists, the operations are no-ops — there’s nothing to configure or enable.