Claude Code and Codex on my Mac, and Hermes on my homelab, share one memory: an Obsidian vault in git. Each rule below exists because something broke first.
When a session starts, a hook injects who I am, the machine it's on and an index of the project. When it ends, the vault syncs: commit, fetch, rebase, push. Hermes does the same from a CronJob every five minutes.
| Index, not log | Claude Code cuts long startup output without telling the model. The hook sends an index; details are read on demand. | 61/103 cut |
| One memory | Native auto-memory points into the vault, so the other agent can see it. | 185 notes |
| Conflicts show | A failed sync parks its commits on a branch and the next session warns me. | parked |
| One vault | Work and personal share a vault, separated by persona instead of by repo. | 1 repo |