Skip to content

Plugins

Plugins are directory assets that bundle multiple nd assets into a Claude Code plugin package, distributed and installed via the nd export workflow rather than symlink deployment.

Directory layout

plugins/
└── my-toolbox/
    ├── .claude-plugin/
    │   └── plugin.json
    ├── skills/
    │   └── helper/
    │       └── SKILL.md
    └── commands/
        └── run-all.md

File format

A plugin directory contains a .claude-plugin/ subdirectory with a plugin.json manifest inside it, plus asset subdirectories that follow the standard nd structure.

{
  "name": "my-toolbox",
  "version": "1.0.0",
  "description": "A collection of useful agent tools"
}

Asset subdirectories inside the plugin (e.g., skills/, commands/) follow the same authoring conventions as their standalone counterparts.

Deploy behavior

Plugins are not deployable via nd deploy. Instead, use nd export to package the assets you want to include, then install the exported package through your agent’s plugin installation mechanism.

nd export --assets skills/greeting,commands/hello --output ./my-plugin

The exported directory is a self-contained plugin that can be handed off, version-controlled, or published independently.

Scope rules

Not applicable. Plugins bypass the symlink deployment system entirely and have no global or project scope path.

Related

Create a plugin

Create the plugin directory structure inside your source:

mkdir -p ~/my-assets/plugins/my-toolbox/.claude-plugin
mkdir -p ~/my-assets/plugins/my-toolbox/skills/greeting

cat > ~/my-assets/plugins/my-toolbox/.claude-plugin/plugin.json << 'EOF'
{
  "name": "my-toolbox",
  "version": "1.0.0",
  "description": "A collection of useful agent tools"
}
EOF

cat > ~/my-assets/plugins/my-toolbox/skills/greeting/SKILL.md << 'EOF'
Greet the user by name with a short, friendly message.
EOF

Once your source is registered (nd source add ~/my-assets), nd discovers the plugin and its nested assets. To package assets from any source into a standalone plugin for distribution, use nd export — see the nd export reference.