1. Use a development folder with a claude.md file to guide your coding agent
Because we’re still early with plugins (and the Claude Code framework it depends on), you can’t assume that even Opus will know how to develop plugins out of the box. In fact, until I developed
I call my folder “claude-plugins” dev with a claude.md file that covers plugin structure, references, best practices, available events and commands, etc. Believe me when I say my agents got way better after putting this file in place. For a head’s start, here’s a copy of my
Claude.md helper for Plugin development
2. Use the terminal to develop plugins
While you’re welcome to zip up your plugins and start testing them, you’ll find that that loading time + required restart for Claude Desktop creates a multi-minute minute feedback loop that can be sped way up by loading your plugins with the Claude Code Terminal. Use this command to load any plugin on your machine:
claude --plugin-dir '/my-plugin-directory'
3. Use /debug liberally
While there is no way to trace your plugin actions step-by-step, the /debug command in Claude Code will tell Claude to review the conversation trace for errors; or place your question after the command to specify your question, e.g., “/debug Why did you skip a step after I submitted my contacts?”
4. Use Claude Desktop (Co-Work tab) as your “Staging env
Claude Co-Work uses a VM to launch every session - an approach inherently different than the terminal. This will create bugs - fix your new bugs after you get the base plugin developed in the terminal. You’ll appreciate this when it takes you multiple minutes every time you replace a plugin through the Claude Desktop client 😒
5. Use your official marketplace folder as “Prod”
This will maintain versioning. Push this folder to a public git repo and now anyone can download and use your plugin.
6. Read the documentation (that means you, human)
Again, we’re still early, so vibe coding your way to a plugin works, but you’ll be able to build WAY more functionality in if you read through the plugins and hooks documentation from Anthropic. Here are the pages I recommend FYI: these links are likely to move/break in the future.
5. Edit Ruthlessly
This goes for all agentic development, but please edit your skills and code ruthlessly. Remember that your users will be way more unpatient than you, so that extra feature or fallback that Sonnet created may just lose users while they wait endlessly for Claude to load this context.
If your plugin creates artifacts, this step is doubly important. While the Claude will be able to read and respond quickly, creating any artifacts will take significant time and tokens every time. Get rid of all features except your absolutely necessary ones. Claude may even try to build more features or components itself (Sonnet in particular is quite the eager beaver). If this keeps happening, prompt your skill to tell Claude to stay within the scope you define.