An open API service indexing awesome lists of open source software.

https://github.com/saadmsft/ghcp-plugins-unofficial

Unofficial GitHub Copilot (VS Code) port of anthropics/claude-plugins-official β€” 21 plugins as prompts, agents, and skills
https://github.com/saadmsft/ghcp-plugins-unofficial

ai-agents anthropic claude-code copilot-chat github-copilot plugins vscode

Last synced: 19 days ago
JSON representation

Unofficial GitHub Copilot (VS Code) port of anthropics/claude-plugins-official β€” 21 plugins as prompts, agents, and skills

Awesome Lists containing this project

README

          


ghcp-plugins-unofficial


### _A constellation of Claude Code plugins, reborn for GitHub Copilot Chat in VS Code._

[![License: MIT](https://img.shields.io/badge/Tooling-MIT-22c55e?style=for-the-badge&logo=opensourceinitiative&logoColor=white)](LICENSE)
[![Content: Apache 2.0](https://img.shields.io/badge/Content-Apache_2.0-3b82f6?style=for-the-badge&logo=apache&logoColor=white)](https://www.apache.org/licenses/LICENSE-2.0)
[![Plugins](https://img.shields.io/badge/Plugins-21-f59e0b?style=for-the-badge&logo=githubcopilot&logoColor=white)](#-the-pantheon)
[![Artifacts](https://img.shields.io/badge/Artifacts-69-a855f7?style=for-the-badge)](#-the-pantheon)
[![VS Code](https://img.shields.io/badge/VS_Code-007ACC?style=for-the-badge&logo=visualstudiocode&logoColor=white)](https://code.visualstudio.com/)
[![Unofficial](https://img.shields.io/badge/Unofficial-fork-ef4444?style=for-the-badge)](https://github.com/anthropics/claude-plugins-official)


One repo. One ./install.sh. Twenty-one specialist agents in your sidebar.

Not affiliated with Anthropic or GitHub. Upstream content Β© Anthropic & contributors (Apache 2.0).

Quick Start
Plugins
Docs
Architecture

---

## 🌌 Why this exists

[Claude Code plugins](https://code.claude.com/docs/en/plugins) bundle **slash commands Β· sub-agents Β· skills Β· MCP servers Β· hooks** into a single installable package. GitHub Copilot Chat in VS Code has the same building blocks β€” **prompts, agents, skills, MCP** β€” but speaks a *different on-disk dialect* and YAML frontmatter. So a Claude plugin can't drop in verbatim.

This repo is the **Rosetta stone** between the two ecosystems:

```mermaid
flowchart LR
A[πŸ“¦ anthropics/
claude-plugins-official] -->|git clone --depth 1| B[πŸ›°οΈ repo/
gitignored mirror]
B -->|build-fork.py
deterministic port| C[✨ ghcp-plugins-unofficial/
plugins/]
C -->|./install.sh| D[πŸ’» VS Code
~/Library/.../prompts/]
C -->|./install.sh| E[🧠 ~/.copilot/skills/]
D --> F[(GitHub Copilot Chat
prompts Β· agents Β· skills)]
E --> F
style A fill:#1e293b,stroke:#f59e0b,color:#f1f5f9
style C fill:#1e293b,stroke:#a855f7,color:#f1f5f9
style F fill:#1e293b,stroke:#22c55e,color:#f1f5f9
```

> [!TIP]
> Install once, reload VS Code, and 21 specialist personas live in your `/` slash menu and `@` agent picker. Each is renamed `claude--…` so they never collide with your own customizations.

---

## ⚑ Quick start

```bash
git clone https://github.com/saadmsft/ghcp-plugins-unofficial.git
cd ghcp-plugins-unofficial

./install.sh --list # πŸ‘€ see the roster
./install.sh --dry-run code-review # πŸ” preview a single install
./install.sh code-review feature-dev # 🎯 install two
./install.sh # 🌊 install ALL 21
```

Then in VS Code:

| | |
|---|---|
| ⌨️ | ⌘+⇧+P β†’ **Developer: Reload Window** |
| `/` | Type a slash in Copilot Chat β€” `/claude-…` prompts appear |
| `@` | Mention an agent β€” `@Claude: feature-dev β€” code-architect` |
| 🧠 | Ask anything β€” skills auto-trigger by description |

> [!NOTE]
> Need a step-by-step? β†’ **[docs/INSTALL.md](docs/INSTALL.md)** has macOS / Linux / Windows recipes, verification commands, and an MCP-merge walkthrough.

---

## πŸ—ΊοΈ What lands where

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ plugins/

/prompts/*.prompt.md β†’ ~/Library/.../Code/User/prompts/ β”‚ β†’ /claude-

-
β”‚ plugins/

/agents/*.agent.md β†’ ~/Library/.../Code/User/prompts/ β”‚ β†’ @Claude:

β€”
β”‚ plugins/

/skills//... β†’ ~/.copilot/skills// β”‚ β†’ auto-trigger by description
β”‚ plugins/

/mcp.json β†’ β›” manual merge (your call) β”‚ β†’ MCP tools in Copilot
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

🍎 macOS path shown. Linux/WSL substitutes `${XDG_CONFIG_HOME:-$HOME/.config}/Code/User/`. Windows is documented in **[docs/INSTALL.md](docs/INSTALL.md#windows)**.

---

## 🎭 The Pantheon

> **21 plugins Β· 26 prompts Β· 21 agents Β· 22 skills Β· 1 MCP placeholder**

Each row is one plugin β€” its emoji is its calling card, its **codename** is your shortcut to remembering what it does, and the counts show what landed in your VS Code profile after `./install.sh`.

| | Plugin | Codename | πŸ’¬ | πŸ€– | 🧠 | πŸ”Œ | Purpose |
|---|---|---|---:|---:|---:|:---:|---|
| πŸ› οΈ | [`agent-sdk-dev`](plugins/agent-sdk-dev/) | **Hephaestus** | 1 | 2 | – | – | Verifies Anthropic Agent SDK apps (TS + Python) |
| πŸš€ | [`claude-code-setup`](plugins/claude-code-setup/) | **Genesis** | – | – | 1 | – | Onboarding skill β€” Claude Code first principles |
| πŸ“ | [`claude-md-management`](plugins/claude-md-management/) | **Scribe** | 1 | – | 1 | – | Manage `CLAUDE.md` / `AGENTS.md` / `copilot-instructions.md` |
| πŸ›οΈ | [`code-modernization`](plugins/code-modernization/) | **Argonauts** | 7 | 5 | – | – | Legacy β†’ modern pipeline: analyst Β· test-engineer Β· architecture-critic Β· security-auditor Β· business-rules-extractor |
| πŸ” | [`code-review`](plugins/code-review/) | **The Tribunal** | 1 | – | – | – | Multi-agent PR review with confidence scoring |
| βœ‚οΈ | [`code-simplifier`](plugins/code-simplifier/) | **Occam** | – | 1 | – | – | Refactor for clarity β€” preserves behavior |
| 🌿 | [`commit-commands`](plugins/commit-commands/) | **Hermes** | 3 | – | – | – | Conventional commits, autocommit, PR helpers |
| πŸ› οΈ | [`cwc-makers`](plugins/cwc-makers/) | **The Makers** | 1 | – | 2 | – | "Code with Claude" maker workflows |
| πŸŽ’ | [`example-plugin`](plugins/example-plugin/) | **Hello-World** | 1 | – | 2 | βœ“ | Reference plugin (MCP is placeholder) |
| 🌱 | [`feature-dev`](plugins/feature-dev/) | **The Trinity** | 1 | 3 | – | – | spec β†’ code-explorer β†’ code-architect β†’ code-reviewer loop |
| 🎨 | [`frontend-design`](plugins/frontend-design/) | **Aesthete** | – | – | 1 | – | Design-system / UI conventions skill |
| πŸͺ | [`hookify`](plugins/hookify/) | **The Watcher** | 4 | 1 | 1 | – | Conversation-analyzer + helpers _(hooks themselves not ported)_ |
| βž— | [`math-olympiad`](plugins/math-olympiad/) | **Euclid** | – | – | 1 | – | Competition-math problem-solving |
| πŸ”Œ | [`mcp-server-dev`](plugins/mcp-server-dev/) | **The Forge** | – | – | 3 | – | Build Β· test Β· host MCP servers |
| πŸŒ‰ | [`mcp-tunnels`](plugins/mcp-tunnels/) | **Iris** | 1 | – | – | – | Expose local MCP servers via tunnels |
| πŸŽͺ | [`playground`](plugins/playground/) | **Sandbox** | – | – | 1 | – | Scratch / experimentation skill |
| 🧩 | [`plugin-dev`](plugins/plugin-dev/) | **Daedalus** | 1 | 3 | 7 | – | Author plugins: skill-reviewer Β· plugin-validator Β· agent-creator |
| πŸ¦… | [`pr-review-toolkit`](plugins/pr-review-toolkit/) | **The Six** | 1 | 6 | – | – | Six specialist reviewers: silent-failure-hunter Β· type-design-analyzer Β· comment-analyzer Β· pr-test-analyzer Β· code-reviewer Β· code-simplifier |
| πŸ” | [`ralph-loop`](plugins/ralph-loop/) | **Sisyphus** | 3 | – | – | – | "Run until done" iteration pattern |
| πŸ“’ | [`session-report`](plugins/session-report/) | **Chronicle** | – | – | 1 | – | Generate session / standup reports |
| πŸ§ͺ | [`skill-creator`](plugins/skill-creator/) | **Athena** | – | – | 1 | – | Iteratively author + evaluate skills (485-line meta-skill) |

πŸ‘» Plugins intentionally NOT ported (and why) β€” click to expand

| Category | Count | Plugins | Why skipped |
|---|---:|---|---|
| **LSP wrappers** | 12 | `clangd-lsp`, `csharp-lsp`, `gopls-lsp`, `jdtls-lsp`, `kotlin-lsp`, `lua-lsp`, `php-lsp`, `pyright-lsp`, `ruby-lsp`, `rust-analyzer-lsp`, `swift-lsp`, `typescript-lsp` | VS Code already has first-class LSP integrations. The Claude-side plugin only exists to wire LSPs into Claude Code's edit-event loop. |
| **Hook / output-style only** | 3 | `explanatory-output-style`, `learning-output-style`, `security-guidance` | GHCP has no analog for Claude Code `hooks/` (shell scripts on `PostToolUse`, `UserPromptSubmit`) or output-style customization. |
| **Placeholders** | 1 | `example-plugin`'s `.mcp.json` β†’ `https://mcp.example.com/api` | Staged but not auto-merged into your MCP config. |

Full reasoning: **[docs/MAPPING.md β€Ί what-cannot-be-ported](docs/MAPPING.md#what-cannot-be-ported)**

---

## 🧭 Repo layout

```
ghcp-plugins-unofficial/
β”‚
β”œβ”€β”€ πŸš€ install.sh # the one button you came for
β”œβ”€β”€ 🧹 uninstall.sh # reverse it surgically
β”œβ”€β”€ πŸ”„ sync-from-upstream.sh # re-port from a fresh upstream clone
β”œβ”€β”€ πŸ—‚οΈ marketplace.json # machine-readable index of all 21
β”‚
β”œβ”€β”€ πŸ“¦ plugins/ # 21 ported plugins, one folder each
β”‚ └── /
β”‚ β”œβ”€β”€ plugin.json # metadata + inventory
β”‚ β”œβ”€β”€ prompts/ # *.prompt.md ── slash commands
β”‚ β”œβ”€β”€ agents/ # *.agent.md ── chat participants
β”‚ β”œβ”€β”€ skills// # SKILL.md + bundled resources
β”‚ β”œβ”€β”€ mcp.json # MCP server defs (if applicable)
β”‚ β”œβ”€β”€ README.md # per-plugin docs + install snippet
β”‚ └── LICENSE # Apache 2.0, preserved from upstream
β”‚
β”œβ”€β”€ πŸ“š docs/
β”‚ β”œβ”€β”€ GHCP-PRIMER.md # πŸ†• New to Copilot customization? Start here.
β”‚ β”œβ”€β”€ MAPPING.md # πŸ”€ Claude β†’ GHCP feature translation
β”‚ β”œβ”€β”€ INSTALL.md # πŸ’Ώ Detailed install / verify / per-OS
β”‚ β”œβ”€β”€ TROUBLESHOOTING.md # 🩺 Symptom β†’ cause β†’ fix
β”‚ β”œβ”€β”€ ARCHITECTURE.md # πŸ›οΈ How build-fork.py works
β”‚ └── PORTING.md # πŸ› οΈ Add a plugin Β· customize porter
β”‚
β”œβ”€β”€ README.md # ← you are here
β”œβ”€β”€ LICENSE # MIT for tooling
β”œβ”€β”€ CHANGELOG.md
└── CONTRIBUTING.md
```

> [!IMPORTANT]
> The porter (`build-fork.py`) lives **one directory up** at `../build-fork.py` β€” the fork's working tree stays clean of build tooling. Architectural rationale: **[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)**.

---

## πŸŽ›οΈ Install / uninstall reference

```bash
./install.sh # 🌊 install ALL plugins
./install.sh code-review # 🎯 install one
./install.sh code-review feature-dev # 🎯 install several
./install.sh --list # πŸ“œ print plugin names, one per line
./install.sh --dry-run # πŸ‘€ show what would be copied (no writes)
./install.sh --dry-run code-modernization # πŸ‘€ combine with selection
./install.sh -h # ❓ built-in help

./uninstall.sh # 🧹 remove ALL claude-* from your profile
./uninstall.sh hookify # 🧹 remove just one
```

> [!CAUTION]
> **Skills are removed-then-copied, not merged.** Any local edits inside `~/.copilot/skills/claude-…/` will be lost on re-install. Make changes in `plugins/

/skills/…` and re-run `./install.sh` instead.

> [!WARNING]
> **MCP servers are never auto-merged** into your user `mcp.json`. The porter stages them per-plugin so you can review and merge intentionally β€” see **[docs/INSTALL.md β€Ί MCP servers](docs/INSTALL.md#mcp-servers)**.

---

## πŸ”„ Staying in sync with upstream

```bash
./sync-from-upstream.sh # 1️⃣ pulls latest anthropics/claude-plugins-official
# 2️⃣ regenerates plugins/ deterministically
# 3️⃣ leaves your tree dirty for review
git diff # 4️⃣ inspect what changed
git commit -am "sync: $(date -u +%Y-%m-%d)"
```

The porter is **byte-deterministic** β€” running it twice on the same upstream commit produces identical output. `git diff` is a clean signal of what changed upstream this cycle. Details: **[docs/PORTING.md β€Ί Syncing](docs/PORTING.md#syncing)**.

---

## πŸ›οΈ Architecture

```mermaid
flowchart TB
subgraph upstream["πŸ“¦ anthropics/claude-plugins-official"]
U1[plugin.json]
U2[commands/*.md]
U3[agents/*.md]
U4[skills/<n>/SKILL.md]
U5[.mcp.json]
end

subgraph porter["βš™οΈ build-fork.py Β· deterministic"]
P1[parse_fm
regex YAML]
P2[emit_prompt]
P3[emit_agent]
P4[emit_skill]
P5[prefix all
claude-<plugin>-]
end

subgraph fork["✨ ghcp-plugins-unofficial/plugins/<P>/"]
F1[plugin.json]
F2[prompts/*.prompt.md]
F3[agents/*.agent.md]
F4[skills/<n>/SKILL.md]
F5[mcp.json Β· staged]
end

U1 --> P1
U2 --> P2 --> F2
U3 --> P3 --> F3
U4 --> P4 --> F4
U5 -.staged.-> F5
P1 --> F1
P5 -.applied to all.-> fork

style upstream fill:#0c4a6e,stroke:#38bdf8,color:#f0f9ff
style porter fill:#3b0764,stroke:#a855f7,color:#faf5ff
style fork fill:#14532d,stroke:#22c55e,color:#f0fdf4
```

**Seven invariants** the porter must preserve (full list in **[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)**):

1. πŸ”’ **Idempotent** β€” running twice on same input = identical output
2. πŸͺΆ **Lossless naming** β€” every artifact prefixed `claude--`, never collides
3. πŸ“œ **Apache-preserving** β€” per-plugin `LICENSE` always copied verbatim
4. βšͺ **No-PyYAML** β€” regex-only frontmatter parser, zero runtime dependencies
5. πŸ›‘οΈ **No mutation of installed files** β€” `install.sh` only copies, never edits
6. 🚫 **No silent MCP merge** β€” user opts in manually for every server
7. 🎯 **Skippable explicitly** β€” LSP/hook-only plugins are filtered with reasons logged

---

## ⚠️ Caveats

> [!WARNING]
> 1. **πŸ”§ Tool references don't translate.** Claude's `allowed-tools: Bash(gh pr view:*), Read, Grep` is stripped β€” GHCP's tool surface uses different names. Prompts that say "use a Haiku agent" or "spawn a sub-agent with the Task tool" become *guidance*, not literal sub-spawns. Prose-style prompts still work well.
> 2. **πŸͺ Hooks are dropped.** No GHCP analog for `hooks/` shell scripts.
> 3. **🎨 Output styles are dropped.** Same reason.
> 4. **πŸ”Œ MCP servers are staged, not auto-installed.** Manual merge gives you a chance to review.
> 5. **🧠 Skill triggers depend on description quality.** GHCP loads skills lazily by description match. A ported skill that never triggers usually needs description tuning β€” see **[TROUBLESHOOTING](docs/TROUBLESHOOTING.md#skill-never-auto-triggers)**.
> 6. **🏷️ The `claude-` prefix is hygiene, not branding.** It guarantees no collision and reliable uninstall β€” at the cost of mouthful slash-commands like `/claude-pr-review-toolkit-review-pr`. VS Code's incremental filter helps.

---

## πŸ“š More docs

| πŸ“„ Doc | 🎯 When to read it |
|---|---|
| [`docs/GHCP-PRIMER.md`](docs/GHCP-PRIMER.md) | New to GHCP customization? Start here. |
| [`docs/MAPPING.md`](docs/MAPPING.md) | "What exactly does the porter do to a command vs an agent vs a skill?" |
| [`docs/INSTALL.md`](docs/INSTALL.md) | Detailed install + verification + per-OS notes + MCP-merge guide |
| [`docs/TROUBLESHOOTING.md`](docs/TROUBLESHOOTING.md) | "I installed it but Copilot doesn't see it" |
| [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) | How `build-fork.py` is structured + invariants |
| [`docs/PORTING.md`](docs/PORTING.md) | Add a new plugin Β· customize porter Β· contribute back |
| [`CONTRIBUTING.md`](CONTRIBUTING.md) | Workflow for PRs |
| [`CHANGELOG.md`](CHANGELOG.md) | What changed when |

---

## πŸ’Ž License & attribution

### πŸ“¦ Plugin content (`plugins/`)
**Β© Anthropic & contributors**
[Apache License 2.0](https://github.com/anthropics/claude-plugins-official/blob/main/LICENSE)
_Per-plugin `LICENSE` files preserved verbatim._

### πŸ› οΈ Porting scripts Β· tooling Β· docs
**Β© 2026 Saad Mahmood**
[MIT License](LICENSE)
_The fork itself + `build-fork.py` + `install.sh`._

> [!NOTE]
> Issues with plugin **content** belong upstream at [anthropics/claude-plugins-official](https://github.com/anthropics/claude-plugins-official/issues).
> Issues with **porting** (plugin doesn't load, malformed YAML, install fails) belong [here](https://github.com/saadmsft/ghcp-plugins-unofficial/issues).

---

footer

If this saved you an afternoon, ⭐ the repo. If it broke your morning, [open an issue](https://github.com/saadmsft/ghcp-plugins-unofficial/issues/new).