
Company News
Free Business Plan Upgrades for Open Source Maintainers
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.
claude-code-branch-memory-manager
Advanced tools
Branch-specific CLAUDE.md memory management for Claude Code. Automatically switches context when you change git branches.
Automatic branch-specific CLAUDE.md memory management for Claude Code. When you switch git branches, your Claude Code context switches with you.
When working across multiple git branches, your CLAUDE.md file contains context specific to one branch. Switching branches means Claude Code loses that context, or worse, has the wrong context for your current work.
Branch Memory Manager saves and loads branch-specific CLAUDE.md files automatically. Each branch gets its own memory, stored in .claude/memories/.
As a Claude Code plugin — memories switch automatically when you run git checkout or git switch inside Claude Code. No manual intervention needed.
As a CLI — manually save, load, and manage branch memories from your terminal.
Install from the plugin marketplace inside Claude Code:
/plugin marketplace add Davidcreador/claude-code-branch-memory-manager
/plugin install branch-memory@davidcreador
Or install the npm package and load it with --plugin-dir:
# Install the npm package in your project
npm install --save-dev claude-code-branch-memory-manager
# Or install globally
npm install -g claude-code-branch-memory-manager
Then load as a plugin:
claude --plugin-dir ./node_modules/claude-code-branch-memory-manager
Once installed, branch memory switching happens automatically:
git checkout feature/auth inside Claude CodeCLAUDE.md to .claude/memories/main.md.claude/memories/feature_auth.md into CLAUDE.mdfeature/auth work# Initialize in your repo
branch-memory init
# Save current context
branch-memory save "Implemented user auth"
# Switch branches (saves + loads automatically)
branch-memory switch feature/api
# List all saved memories
branch-memory list
# Check status
branch-memory status
| Command | Description |
|---|---|
branch-memory save [description] | Save current CLAUDE.md to branch memory |
branch-memory load <branch> | Load memory from a specific branch |
branch-memory list | List all stored branch memories |
branch-memory status | Show current branch and memory status |
branch-memory switch <branch> | Git switch + memory swap in one command |
branch-memory copy <src> <dst> | Copy memory between branches |
branch-memory clean | Remove memories for deleted branches |
branch-memory restore [branch] | Restore from backup |
branch-memory init | Set up branch memory in current repo |
branch-memory version | Show version |
Branch memories are stored in .claude/memories/ within your repository:
your-repo/
├── CLAUDE.md # Active memory (read by Claude Code)
├── .claude/
│ └── memories/
│ ├── main.md # Memory for main branch
│ ├── feature_auth.md # Memory for feature/auth
│ ├── feature_api.md # Memory for feature/api
│ └── .backups/ # Automatic backups
│ └── main.2025-03-18T...md
When installed as a Claude Code plugin, four hooks handle automatic switching. Each one injects the active branch memory into the live session via Claude Code's additionalContext mechanism (writing the file on disk alone does not update an already-loaded context):
SessionStart — Loads the correct branch memory when Claude Code startsPostToolUse (Bash) — Detects git checkout / git switch commands and swaps memoriesUserPromptSubmit — Detects branch switches made outside Claude Code (e.g. another terminal) and swaps memories. Cheap no-op when the branch hasn't changed, so it does not bloat every promptSessionEnd — Saves the active CLAUDE.md back to the current branch when the session endsWhen switching to a branch with no saved memory, the tool looks for a fallback in this order: main → master → develop. This is configurable.
Create a .branch-memory.json in your repo root:
{
"memoryDir": ".claude/memories",
"memoryFileName": "CLAUDE.md",
"autoSaveOnSwitch": true,
"autoSaveOnSessionEnd": true,
"watchExternalSwitch": true,
"fallbackToDefault": true,
"fallbackBranches": ["main", "master", "develop"]
}
| Variable | Description |
|---|---|
BRANCH_MEMORY_DIR | Memory storage directory |
BRANCH_MEMORY_FILE | Memory file name |
BRANCH_MEMORY_AUTO_SAVE | Enable/disable auto-save on switch (true/false) |
BRANCH_MEMORY_AUTO_SAVE_ON_END | Enable/disable auto-save on session end (true/false) |
BRANCH_MEMORY_WATCH_EXTERNAL | Enable/disable detection of external branch switches (true/false) |
BRANCH_MEMORY_FALLBACK | Enable/disable fallback (true/false) |
BRANCH_MEMORY_FALLBACK_BRANCHES | Comma-separated fallback branches |
When installed as a Claude Code plugin, these skills are available as namespaced slash commands:
/branch-memory:save — Save current context/branch-memory:load — Load a branch's context/branch-memory:status — Show memory status/branch-memory:list — List all memoriesThese are Agent Skills: you can invoke them directly with the slash command, and Claude may also use them automatically when their description matches what you're doing.
.claude/memories/ to .gitignore if you don't want to share memories across the team.claude/memories/ if you want shared branch contextbranch-memory clean periodically to remove memories for deleted branchesfeature/auth becomes feature_auth.mdMIT
FAQs
Branch-specific CLAUDE.md memory management for Claude Code. Automatically switches context when you change git branches.
We found that claude-code-branch-memory-manager demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.