A few Claude Code skills I use every day, packaged as a plugin marketplace so they’re one command to install. Source lives at github.com/shad/claude-plugins.
Add the marketplace once:
/plugin marketplace add shad/claude-plugins
Then install whichever you want.
/plugin install cmux-control@shad
cmux is a terminal whose entire UI is drivable from a CLI, which means a Claude session running inside it can reshape the terminal it lives in. The hard part isn’t the commands, it’s deciding what the sidebar means — so the plugin carries a contract. Every channel belongs to one of three axes and never borrows from another: identity (title, group, color, icon) changes only when the work changes; state (status pills, progress, spinner) is always a promise to clear it; attention (pins, order, collapse) is scarce by definition. Color is the stream, never the status. The default is nothing pinned.
Enforcement is split by cost. cmux-sidebar-sync fixes everything decidable
from state alone — color follows group, ungrouped rows carry no hue, anchor
titles match their group — and runs on a Stop hook after every turn, silently
and for free. What it can’t decide, it reports: a title that names the prompt
instead of the work, a row holding two streams. That goes to a cheap-model agent
that reads each session and retitles it, and only when you ask, because a rename
you didn’t watch happen is a sidebar that lies to you.
Requires: cmux.
/plugin install plugin-authoring@shad
The marketplace maintaining itself. new-plugin takes a skill that already
works in ~/.claude/skills/ and makes it installable — plugin directory,
manifest, catalog entry, validation, docs, commit, push, install — in one pass.
release-plugin ships a later change to it: version bump in both manifests, tag,
push, update.
Mostly it exists to stop me from half-publishing things. A plugin directory with no catalog entry, or a version that agrees with itself in one file and not the other, both fail quietly and only when someone else tries to install.