Skip to content

Backup and moving

A memory is portable: one archive holds its sessions, records, entities, vectors, conversations and cards, and the same archive imports into the cloud or into any daemon.

Terminal window
pcx export --output memory.json.zst # everything
pcx export --workspace <id> --output checkout.json.zst
pcx export --no-messages --output records-only.json.zst

From the app: Your data, then Export everything, or Export on one workspace.

Scope Holds
everything every session and workspace, their vectors and conversations, every person’s user card, every project card
a workspace the workspace, its sessions, their vectors and conversations, its card
sessions the chosen sessions, their vectors and conversations

--no-messages leaves the conversations out; they can be large. The file’s extension chooses the compression: .json, .json.gz or .json.zst.

Terminal window
pcx import --input memory.json.zst --list # what the archive holds, nothing written
pcx import --input memory.json.zst
pcx import --input memory.json.zst --workspace <id>

From the app: Your data, then Import, or the link at the end of the onboarding. The app first shows a preview: what the archive holds, what the organization already has, and what conflicts; nothing is written until you confirm.

A broken archive is refused before anything is written. When it is written:

  • sessions and workspaces the target already has are skipped (--skip-existing) or replaced (--overwrite);
  • conversation turns already there are skipped, so importing twice adds nothing;
  • cards keep their history; when the two histories diverged, the target’s card stays unless you pass --cards-newer, which adds the archive’s card when it is newer.
  1. Export from where the memory is now.
  2. Import it where it should be.
  3. Point your clients at the new place: pcx profile use self or pcx profile use cloud, and the Claude Code plugin’s url.