Just One Brain. Every machine. Every tool. Yours.
Your AI agent's memory, skills, and protocols — synced across every device and every harness via plain git.
No SaaS. No lock-in. No vendor. Just files and git.
You train your AI agent one way on your Mac. You train it differently on your server. You switch from Cursor to Claude Code and start over from zero.
JOBrain fixes that. One ~/brain/ folder on your machine, synced via your own private git repo, symlinked into every harness you use. Kill the repo tomorrow and everything still works locally. Your memory. Your rules. Your brain.
| Scope | Cross-harness | Cross-machine | No SaaS | Dependencies | |
|---|---|---|---|---|---|
| agentic-stack | Per-project | ✅ | ❌ | ✅ | Python + brew |
| Claude Code memory | Per-project | ❌ | ❌ | ✅ | — |
| Cursor rules | Per-project | ❌ | ❌ | ✅ | — |
| Mem0 | Per-user | ✅ | ❌ (SaaS) | API keys | |
| Letta | Per-user | ❌ | ✅ | LangChain + PG | |
| JOBrain | Per-user global | ✅ | ✅ | ✅ | git + bash |
No one else does all five at once.
git clone https://github.com/durang/JOBrain.git
cd JOBrain && ./install.shThen initialize your brain:
brain init
brain link claude-code # or: cursor | windsurf | openclaw | generic
brain sync # first push to your private git remoteThat's it. Your brain is now linked into that tool. Repeat brain link on any other machine and they share the same mind.
Handled by design, not by discipline.
Memory (memory/*.md) is host-scoped automatically. Your EC2 writes
to memory/ec2-hostname/, your Mac writes to memory/macbook/. They
never touch each other's paths, so parallel edits are impossible to
conflict.
~/brain/memory/
├── ip-172-31-18-191/ ← only EC2 writes here
│ └── 2026-04-22.md
└── macbook/ ← only Mac writes here
└── 2026-04-22.md
brain recall <query> still searches across all hosts, so retrieval
is seamless.
Shared files (SOUL.md, skills/*.md, etc.) have
merge=union configured — if two machines edit the same file, git
keeps both changes instead of failing. True conflicts on rarely-edited
files like SOUL.md will pause the sync with a clear recovery path
printed in your terminal.
brain status # what's linked, when last synced, pending conflicts
brain sync # pull + push
brain sync --watch # auto-sync every 5 min in background
brain recall "renta" # full-text search memory
brain forget "renta #1" # archive + commit (right-to-forget)
brain timeline # pretty git log of what your brain learned this week
brain unlink <harness> # remove symlinks, restore .bak originals
brain bridge openclaw # install hourly cron: OpenClaw memory → brain
brain bridge foo --off # stop a bridge
brain uninstall # remove CLI, brain/ stays intact
brain kill # teardown everything, restore all originals┌──────────────────────────────────────────────────────────────┐
│ ~/brain/ (your private git repo) │
│ SOUL.md USER.md PROTOCOLS.md memory/ skills/ │
└──────────────────────────────────────────────────────────────┘
↕ git
┌─────────┴─────────┐
▼ ▼
┌───────────────┐ ┌───────────────┐
│ Mac / laptop │ │ Server / EC2 │
│ ~/brain/ ←→ │ │ ~/brain/ ←→ │
│ symlinks: │ │ symlinks: │
│ claude-code │ │ openclaw │
│ cursor │ │ claude-code │
└───────────────┘ └───────────────┘
Symlinks mean every tool reads the SAME files. Edit in Cursor, Claude Code sees it. Edit on your server, your laptop sees it after the next sync.
brain unlink <harness>— removes symlinks for ONE tool and restores its original file from the.bakbackupbrain bridge <harness> --off— stops a cron mirrorbrain uninstall— removes the CLI,~/brain/untouchedbrain kill— nuclear teardown: unlinks every harness (with.bakrestore), removes cron entries, removes the CLI, offers to delete~/brain/- Nuke the git remote — both machines keep their local
~/brain/intact, just stop syncing
JOBrain is strictly additive. It never destructively modifies your agent's existing memory. See docs/safety.md for the exhaustive file-by-file map.
| Harness | Link | Bridge |
|---|---|---|
| Claude Code | ✅ | planned (v0.2) |
| Cursor | ✅ | planned |
| Windsurf | ✅ | planned |
| OpenClaw | ✅ | ✅ brain bridge openclaw (mirrors ~/memory/ hourly) |
| Generic | ✅ | — |
Link attaches the harness to ~/brain/. Bridge mirrors the
harness's native memory INTO ~/brain/ via cron, so memories written
by the harness end up synced to your other machines.
Coming in v0.2: Antigravity, OpenCode, Hermes, Pi, custom adapters.
See docs/ROADMAP.md for the full plan (phase 1 → phase 3).
Short version:
- Phase 1 (now) — single-user across machines, git-backed, CLI-only
- Phase 2 — right-to-forget, full-text recall, encrypted memory (git-crypt)
- Phase 3 — team brains, vector search, selective sharing
- agentic-stack — solves the project-scope version of this problem. JOBrain tackles user-scope cross-machine sync.
- Obsidian — for proving git + markdown is enough for a thinking tool.
- Claude Code — for making the agent/harness pattern mainstream.
MIT — do whatever you want. Credit appreciated, not required.
Built by @durang. PRs welcome.