Build a Hadron skills plugin¶
One installable plugin that carries every skill your Hadron memories publish. Install it in Claude Code with two commands and no git repository. Keep it current by rebuilding it. You can also hand the zip to someone else.
This one needs the hadron CLI, v0.17.0 or later, signed in as you. If your coding agent has a terminal, you can ask it:
Run
hadron skill plugin --out ~/hadron-plugins --dry-run, show me what it would include, then build it and install it in Claude Code.
The rest of this page is what that does. If you only want the skills on your
own machine as separate files, use
Install and update your Hadron skills
instead: hadron skill export writes them straight into your skills folders.
The two are independent. Installing the plugin doesn't touch skills that
skill export wrote, and the reverse is also true.
Before you start¶
- The
hadronCLI, signed in (hadron auth status). Ifhadron skill plugin --helpanswersunknown command "plugin" for "hadron skill", your CLI is older than v0.17.0: upgrade first. - An empty directory to build into, outside your skills folders. The command
refuses to build at, inside or above
~/.claude/skills,~/.agents/skillsor~/.codex/skills, because a plugin there would load every skill twice.
Build¶
Preview first. A dry run lists every skill it would include and writes nothing:
Then build:
Add --zip to also get zip files you can upload or send.
What's included¶
By default, every enabled skill you can read, including skills from customer
and personal memories. The report says so above its table. To include only the
skills in one scope, pass --scope
<name|id>. A scope name resolves in an App's context, so pass --app <ref>
too, or set an active App; with neither, the command refuses (exit 2). A scope
that doesn't exist, or that you can't read, exits 4. A scope with no memory you
can read builds nothing and exits 2. None of these ever falls back to
everything.
What you get¶
Under --out, one artifact per host:
| Artifact | What it is |
|---|---|
hadron/ |
A Claude plugin that is also a one-plugin marketplace, so Claude Code can install it straight from the directory. |
hadron-codex/ |
Skill folders for Codex, to copy into ~/.agents/skills. |
hadron.zip, hadron-codex.zip |
With --zip: the same artifacts zipped, the plugin at the zip's root. |
--name changes hadron to your own name (lowercase words joined by hyphens,
up to 64 characters). The name is permanent for an install: skills are
invoked as /<name>:<skill>.
If none of your enabled skills is declared for Codex, the Codex artifact is
empty (and hadron-codex.zip is a nearly empty file). That isn't a failure.
Install in Claude Code¶
claude plugin list then shows hadron@hadron, enabled, with its version.
Restart your Claude Code session to load the skills.
Update¶
When your skills change, rebuild into the same --out, then update:
Restart the session to apply it. The plugin's version is a hash of its contents
(0.0.0-h…), so it changes exactly when a skill does, and Claude Code picks up
any version change, even to one that sorts lower. The rebuild replaces the
artifact it wrote earlier as a whole.
Codex¶
Copy the folders in hadron-codex/ into ~/.agents/skills.
Share it¶
--zip produces hadron.zip for uploading to Claude's plugin settings, in
Cowork or your organization. A personal upload in Cowork has been verified: the
plugin installs and its skills trigger in a real conversation. An organization
upload, and re-uploading after a change, have not been verified yet, so
check the result on your side. Before you share a zip, run the build with
--dry-run and check what it would include: unless you pass --scope, it
carries your personal and customer skills too.
Read the report¶
| State | Meaning |
|---|---|
included |
Bundled into the artifact. |
skipped |
Not bundled, and not an error. A switched-off skill, for example. |
refused |
Not bundled: two skills claim one name, or similar. |
failed |
Not bundled: over a host limit, or couldn't be written. |
notForHost |
Declared only for the other host. |
A dry run labels the first state would include.
The command exits 5 after the full report if any item was refused or
failed, or an artifact couldn't be written, and 0 otherwise: skipped and
notForHost items are expected and don't count. It exits 2 for a bad flag or an unusable --out,
before contacting the server, and for an empty scope, before building
anything. Expect 5 if two of your skills claim one name: both are refused,
and the rest are still built.
When the build is refused¶
| You see | Why | What to do |
|---|---|---|
| "… is at, inside or above the host skills directory …", exit 2 | --out is in, or contains, a skills folder. |
Choose a directory outside them. |
"… exists and was not written by hadron skill plugin, so it was left alone", exit 5 |
Something else already sits at the artifact path. | Move it, or choose another --out or --name. The command only replaces an artifact it wrote itself. |
| "… is a symbolic link, so nothing was written through it", exit 5 | The artifact path is a symbolic link, and the command never writes through one. | Replace the link with a real directory. |
Related¶
- Install and update your Hadron skills — the same skills as separate files, with no plugin.
- hadron CLI reference → Skills —
skill plugin,skill export,skill statusandskill lint, with--jsonshapes. - Working through an agent — what it means to have your agent run a command like this one for you.
- Surfaces — MCP, CLI, and the portal — where a skill sits among the ways to reach Hadron.