On Friday Simon Willison published a look at Jesse Vincent’s1 Superpowers plugin for Claude
You can read Simon’s and Jesse’s posts to see what this super cool plugin does, but I wanted to understand how to create a plugin and this is quick summary of my notes.
First up, Jesse uses a complex structure with three repos:
It’s setup this way to allow for contributions, but if you just want to play with creating a plugin, it’s not needed.
For a test, I took a copy of a different plugin I found that allows using Claude Code for systematic research reviews - Research Superpower. This isn’t setup to be installed as a marketplace, so it made a good test.
The basics are simple - wrap the plugin underneath a marketplace wrapper with a simple json config file to link it together.
dev-marketplace/
├── .claude-plugin/
│ └── marketplace.json # Marketplace metadata and plugin catalog
└── research-superpower/ # Individual plugin directories
├── skills/
├── scripts/
└── hooks/
For testing, run Claude in an enclosing directory (or just run in yolo mode) and add the plugin with:
/plugin marketplace add ./dev-marketplace
/plugin install research-superpowers@dev-marketplace
The Claude plugin docs are as excellent as ever, but there’s some wrinkles: I had some fun getting the session-start hooks to run properly, wbich all came down to path specification issues. You can see the correct config in hooks.json and session-start.sh. Other than that, it was all pretty straightforward once I realised that I only needed one repo not three!
If you’re curious, the code is on github
-
I came across Jesse via Keyboard.io, who make some really, really nice keyboards. I bought a Model-01, but then decided I preferred my ancient hand-assembled and very clacky Ergodox so sold it on. The Model-01 was an objectively nicer keyboard, but I’d got too used to the thumb layout on the Ergodox to swap ↩︎