{
  "markdown": "# sync-my-skills\n\n[한국어](README.ko.md)\n\nSync your Claude Code skills across multiple machines using GitHub.\n\n## Why\n\nClaude Code skills live in local files (`~/.claude/skills/`) and don't sync across devices through your account. If you use Claude Code on multiple machines — work, home, laptop — you've probably wanted your custom skills everywhere without manually copying files.\n\nThis plugin automates that: push skills to a private GitHub repo from one machine, pull them on another.\n\n## Prerequisites\n\n- [Claude Code](https://claude.ai/code)\n- [GitHub CLI (`gh`)](https://cli.github.com/) — installed and authenticated\n- Git\n\n## Installation\n\nInstall via Claude Code plugin:\n\n```\n/plugin marketplace add kunsanglee/sync-my-skills\n/plugin install sync-my-skills\n```\n\nOr install manually:\n\n```bash\nmkdir -p ~/.claude/skills/my-skills\ncurl -o ~/.claude/skills/my-skills/SKILL.md \\\n  https://raw.githubusercontent.com/kunsanglee/sync-my-skills/main/skills/my-skills/SKILL.md\n```\n\n## Usage\n\nRun these commands inside Claude Code.\n\n### Initial Setup\n\n```\n/my-skills setup\n```\n\n- Verifies your GitHub account via `gh` CLI\n- Creates a **private** repo (or clones an existing one)\n- Generates a config file (`~/.my-skills.yml`)\n- If skills already exist in the repo (from another machine), offers to link them\n\n### Push Skills (Local → GitHub)\n\n```\n/my-skills push                            # Push all linked user-level skills\n/my-skills push memo                       # Push a specific skill\n/my-skills push memo recap                 # Push multiple skills\n/my-skills push backend-init -p            # Push project-level skill (auto-detect project)\n/my-skills push backend-init -p retrievo   # Push to a specific project\n```\n\nThe first push copies the skill to the repo and replaces the original with a symlink. Subsequent pushes just commit and push changes.\n\n### Pull Skills (GitHub → Local)\n\n```\n/my-skills pull                            # Pull all updates + offer to link new skills\n/my-skills pull memo                       # Pull a specific skill\n/my-skills pull memo recap                 # Pull multiple skills\n/my-skills pull -p retrievo                # Show retrievo's skills, select which to pull\n/my-skills pull backend-init -p retrievo   # Pull a specific project skill directly\n```\n\n### List Skills\n\n```\n/my-skills list                   # Show all skills (user + project level)\n/my-skills list -p retrievo       # Show skills for a specific project\n```\n\nExample output:\n```\nRepo: username/my-skills (private)\n\n── User Level ──\n[linked]     memo            Create study notes from conversations\n[linked]     recap           Summarize session work\n[local only] backend-init    Spring Boot project initializer\n[other]      skill-creator   Create and improve skills (via plugin)\n\n── Project Level ──\n  retrievo/\n    [linked]     backend-init  Spring Boot + Kotlin DDD project init\n    [remote]     claude-api    Build apps with Claude API\n```\n\n### Unlink Skills\n\n```\n/my-skills unlink memo                  # Unlink a user-level skill\n/my-skills unlink memo recap            # Unlink multiple skills\n/my-skills unlink backend-init -p       # Unlink a project-level skill\n```\n\nRemoves the symlink and restores the original from backup. The skill stays in the repo — only the local link is removed.\n\n## How It Works\n\n```\n~/.claude/skills/memo  →  (symlink)  →  ~/.my-skills-repo/user/memo\n                                              ↕ (git push/pull)\n                                        GitHub: username/my-skills\n                                              ↕ (git push/pull)\n[Other machine] ~/.my-skills-repo/user/memo  ←  (symlink)  ←  ~/.claude/skills/memo\n```\n\n1. When you push a skill, it's copied to `~/.my-skills-repo/user/` (or `projects/<name>/` for project-level) and the original is replaced with a symlink.\n2. After that, editing the skill directly modifies the file in the repo directory (through the symlink).\n3. `/my-skills push` commits and pushes changes to GitHub. `/my-skills pull` on another machine fetches them.\n\n## Repo Structure\n\n```\n~/.my-skills-repo/\n├── user/                       ← user-level skills\n│   ├── memo/SKILL.md\n│   └── recap/SKILL.md\n└── projects/                   ← project-level skills (by project name)\n    ├── retrievo/\n    │   └── backend-init/SKILL.md\n    └── execute/\n        └── frontend-init/SKILL.md\n```\n\n## User Level vs Project Level\n\n| Scope | Path | Applies to |\n|-------|------|------------|\n| User level | `~/.claude/skills/` | All projects |\n| Project level | `{project}/.claude/skills/` | That project only |\n\n- Default scope is user level\n- Use `--project` (`-p`) flag for project-level skills\n\n## Status Labels\n\n| Label | Meaning |\n|-------|---------|\n| `[linked]` | Symlink connected to repo — synced |\n| `[remote]` | Exists in repo but not linked on this machine |\n| `[local only]` | Exists locally but not in repo |\n| `[other]` | Symlink pointing elsewhere (e.g. plugin-installed) |\n\n## FAQ\n\n**Q: Will my existing skills be deleted?**\nA: No. Original skills are backed up to `~/.my-skills-backup/` before being replaced with symlinks.\n\n**Q: What happens when I edit a skill?**\nA: The symlink points to the repo directory, so edits go directly to the repo. Just run `/my-skills push` to sync.\n\n**Q: What if I edit the same skill on two machines?**\nA: A Git conflict may occur. The tool will show the conflict and help you resolve it.\n\n**Q: Is the repo public?**\nA: No, it's created as **private** by default. Your personal skills stay private.\n\n**Q: What if I push the same skill name from different projects?**\nA: No conflict — project-level skills are stored under `projects/<project-name>/`, so the same skill name can exist in multiple projects.\n\n## Feedback & Feature Requests\n\nFound a bug or have an idea? Open a GitHub Issue.\n\n- [Open an Issue](https://github.com/kunsanglee/sync-my-skills/issues)\n- Bug reports, feature requests, and feedback are all welcome.\n\n## Author\n\n- [@kunsanglee](https://github.com/kunsanglee)\n",
  "bytes": 6009,
  "sha": "f49c930aef4860862373efcf188c7326a760515ef4fe5f0519110316ff26a579",
  "repo_slug": "kunsanglee/sync-my-skills",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_kunsanglee_sync_my_skills_sync_my_skills_c74f96ed/readme"
}