Quickstart
Get from zero to publishing and discovering an agent record in a few minutes. This is the only page on the docs site with CLI installation instructions.
Install the CLI
brew tap agntcy/dir https://github.com/agntcy/dir
brew trust agntcy/dir
brew install dirctl
curl -L https://github.com/agntcy/dir/releases/latest/download/dirctl-linux-amd64 -o dirctl
chmod +x dirctl
sudo mv dirctl /usr/local/bin/
git clone https://github.com/agntcy/dir
cd dir
task cli:compile
docker pull ghcr.io/agntcy/dir-ctl:latest
docker run --rm ghcr.io/agntcy/dir-ctl:latest --help
Set up your environment
Run the guided first-run setup once after installing. It provisions the OASF taxonomy extractor (a ~89 MB model plus the taxonomy) for local, LLM-free record enrichment and future free-text search:
dirctl init
In an interactive terminal the prompt defaults to yes — press Enter to provision.
In non-interactive contexts (CI, pipes) pass --yes. See the
CLI reference for flags and --remove.
Start a local node
The built-in daemon runs a full local Directory node with no external dependencies:
dirctl daemon start
Note
The daemon stores the data under ~/.agntcy/dir/ and exposes the following services locally:
- HTTP API and dashboard on
localhost:8889for real-time visibility into node's data - gRPC DIR API on
localhost:8888for client integrations - DHT API on
localhost:8999for network announcements - OCI registry on
localhost:5555for content-addressed storage
Check Local Deployment for configuration and platform details. For production deployments, see Deploy guides.
Publish a record
-
Create a minimal OASF record (or use the OASF Record Sample generator):
cat <<'EOF' > record.json { "name": "https://example.com/agents/quickstart-agent", "version": "v1.0.0", "description": "Quickstart example agent", "schema_version": "1.0.0", "annotations": { "owner": "alice" }, "skills": [ { "id": 201, "name": "images_computer_vision/image_segmentation" } ], "authors": ["Quickstart"], "created_at": "2025-08-11T16:20:37.159072Z", "locators": [ { "type": "source_code", "urls": ["https://github.com/agntcy/oasf/blob/main/record"] } ] } EOF -
Store the record locally and capture its CID:
CID=$(dirctl push record.json --output raw) echo "Stored: $CID" -
Announce it on the network for discovery:
dirctl routing publish "$CID"
Sign and verify
Records are unsigned by default. To ensure trust between publishers and consumers, Directory supports signing and verification of records.
-
Sign a record with OIDC-based identity:
dirctl sign "$CID" -
Verify the signature and integrity of a record:
dirctl verify "$CID"
Discovery
Directory supports multiple discovery modes. Depending on the use case, you can search locally or across the network.
Local discovery
Search the local store for records matching a skill:
dirctl search --skill "*vision*"
dirctl search --annotation 'owner:*'
Network discovery
The quickstart runs a single local Directory node, so the published record lives on this peer. To list records announced by this peer, use:
dirctl routing list --skill "images_computer_vision"
dirctl pull "$CID" --output json
In addition, Directory supports searching the network for records matching a given criteria. To discover records announced by other peers across a network or federation, use:
dirctl routing search --skill "images_computer_vision"
Note
Since network-wide search queries the cached network announcements and deliberately excludes local records; it returns nothing in a single-node setup.
Next steps
- Features and Usage Scenarios — capability tour and workflows
- Architecture — how Directory fits together
- Local / Kubernetes / Production deployment
- Federation — join or run a federated network
- SDKs — Go, Python, and JavaScript clients
- CLI Reference — full
dirctlcommand reference - API Reference — gRPC/protobuf protocol surface