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


  1. 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 ↩︎