Quickstart
Scaffold, develop, and run a capability locally in about ten minutes.
Scaffold a capability, add one tool and one agent, install it into your local runtime, and drive it from the TUI.
Prerequisites
Section titled “Prerequisites”- The Dreadnode CLI authenticated (
dn login) - Python 3.11+
- An API key configured — see Authentication
Scaffold the capability
Section titled “Scaffold the capability”dn capability init web-reconcd web-reconThe scaffold creates capability.yaml and a starter agents/example.md. Add --with-skills or --with-mcp to scaffold those folders too. Tools live under tools/ — create the directory yourself when you write the first one.
Write a tool
Section titled “Write a tool”Create tools/lookup.py:
import typing as t
from dreadnode import tool
@tooldef lookup_host( host: t.Annotated[str, "Hostname or IP to look up"],) -> dict[str, str]: """Resolve a host and return basic metadata.""" return {"host": host, "status": "reachable", "source": "stub"}Type hints become the tool schema the model sees. typing.Annotated supplies the parameter description.
Write an agent
Section titled “Write an agent”Create agents/recon.md:
---name: recondescription: Investigate a host and summarize what you found.model: anthropic/claude-sonnet-4-5-20250929tools: '*': false lookup_host: true---
You are a reconnaissance agent. Use `lookup_host` to investigate any host the user mentions and summarize the result in two sentences.The '*': false line opts the agent out of every runtime tool by default. lookup_host: true enables the one you just wrote.
Confirm the manifest
Section titled “Confirm the manifest”Open capability.yaml and make sure it looks like this:
schema: 1name: web-reconversion: 0.1.0description: Basic host reconnaissance capability.You don’t need to list agents: or tools: — the loader auto-discovers both when the keys are omitted.
Install locally
Section titled “Install locally”From the parent directory:
dn capability install ./web-reconinstall validates the manifest and symlinks the directory into your local store at ~/.dreadnode/capabilities/. Edits to the source are live on the next runtime reload.
Drive it from the TUI
Section titled “Drive it from the TUI”dnPress Ctrl+P, open the Installed tab, and enable web-recon. Start a new session with /agent recon, then send a prompt like Look up example.com. The agent calls lookup_host and returns the stubbed result.
Next steps
Section titled “Next steps”- Swap the stub tool body for a real implementation — Tools
- Add an MCP server for anything that isn’t pure Python — MCP servers
- Add a background worker to stream results out of the runtime — Workers
- Publish the capability so your team can install it — Publishing