claudebase

productivity v0.2.0 by Rohit Hazra

Back up, restore, and sync your Claude Code config to a private GitHub repo with named profiles

MIT License
Free Pricing

Installation

Open Claude Code and run this command:

/plugin install claudebase@claude-code-plugins-plus

Use --global to install for all projects, or --project for current project only.

What It Does

![CI](https://github.com/rohithzr/claudebase/actions/workflows/test.yml)

![MIT License](LICENSE)

![Version](CHANGELOG.md)

Your Claude Code setup is infrastructure. Agents, skills, rules, hooks, memory — these accumulate over weeks of work and represent real investment. Losing them to a disk wipe, or manually recreating them on a new machine, shouldn't happen.

Claudebase syncs your entire Claude Code environment to a private GitHub repo. Profiles let you switch between work, personal, and team configurations instantly. Secret scanning, automatic backups, and multi-machine conflict detection keep things safe.

Skills (6)

sync-config SKILL.md View full skill →

Use when the user wants to view or change claudebase settings like global sync, agent skills sync, auto-push, or machine ID.

Bash(bash "${CLAUDE_PLUGIN_ROOT}/scripts/*")Read
sync-profiles SKILL.md View full skill →

Use when the user wants to list, create, switch, delete, compare, or inspect config sync profiles.

Bash(bash "${CLAUDE_PLUGIN_ROOT}/scripts/*")Bash(gh *)Bash(git *)Read
sync-pull SKILL.md View full skill →

Use when the user wants to restore, download, or pull their Claude Code config from GitHub onto this machine.

Bash(bash "${CLAUDE_PLUGIN_ROOT}/scripts/*")Bash(gh *)Bash(git *)Read
sync-push SKILL.md View full skill →

Use when the user wants to back up, save, or push their current Claude Code config to GitHub.

Bash(bash "${CLAUDE_PLUGIN_ROOT}/scripts/*")Bash(gh *)Bash(git *)Read
sync-setup SKILL.md View full skill →

Use when the user wants to set up config sync for the first time, connect to GitHub, or re-initialize the backup repo.

Bash(bash "${CLAUDE_PLUGIN_ROOT}/scripts/*")Bash(gh *)Bash(git *)ReadWrite
sync-status SKILL.md View full skill →

Use when the user wants to check what config has changed, see sync status, or compare local vs remote config.

Bash(bash "${CLAUDE_PLUGIN_ROOT}/scripts/*")Bash(gh *)Bash(git *)Read

How It Works


           ┌──────────────┐
Machine A  │ .claude/     │──push──┐
           │ .mcp.json    │        │     ┌──────────────────────┐
           │ .auto-memory/│        ├────>│  GitHub (private)    │
           └──────────────┘        │     │  profiles/default/   │
                                   │     │  profiles/work/      │
           ┌──────────────┐        │     │  shared/             │
Machine B  │ .claude/     │<─pull──┘     └──────────────────────┘
           │ .mcp.json    │
           │ .auto-memory/│
           └──────────────┘

When you pull, shared/ is applied first as a base layer, then profiles/\/ overlays on top. This lets you maintain organization-wide defaults while customizing per context.

Push is blocked if a different machine pushed since your last sync — pull first or use --force to override.

Use Cases

Sync between machines


Laptop:  /sync-push               # Push your config
Desktop: /sync-pull               # Pull it down
Desktop: # ... tweak agents, add rules ...
Desktop: /sync-push --force       # Push from second machine
Laptop:  /sync-pull               # Get desktop's changes

Switch contexts during the day


/sync-profiles switch work        # Load work config
/sync-push                        # Save work state
/sync-profiles switch personal    # Load personal config

Preview before committing


/sync-push --dry-run              # See what would be pushed
/sync-pull --dry-run              # See what would change locally
/sync-profiles diff work personal # Compare two profiles

More examples

Onboard a teammate


/sync-profiles create team-defaults --from work
/sync-push

/sync-setup
/sync-pull --profile team-defaults

Recover from a bad change


/sync-pull                        # Restores from last push
                                        # Old config saved to backups/

Three-machine round-robin


Laptop:   /sync-push
Desktop:  /sync-pull && /sync-push --force
CI Box:   /sync-pull && /sync-push --force
Laptop:   /sync-pull              # Gets everything

Ready to use claudebase?

View on GitHub

Related Plugins