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.
- 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.