Skip to content

durang/JOBrain

Repository files navigation

JOBrain

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.


Why this exists

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.


How it's different

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 ⚠️ API only ❌ (SaaS) API keys
Letta Per-user ⚠️ Python LangChain + PG
JOBrain Per-user global git + bash

No one else does all five at once.


Install (5 seconds)

git clone https://github.com/durang/JOBrain.git
cd JOBrain && ./install.sh

Then initialize your brain:

brain init
brain link claude-code     # or: cursor | windsurf | openclaw | generic
brain sync                 # first push to your private git remote

That's it. Your brain is now linked into that tool. Repeat brain link on any other machine and they share the same mind.


What about simultaneous edits on two machines?

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.

Daily use

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

Architecture

┌──────────────────────────────────────────────────────────────┐
│               ~/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.


Safety & kill-switches

  • brain unlink <harness> — removes symlinks for ONE tool and restores its original file from the .bak backup
  • brain bridge <harness> --off — stops a cron mirror
  • brain uninstall — removes the CLI, ~/brain/ untouched
  • brain kill — nuclear teardown: unlinks every harness (with .bak restore), 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.


Supported harnesses (v0.1)

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.


Roadmap

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

Inspired by / prior work

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

License

MIT — do whatever you want. Credit appreciated, not required.

Author

Built by @durang. PRs welcome.

About

Just One Brain. Your AI agent's memory, skills, and protocols — synced across every machine and every harness (Claude Code, Cursor, Windsurf, OpenClaw) via plain git. No SaaS, no lock-in.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages