Stop copy-pasting AI skills between repos: package them as Claude Code plugins A developer created a plugin system for Claude Code that packages AI skills into reusable git repositories, eliminating the need to copy-paste skills between repos. The plugins are structured git repos with a known layout, allowing teams to share skills like database queries, staging deploys, and log reading across projects with a simple install command. As we enter the era of AI and skills, we're faced with new problems — a flood of skills, and sharing knowledge skills between repos. Every day I work with a bunch of repositories, predominantly in Go but sometimes in other languages. A huge layer of knowledge should be shared between them — for example, how to connect to a database, how to deploy a test tag to a staging server, or where to find the logs. For several months I had been creating skills in each repo and putting the specific knowledge there, but after a while I realized I'd started copy-pasting some skills between repos. Claude built a plugin system, and it has become mature enough to use. I created a separate repository with the skills and scripts that should be shared, and organized them as plugins. A plugin is just a structured git repository with files — convenient to maintain and update. The install part is also very flexible: when I install a plugin, I can choose the scope. Here's what it looks like in practice. A plugin is just a git repo with a known layout. One marketplace can hold many plugins; one plugin can hold many skills. dev-claude-plugins/ the repo you push to git ├── .claude-plugin/ │ └── marketplace.json catalog — lists the plugins in this repo └── plugins/ └── backend-dev/ one installable plugin ├── .claude-plugin/ │ └── plugin.json manifest: name, version, author └── skills/ ├── query-db/ │ └── SKILL.md how to connect + run read-only queries ├── staging-deploy/ │ ├── SKILL.md deploy a dev tag to staging │ └── references/ extra docs the skill loads on demand └── logs/ ├── SKILL.md where/how to read service logs └── scripts/ helper shell scripts the skill calls They're tiny. marketplace.json is the catalog: { "name": "myteam", "owner": { "name": "your-handle" }, "plugins": { "name": "backend-dev", "source": "./plugins/backend-dev", "description": "Shared cross-repo dev skills: db queries, staging deploy, logs." } } plugin.json is the plugin itself: { "name": "backend-dev", "version": "0.1.0", "author": { "name": "your-handle" }, "description": "Shared cross-repo development skills." } Two commands. First register the marketplace, then install the plugin — this is where you pick the scope this project only, or user scope = available in every repo : 1. Register the marketplace — a local path while iterating… /plugin marketplace add ~/work/dev-claude-plugins …or a git URL to share across machines and teammates: /plugin marketplace add https://github.com/your-handle/dev-claude-plugins.git 2. Install the plugin prompts for scope: user vs project /plugin install backend-dev@myteam Now every skill is available as /backend-dev: