README.md

May 7, 2026 Β· View on GitHub

claude-brain

Sync your Claude Code brain across machines β€” portable, automatic, intelligent.

πŸ‡¨πŸ‡³ δΈ­ζ–‡

claude-brain is a Claude Code plugin for brain sync β€” sync Claude Code memory, skills, agents, rules, and settings across all your machines with semantic merge. Cross-machine, portable, zero daily effort.

Stars License Issues Platform Claude Code Plugin Last Commit Forks


# Machine A (work laptop) β€” first time setup
> /brain-init git@github.com:you/my-brain.git
βœ“ Brain exported: 42 memory entries, 3 skills, 5 rules
βœ“ Pushed to remote

# Machine B (home desktop) β€” join existing brain
> /brain-join git@github.com:you/my-brain.git
βœ“ Pulled brain: 42 memory entries, 3 skills, 5 rules
βœ“ Merged with local state
βœ“ Auto-sync enabled

# Later... check sync status from any machine
> /brain-status
=== Claude Brain Status ===
Machine: home-desktop (b7f2...)
Remote:  git@github.com:you/my-brain.git
Last push: 2 minutes ago
Last pull: 2 minutes ago
Status:  Clean

Two commands. Zero daily effort. Works forever.


The Problem

You use Claude Code on multiple machines. Your laptop has learned your coding patterns. Your desktop has custom skills. Your cloud VM has different rules. None of them talk to each other.

Every time you switch machines, you lose context. You re-teach Claude the same things. Your carefully crafted CLAUDE.md stays behind.

The Solution

# Machine A (work laptop)
> /brain-init git@github.com:you/my-brain.git
βœ“ Brain exported: 42 memory entries, 3 skills, 5 rules
βœ“ Pushed to remote

# Machine B (home desktop)
> /brain-join git@github.com:you/my-brain.git
βœ“ Pulled brain: 42 memory entries, 3 skills, 5 rules
βœ“ Merged with local state
βœ“ Auto-sync enabled

# That's it. Every session start/end syncs automatically.
# Your brain follows you.

Two commands. Zero daily effort. Works forever.

Why claude-brain?

ToolWhat it doesWhat claude-brain adds
claude-memEnhances memory on one machineSyncs your entire brain across all machines
chezmoi / dotfilesCopies config filesIntelligently merges knowledge β€” resolves contradictions, deduplicates
Manual CLAUDE.md copyWorks but tediousAuto-syncs silently on every session start/end

No other tool does cross-machine semantic merge of Claude Code's brain state.

Key Features

  • Auto-sync β€” hooks run on every session start/end, zero effort
  • Semantic merge β€” LLM-powered deduplication of memory and CLAUDE.md (not just overwrite)
  • N-way merge β€” laptop + desktop + cloud VM all converge intelligently
  • Encryption β€” optional age encryption for brain snapshots at rest
  • Team sharing β€” share skills, agents, and rules with teammates
  • Auto-evolve β€” promotes stable patterns from memory to durable config
  • Security-first β€” secrets stripped, env vars excluded, private repo enforced
  • Dirt cheap β€” ~$0.50-2.00/month typical usage via claude -p

Quick Start

Install

# Add the marketplace and install
/plugin marketplace add toroleapinc/claude-brain
/plugin install claude-brain-sync

Initialize (first machine)

/brain-init git@github.com:you/my-brain.git

Join (other machines)

/brain-join git@github.com:you/my-brain.git

With encryption

/brain-init git@github.com:you/my-brain.git --encrypt

Done. Auto-sync handles everything from here.

Commands

CommandDescription
/brain-init <remote>Initialize brain network with a Git remote
/brain-join <remote>Join an existing brain network
/brain-statusShow brain inventory and sync status
/brain-syncManually trigger full sync cycle
/brain-evolvePromote stable patterns from memory to config
/brain-conflictsReview and resolve merge conflicts
/brain-share <type> <name>Share a skill, agent, or rule with the team
/brain-shared-listList all shared artifacts in the network
/brain-logShow sync history

What Gets Synced

ComponentSynced?Merge Strategy
CLAUDE.mdYesSemantic merge
RulesYesUnion by filename
SkillsYesUnion by name
AgentsYesUnion by name
Auto memoryYesSemantic merge
Agent memoryYesSemantic merge
Settings (hooks, permissions)YesDeep merge
KeybindingsYesUnion
MCP serversYesUnion (env vars stripped)
Shared team artifactsYesUnion via shared namespace
OAuth tokensNeverSecurity
Env varsNeverMachine-specific
API keysNeverStripped automatically

Architecture

Machine A              Machine B              Machine C
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ claude-   β”‚          β”‚ claude-   β”‚          β”‚ claude-   β”‚
β”‚ brain     β”‚          β”‚ brain     β”‚          β”‚ brain     β”‚
β”‚ plugin    β”‚          β”‚ plugin    β”‚          β”‚ plugin    β”‚
β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜
      β”‚                      β”‚                      β”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β”‚     Git Remote       β”‚
                 β”‚  (your private       β”‚
                 β”‚       repo)          β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

No central server. Git handles transport. Each machine merges on pull.

Merge strategy:

  • Structured data (settings, keybindings, MCP) β†’ deterministic JSON deep-merge (free)
  • Unstructured data (memory, CLAUDE.md) β†’ LLM-powered semantic merge via claude -p (~$0.01-0.05)

Security

claude-brain is designed with security as a first-class concern:

  • Secrets are never exported β€” OAuth tokens, API keys, env vars, .claude.json are all excluded
  • Pattern-based secret scanning β€” warns if potential secrets are detected in memory
  • MCP env vars stripped β€” server configs sync without credentials
  • Private repo enforced β€” warns if public repo detected
  • Automatic backups β€” every import creates a backup in ~/.claude/brain-backups/
  • Machine trust model β€” only add machines you fully control
  • Optional encryption β€” age encryption for snapshots at rest

See the full Security Notice below.

API Costs

OperationCostWhen
Structured mergeFreeEvery sync
Semantic merge~$0.01–0.05Only when content differs
Auto-evolve~$0.02–0.10At most once per 7 days
Export / importFreeEvery sync

Typical monthly cost: $0.50–2.00 for active multi-machine use. Budget cap: $0.50/call (configurable).

Platform Support

PlatformStatus
LinuxFully supported
macOSFully supported (Apple Silicon + Intel)
WSLFully supported (WSL2 recommended)
Windows nativeNot supported (use WSL)
Claude Code CloudNot supported

claude-brain runs as a local plugin that hooks SessionStart/SessionEnd to shell out to git and read/write ~/.claude/. Cloud sessions are ephemeral, sandboxed, and don't have a persistent ~/.claude to sync to, so the current architecture doesn't apply. See #32 for the discussion of what a future read-only Cloud variant could look like.

Dependencies

  • git β€” sync transport
  • jq β€” JSON processing (apt install jq / brew install jq)
  • claude CLI β€” semantic merge (already installed with Claude Code)
  • age β€” optional, for encryption

Team Sharing

Share skills, agents, and rules with teammates:

/brain-share skill my-useful-tool.md
/brain-share agent debugger.md
/brain-share rule security.md

Shared artifacts live in shared/ in the brain repo. Memory is never shared β€” personal only. Team members receive shared artifacts on their next sync.

Auto-Evolve

The brain runs evolution analysis every 7 days (configurable). It:

  • Analyzes memory for stable, repeated patterns
  • High-confidence promotions (>0.9) are applied automatically
  • Lower-confidence suggestions are queued for manual review via /brain-conflicts

Trigger manually anytime with /brain-evolve.

Encryption

/brain-init git@github.com:you/my-brain.git --encrypt
  • Generates an age keypair per machine
  • Snapshots encrypted before push, decrypted on pull
  • Recipients file controls access: meta/recipients.txt
  • Backward compatible with unencrypted snapshots

Security Notice

Read this before using claude-brain. This plugin syncs your Claude Code configuration via a Git remote. Understand what data leaves your machine:

What IS exported

  • CLAUDE.md, rules, skills, agents
  • Auto memory and agent memory
  • Settings (hooks, permissions β€” NOT env vars)
  • MCP server configurations (env vars stripped)
  • Keybindings
  • Machine hostname and project directory names

What is NEVER exported

  • OAuth tokens and API keys
  • ~/.claude.json (credentials)
  • Environment variables from settings
  • MCP server env fields
  • .local config files
  • Session transcripts

Important considerations

  1. Use a PRIVATE Git repository. Plugin warns if public repo detected.
  2. Memory may contain sensitive context. Review before initializing.
  3. Git history is permanent. Use git-filter-repo to purge if needed.
  4. Auto-sync runs silently. Backups created before each import.
  5. Semantic merge uses Claude API. Memory content is sent to claude -p.
  6. Trust all machines in your network. Imported skills execute with Claude's permissions.

Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

License

MIT