Skip to main content

Memory Sync

AI agents accumulate knowledge over time — conversation logs, preferences, project context — stored in files like MEMORY.md and memory/*.md. Memory Sync encrypts these files locally and pushes them to a GitHub private repository, so you can pull them on any device.

  • 🔐 End-to-end encrypted — files are encrypted before leaving your machine
  • 🔄 Cross-device sync — share memory between your laptop, desktop, and CI
  • 📦 GitHub-backed — versioned, private, and free

Why Do You Need It?​

ProblemSolution
Agent forgets everything on a new machinePull encrypted memory and resume
Memory files contain sensitive dataage encryption — server never sees the key
No backup for agent knowledgeGitHub private repo = automatic backup
Multiple devices, fragmented contextOne encrypted repo, any device

Prerequisites​

Quick Start​

1. Initialize​

npx clawsouls sync init

This will:

  • Prompt for your GitHub PAT
  • Create a private repo (e.g. clawsouls-memory-sync) on your GitHub account
  • Generate an age keypair (X25519) and store it locally

2. Push (Encrypt & Upload)​

npx clawsouls sync push

3. Pull (Download & Decrypt)​

npx clawsouls sync pull

4. Check Status​

npx clawsouls sync status

Key Management​

Your encryption key is the only way to decrypt your memory. Treat it like a password.

Export Your Key​

npx clawsouls sync export-key

Store it somewhere safe (password manager, encrypted USB).

Import on New Device​

npx clawsouls sync import-key
danger

If you lose your key, your encrypted memory is unrecoverable. There is no server-side backup. Export immediately after sync init.

How It Works​

Local memory files
│
▼
age encrypt (X25519)
│
▼
GitHub Private Repo (encrypted blobs)
│
▼
age decrypt (local key)
│
▼
Memory restored on new device

Tech stack: age encryption, GitHub API, local keystore.

FAQ​

Can I sync multiple agents?​

Yes. Each agent can have its own sync repo. Run sync init in each agent's working directory.

Is my data safe on GitHub?​

GitHub stores only encrypted blobs. Without your local private key, the data is indistinguishable from random bytes.

Can I use this with a team?​

Share the exported key with trusted team members via a secure channel. Anyone with the key and GitHub access can push and pull memory.