๐ Sync your Claude Code environment across machines via GitHub
โโโโโโโโโโ โโโโโโโโโโโ โโโโโโโ โโโ โโโโโโโ
โโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโ โโโโโโโโโโโ
โโโ โโโ โโโโโโโโ โโโโโโโ โโโโโโ โโโโโโ
โโโ โโโ โโโโโโโโ โโโโโ โโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโ โโโ โโโ โโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโ โโโ โโโ โโโโโ โโโโโโโ
- Features
- Installation
- Quick Start
- CLI Reference
- Interactive Mode
- MCP Server
- Architecture
- Workflows
- License
| Feature | Description |
|---|---|
| ๐ GitHub Sync | Share and sync Claude Code settings via GitHub repositories |
| ๐ฆ Multi-Repo Support | Pull from multiple repositories and manage them independently |
| ๐ค Stage & Apply | Stage settings locally, apply them anywhere |
| ๐ฏ Full Extension Support | Manage Skills, Agents, and Output Styles |
| ๐ Promote / Demote | Move settings between project and user scope |
| ๐ Link to Slash Commands | Convert skills/agents into explicit slash commands |
| ๐ Local Project Scan | Find and manage all .claude directories on your machine |
| ๐ MCP Integration | Native Claude Code integration via MCP Server (37 tools) |
| Feature | Description |
|---|---|
| ๐ฅ๏ธ Interactive Mode | User-friendly menu when running clsync without arguments |
| ๐ Status Dashboard | View staging area status and pulled repositories |
| ๐ Repository Browser | Browse GitHub repositories before pulling |
| ๐ Scope Comparison | Compare user and project settings side-by-side |
| ๐ก Smart Hints | Helpful error messages with suggestions |
| ๐ Responsive UI | Adapts to terminal window size |
| Feature | Description |
|---|---|
| ๐ Create Settings | Create skills, subagents, output styles via AI |
| ๐ Read Settings | Read and list existing settings |
| ๐ Sync Operations | Pull, apply, promote, demote via MCP tools |
| ๐ Documentation Sync | Sync external documentation to Claude context |
npm install -g clsyncclsync init# Browse a repository
clsync browse owner/repo
# Pull to local cache
clsync pull owner/repo
# Apply all to your ~/.claude
clsync apply --all -s owner/repo -u# Stage your settings
clsync stage --all -u
# Export with metadata
clsync export ./my-settings -a "Your Name" -d "My Claude settings"
# Push to GitHub
cd my-settings && git init && git add . && git push| Command | Description |
|---|---|
clsync |
Start interactive mode |
clsync init |
Initialize ~/.clsync directory |
clsync status |
Show staging area status |
clsync --help |
Show help with ASCII banner |
clsync --version |
Show version |
| Command | Description |
|---|---|
clsync stage [name] |
Stage item to ~/.clsync/local |
clsync stage --all -u |
Stage all from ~/.claude |
clsync stage --all -p |
Stage all from .claude |
clsync unstage <name> |
Remove from staging |
clsync list |
List staged items |
| Command | Description |
|---|---|
clsync apply [name] |
Apply from local staging |
clsync apply [name] -s owner/repo |
Apply from pulled repo |
clsync apply --all -s owner/repo -u |
Apply all to ~/.claude |
clsync apply --all -s owner/repo -p |
Apply all to .claude |
clsync apply [name] -d /path |
Apply to custom directory |
| Command | Description |
|---|---|
clsync pull <owner/repo> |
Pull from GitHub |
clsync pull <owner/repo> -f |
Force overwrite |
clsync browse <owner/repo> |
Browse repo contents |
clsync repos |
List pulled repositories |
clsync list <owner/repo> |
List items in a repo |
| Command | Description |
|---|---|
clsync scopes |
Compare user and project settings |
clsync promote <name> |
Move: .claude โ ~/.claude |
clsync promote <name> -f |
Force overwrite |
clsync promote <name> -r <new> |
Rename to avoid conflict |
clsync demote <name> |
Move: ~/.claude โ .claude |
| Command | Description |
|---|---|
clsync link skill <name> |
Link skill to slash command |
clsync link agent <name> |
Link subagent to slash command |
clsync link --all |
Link all skills and agents |
clsync link --all --skills-only |
Link only skills |
clsync link --all --agents-only |
Link only agents |
clsync link skill <name> -p |
Link in project scope |
clsync link skill <name> -n <custom> |
Link with custom command name |
| Command | Description |
|---|---|
clsync scan |
Find all local .claude directories |
clsync scan -p <dir> |
Scan specific directory |
clsync scan -c |
Clear scan cache |
clsync scan -i |
Show cache info |
| Command | Description |
|---|---|
clsync export <dir> |
Export staging to directory |
clsync export <dir> -a "Author" |
With author name |
clsync export <dir> -d "Desc" |
With description |
| Command | Description |
|---|---|
clsync sync |
Sync documentation from config |
clsync sync -u |
Sync to user level |
clsync sync -f |
Force overwrite |
clsync sync -d |
Dry run (preview) |
Run clsync without arguments to enter interactive mode:
โโโโโโโโโโ โโโโโโโโโโโ โโโโโโโ โโโ โโโโโโโ
โโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโ โโโโโโโโโโโ
...
๐ฆ Local: 0 items | ๐ Repos: 2
? What would you like to do?
1) ๐ View status
2) ๐ฆ Browse pulled repositories
3) ๐ฅ Apply items from repo
4) ๐ Pull new repository
5) ๐ Compare scopes (user vs project)
6) โ Help
7) ๐ Exit
Features:
- Browse and apply items with number selection
- Multi-select items to apply
- Pull new repositories interactively
- Compare scopes visually
claude mcp add clsync --transport stdio -- npx -y clsync-mcp| Tool | Description |
|---|---|
init_clsync |
Initialize ~/.clsync directory |
get_status |
Get current clsync status |
| Tool | Description |
|---|---|
sync_docs |
Sync documentation from configured sources |
list_docs |
List synced documentation files |
read_doc |
Read a documentation file |
| Tool | Description |
|---|---|
create_skill |
Create a new skill with SKILL.md |
create_subagent |
Create a new subagent |
create_output_style |
Create a new output style |
| Tool | Description |
|---|---|
list_skills |
List skills (user/project/both) |
read_skill |
Read skill content |
list_subagents |
List subagents |
read_subagent |
Read subagent content |
list_output_styles |
List output styles |
| Tool | Description |
|---|---|
stage_item |
Stage item from ~/.claude or .claude |
stage_all |
Stage all items |
unstage_item |
Remove item from staging |
list_staged |
List staged items |
| Tool | Description |
|---|---|
pull_settings |
Pull from GitHub repository |
push_settings |
Push to GitHub repository |
browse_repo |
Browse repository contents |
list_repos |
List pulled repositories |
| Tool | Description |
|---|---|
apply_setting |
Apply setting from staging |
| Tool | Description |
|---|---|
promote_setting |
Move project โ user |
demote_setting |
Move user โ project |
compare_scopes |
Compare user and project settings |
| Tool | Description |
|---|---|
link_skill_to_command |
Link skill to slash command |
link_subagent_to_command |
Link subagent to slash command |
link_all_to_commands |
Link all skills and agents |
| Tool | Description |
|---|---|
export_for_push |
Export staged items for git push |
link_local_repo |
Link GitHub repo to local |
unlink_local_repo |
Unlink GitHub repo |
get_local_info |
Get local staging info |
| Tool | Description |
|---|---|
list_online_repos |
List online registry repositories |
pull_online_repo |
Pull from online registry |
| Tool | Description |
|---|---|
scan_claude_dirs |
Scan for .claude directories |
get_scan_cache_info |
Get scan cache information |
clear_scan_cache |
Clear scan cache |
~/.claude/ โโ
โโโ skills/ โ
โโโ agents/ โ stage โโโโโโโโโโโโโโโ
โโโ output-styles/ โโโโโโโโโโโโบ ~/.clsync โโโโโโบ GitHub
โ โโโ local/ Repos
.claude/ (project) โโค โโโ repos/
โโโ skills/ โ โโโ owner/repo/
โโโ ... โโโโโ apply โโโโโ
~/.clsync/
โโโ manifest.json # Metadata and repo tracking
โโโ local/ # Your staged items
โ โโโ skills/
โ โโโ agents/
โ โโโ output-styles/
โโโ repos/ # Pulled repositories
โโโ owner1/repo1/
โ โโโ clsync.json # Repo metadata
โ โโโ skills/
โ โโโ agents/
โโโ owner2/repo2/
{
"$schema": "https://clsync.dev/schema/v1.json",
"version": "0.2.0",
"name": "my-settings",
"description": "My Claude Code settings",
"author": "username",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z",
"items": [
{ "type": "skill", "name": "commit-msg", "path": "skills/commit-msg" }
],
"stats": {
"skills": 1,
"agents": 0,
"output_styles": 0,
"total": 1
}
}Machine A (export):
clsync stage --all -u
clsync export ./my-settings -a "Me"
cd my-settings && git pushMachine B (import):
clsync pull user/my-settings
clsync apply --all -s user/my-settings -u# Team lead exports
clsync stage --all -u
clsync export ./team-settings -a "Team" -d "Shared team settings"
# Team members import
clsync pull team/settings
clsync apply --all -s team/settings -uclsync pull user1/awesome-skills
clsync pull user2/productivity-agents
clsync repos # View all
clsync apply code-reviewer -s user2/productivity-agents -u# View both scopes
clsync scopes
# Promote project setting to user (make global)
clsync promote my-skill
# Demote user setting to project (make local)
clsync demote my-agent# Link a single skill to slash command
clsync link skill alarm
# Now use /alarm in Claude Code
# Link a subagent to slash command
clsync link agent code-reviewer
# Now use /code-reviewer in Claude Code
# Link all skills and agents at once
clsync link --all
# Link only skills
clsync link --all --skills-only
# Link in project scope
clsync link skill my-skill --projectUse Case: Convert auto-invoked skills into explicitly callable slash commands for more control.
Pull requests and issues welcome!
MIT ยฉ 2026 workromancer
