Capabilities
Build, package, and share composable agent capabilities.
$ dn capability <command>Composable packages of agents, tools, and skills — capture domain expertise, share it, and refine it over time.
Aliases: new
$ dn capability init <name>Scaffold a new capability directory ready for development.
Creates a capability.yaml manifest and a starter agent definition.
The result passes capability validate immediately. Use
capability install to make it available to local agents.
Options
<name>,--name(Required) — Capability name (e.g. my-recon-cap). Lowercase letters, digits, and hyphens only.--description(defaultA new capability) — One-line description of what this capability does.--initial-version(default0.1.0) — Initial semver version.--author— Author name to include in the manifest.--with-skills(defaultFalse) — Also create a starter skill directory.--with-mcp(defaultFalse) — Also create a starter .mcp.json file.--path(default.) — Parent directory to create the capability folder in.
install
Section titled “install”$ dn capability install <ref>Install a capability so agents can use it.
If the argument is a path to a directory on disk, the capability is validated and symlinked into ~/.dreadnode/capabilities/ so edits are live. Use —copy to create a frozen snapshot instead.
Otherwise the argument is treated as a registry reference and the capability is downloaded from the platform.
Options
<ref>,--ref(Required) — Capability reference or local path. Registry: my-cap, [email protected], acme/my-cap. Local: ./my-cap, /abs/path/to/cap.--force(defaultFalse) — Overwrite if already installed.--copy(defaultFalse) — Copy files instead of symlinking (local installs only).
Aliases: upload
$ dn capability push <path>Publish a capability to your organization’s registry.
Options
<path>,--path(Required) — Capability directory containing capability.yaml.--name— Override the registry name. Bare names are auto-prefixed with the active organization.--skip-upload(defaultFalse) — Build and validate locally without publishing.--force(defaultFalse) — Overwrite even if this version already exists with different content.--publish(defaultFalse) — Ensure the capability is publicly discoverable after publishing.
publish
Section titled “publish”$ dn capability publish <refs>Make one or more capability families visible to other organizations.
Options
<refs>,--refs(Required)
unpublish
Section titled “unpublish”$ dn capability unpublish <refs>Make one or more capability families private.
Options
<refs>,--refs(Required)
Aliases: ls
$ dn capability listShow capabilities in your organization.
Options
--search— Search by name or description.--limit(default50) — Maximum results to show.--include-public(defaultFalse) — Include public capabilities from other organizations.--json(defaultFalse) — Output raw JSON instead of a summary.
$ dn capability info <ref>Show details and available versions for a capability.
Version is optional — defaults to the latest. Use org/name to inspect public capabilities from other organizations.
Options
<ref>,--ref(Required) — Capability to inspect (e.g. my-cap, [email protected], or acme/my-cap).--json(defaultFalse) — Output raw JSON instead of a summary.
Aliases: download
$ dn capability pull <ref>Download a capability to a local directory.
Fetches the capability from the registry and writes it to disk.
Defaults to a folder named after the capability in the current
directory. Use --output to choose a different destination.
This does not install or activate the capability — use
install for that.
Options
<ref>,--ref(Required) — Capability to pull (e.g. my-cap, [email protected], or acme/my-cap).--output,-o— Destination directory. Defaults to ./<capability-name>.--force(defaultFalse) — Overwrite the destination if it already exists.
delete
Section titled “delete”Aliases: rm
$ dn capability delete <ref>Remove a published capability version from the registry.
Options
<ref>,--ref(Required) — Capability to delete (e.g. [email protected]). Version is required.--yes,-y(defaultFalse) — Skip the confirmation prompt.
$ dn capability sync <directory>Publish all capabilities from a directory — ideal for CI pipelines.
Discovers subdirectories containing capability.yaml, compares each against the registry by content hash, and only publishes those that changed.
Options
<directory>,--directory(Required) — Root directory containing capability subdirectories.--force(defaultFalse) — Publish all capabilities even if unchanged.--publish(defaultFalse) — Ensure published capabilities are publicly discoverable.
improve
Section titled “improve”$ dn capability improve <--dataset> <path> <--scorer> <list[str]> <path>Improve a local capability against a local dataset with stack-aware optimization.
Options
<path>,--path(Required)--dataset(Required) — Local dataset file or dataset directory used for optimization--scorer(Required) — Repeatable scorer identifier (path.py:name or package.module.name)--agent— Optional agent name when the capability exports multiple agents--model— Execution model override; required for inheriting agents--reflection-model— Reflection model override; defaults to the execution model--proposer-capability— Optional capability path or ref used to propose candidate text updates. Defaults to dreadnode/capability-improver when available from local capability roots.--proposer-agent— Optional agent name inside the proposer capability--proposer-model— Model override for the proposer capability agent--holdout-dataset— Optional held-out local dataset used for keep/discard gating--surface— Mutable capability-owned surfaces to optimize (repeatable)--score-name— Metric name to optimize when scorers emit multiple metrics--goal-field(defaultgoal) — Dataset field to map to the agent goal when no explicit mapping is provided--dataset-input— Repeatable dataset input mapping as DATASET_KEY=TASK_PARAM--objective— Optional natural-language optimization objective--max-metric-calls(default40) — Metric-call budget for the local search--max-trials(default8) — Maximum number of local search trials--max-trials-without-improvement(default3) — Stop after this many finished trials without a better score--seed(default0) — Deterministic seed for the local optimization run--output-dir— Directory for the optimization ledger and candidate artifacts--json(defaultFalse)
validate
Section titled “validate”Aliases: check
$ dn capability validate <path>Check that a capability is well-formed before publishing.
Loads and validates agents, tools, skills, MCP server, and worker definitions. Validates a single capability if the path contains capability.yaml, otherwise discovers and validates all capability subdirectories.
Options
<path>,--path(Required) — Capability directory or parent directory containing multiple capabilities.--strict(defaultFalse) — Treat warnings as failures (exit code 1).