← Building with AI

Versioned memory & skills backup

A nightly, versioned backup of my AI environment’s memory and skills, shared across two Macs. Git moves the files. Notion keeps a history I can browse.

My Claude environment gets more useful every week. New skills. New memory. That value lives in plain files on one machine. One bad disk and it is gone.

This system protects it. It also keeps two Macs in step: a Mac mini and a laptop.

How the nightly backup keeps two Macs in stepEach night the Mac mini at 22:00 and the laptop at 23:00 restore from a private GitHub repo, then sync and push their own changes back. Claude sessions write local memory files. Sync copies them into the repo, and a Notion database mirrors them.Mac mini, 22:00Laptop, 23:00restoreeverythingsync + pushrestoreproject memory onlysync + pushGitHubprivate repoClaude sessionsLocal memory filesNotionClaude Project Memorypushrestorepushrestorewrite memorycopied in by syncmirror
  • A private Git repo holds three folders: memory, skills and the sync scripts.
  • Each Mac runs a scheduled job every night. It restores first, then syncs. Restore pulls the latest copy from GitHub. Sync copies local changes in and pushes them.
  • The mini runs at 22:00 and restores everything. The laptop runs at 23:00 and restores project memory only. The stagger means the laptop always publishes on top of the mini’s fresh work.
  • Skills and global memory mirror exactly. Project memory copies additively in both directions, so neither machine can wipe the other’s work.
  • Restore has a safety check. It refuses to mirror from a copy that looks too thin, and it takes a backup before it overwrites anything.
  • A Notion database mirrors project memory. Git is the transport. Notion is the history I can search.

I accepted one trade-off. A deleted project memory does not spread to the other machine. I remove it by hand on each Mac. That is cheaper than losing work to a bad sync.