A collection of portable Agent Plugins — reusable components that extend AI coding agents — packaged so the same plugin works across any compatible client.
This repository is also a plugin marketplace, so clients that support marketplaces can install directly from it.
Agent Plugins is an open, vendor-neutral standard for packaging reusable agent components into portable plugins. The v1.0.0 specification defines a shared format for Agent Skills and MCP servers, so a plugin authored once can be discovered and loaded consistently by any conformant client.
The specification is developed in the open in the agent-plugins-spec repository, with a Technical Steering Committee including maintainers from Amazon, Cursor, Microsoft, OpenAI, and Vercel.
A plugin is a directory with a required manifest and optional components in fixed locations:
my-plugin/
├── plugin.json # required manifest, declares the spec version
├── skills/ # Agent Skills (each subdirectory has a SKILL.md)
│ └── my-skill/
│ ├── SKILL.md
│ ├── scripts/
│ ├── references/
│ └── assets/
└── mcp.json # optional MCP server configuration
Further reading:
- Specification — the normative contract
- Plugin authors guide
- Client implementers guide
- Schemas
- Agent Skills specification — the
SKILL.mdformat
| Plugin | Description |
|---|---|
| pr-generator | Turns the commits on your current branch into a structured pull request or merge request description, and returns a ready-to-use creation link for Azure DevOps, GitHub, or GitLab. |
agent-plugins/
├── .gitattributes # forces LF endings so the shell script works on Windows
├── .github/plugin/marketplace.json # marketplace manifest (GitHub Copilot CLI)
├── .claude-plugin/marketplace.json # same manifest (Claude Code)
└── plugins/
└── pr-generator/
├── plugin.json
└── skills/pr-generator/
├── SKILL.md
├── assets/
├── references/
└── scripts/
The two marketplace manifests are identical. Clients look in different places, so both are provided — keep them in sync when adding a plugin.
Register the marketplace, then install the plugin:
copilot plugin marketplace add irarainey/agent-plugins
copilot plugin install pr-generator@agent-pluginsOr from an interactive session:
/plugin marketplace add irarainey/agent-plugins
/plugin install pr-generator@agent-plugins
You can also install a plugin directly, without registering the marketplace:
copilot plugin install irarainey/agent-plugins:plugins/pr-generatorManage installed plugins with copilot plugin list, copilot plugin update NAME,
copilot plugin disable NAME, and copilot plugin uninstall NAME.
/plugin marketplace add irarainey/agent-plugins
/plugin install pr-generator@agent-plugins
OpenCode discovers Agent Skills natively, including from Claude-compatible paths. Clone the repository and link or copy the skill into a discovered location:
git clone https://github.com/irarainey/agent-plugins.git
mkdir -p .opencode/skills
cp -r agent-plugins/plugins/pr-generator/skills/pr-generator .opencode/skills/Use ~/.config/opencode/skills/ instead of .opencode/skills/ to make it available
in every project.
Because the skill is a standard Agent Skill, any agent that reads SKILL.md can use
it. Copy the skill directory into whichever location your client scans:
| Client | Project scope | User scope |
|---|---|---|
| GitHub Copilot CLI | .github/skills/ |
~/.copilot/skills/ |
| Claude Code | .claude/skills/ |
~/.claude/skills/ |
| OpenCode | .opencode/skills/ |
~/.config/opencode/skills/ |
For example:
mkdir -p .claude/skills
cp -r plugins/pr-generator/skills/pr-generator .claude/skills/If your agent has no skill support at all, you can still point it at
plugins/pr-generator/skills/pr-generator/SKILL.md
and ask it to follow those instructions.
Once installed, ask your agent in natural language. The skill activates on its own when your request matches its description.
Generate a pull request for this branch
Raise a PR for this branch, work item 12345
Draft a merge request description
The agent runs the bundled script once, then returns a short, plainly worded description followed by a link that opens the provider's creation form with the branches pre-filled. Sections the commits do not support are left out rather than padded with filler.
The provider is detected automatically from the git remote, so the correct URL format
is used for each. If you use a self-hosted instance whose hostname doesn't identify it
(a GitLab server at git.example.com, for example), set PR_PROVIDER to
azure-devops, github, or gitlab to force it.
See the plugin README for configuration options, guard conditions, and provider detection details.
gitonPATH- bash (Linux, macOS, Git Bash or WSL on Windows) or PowerShell —
pwshon 7+,powershell.exeon Windows PowerShell 5.1 - A client that supports Agent Plugins or Agent Skills
.gitattributesforces LF line endings, so a Windows clone withcore.autocrlf=truecannot break the shell script.- The bash script uses only
git,sed,tr,wc, andprintf, and avoids bash 4+ syntax, so it works on Git Bash, WSL, and the bash 3.2 shipped with macOS. - On Windows, run the PowerShell variant with
-ExecutionPolicy Bypass, since script files are blocked by default. - Both scripts read the current working directory, so run them from the repository you are summarising, not from the script's own folder.
To add a plugin:
- Create
plugins/<plugin-name>/plugin.jsontargeting the Agent Plugins v1.0.0 schema, and add your skills underplugins/<plugin-name>/skills/. - Follow the Agent Skills specification for
each
SKILL.md, ensuringnamematches its directory name. - Add an entry to both
.github/plugin/marketplace.jsonand.claude-plugin/marketplace.json. - Keep plugins generic — no organisation-specific hosts, URLs, or identifiers.