Use when the user asks to discover, browse, search, suggest, recommend, or install agents and agentic resources. Author, validate, or import OASF records; push, sign, and publish records; discover, search, browse, suggest, or recommend agents like MCP servers, A2A agents, or agent skills; claim and prove record ownership or identity (DNS, HTTPS, DID, SPIFFE, ANS); verify signatures, ownership claims, or security scans; list running agent workloads; configure node content policies and prune jobs; synchronize data between servers; or install/uninstall agents and agentic resources into coding agents like VS Code Copilot, Claude Code, or Cursor.
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
The AGNTCY Directory (DIR) is a distributed, peer-to-peer registry of AI agent records described in OASF. Records are content-addressed by CID and carry skills, domains, modules (MCP, A2A, Agent Skills), locators, signatures, and security scan results.
This skill turns natural-language requests into dirctl workflows. It is a
router: read the matching reference file below before acting on a
workflow. Read more than one when the request spans workflows (e.g. "import
and publish" → authoring + publishing).
| User intent (examples) | Read first |
|---|---|
| "install dirctl", "set up a local directory", "start the daemon", "configure contexts", "connection issues" | references/setup.md |
| "log in", "am I authenticated?", "switch to another directory node", "permission denied / forbidden" | references/setup.md |
| "create a record", "validate my record", "import MCP servers / A2A cards / skills into DIR" | references/authoring.md |
| "push", "publish to the network", "sign my record" | references/publishing.md |
| "prove I own this", "claim ownership", "publish my key", "why is my claim failed/not verified" | references/identity.md |
| "find/search/suggest agents, MCP servers, skills", "browse the directory", "pull a record" | references/discovery.md |
| "what agents are running", "find a running workload", "agents reachable over SLIM" | references/discovery.md |
| "is this record signed/safe/verified?", "check scan reports", "verify signature" | references/verification.md |
| "sync with another directory", "mirror records", "sync from a public registry/GHCR" | references/sync.md |
| "install into my editor/agent", "uninstall", "export as mcp.json / SKILL.md / A2A card" | references/install.md |
| "content policy", "hide/block records on my node", "shadow/enforce", "prune untrusted records", "upgrade my node to v1.8" | references/policy.md |
<cid>, <name>, <name>:<version>, <name>@<cid>, <name>:<version>@<cid> (the @<cid> forms are hash-verified and fail on mismatch).integration/mcp (MCP server), integration/a2a (A2A card), core/language_model/agentskills (Agent Skill).container_image, source_code, helm_chart, binary, …; each with a urls list).dns:example.com, did:web:…, spiffe://…, ans://…), declared in the agntcy.dir/owner / agntcy.dir/identity annotations. A claim is a signature by that subject's key; the reconciler re-verifies it against the subject's published keys on every run. Record names are not verified — claims are.dirctl must be on PATH — probe with dirctl version (works in every
shell; POSIX: command -v dirctl, PowerShell: Get-Command dirctl). If
missing, follow the install section of
references/setup.md — never suggest building from
source.
A reachable Directory server is required for everything except context,
validate, version, and the local-state install commands (install agents,
install list, install pin, install unpin, install prune, uninstall). Default is localhost:8888 (local
daemon). Server selection order: --context <name> flag →
DIRECTORY_CLIENT_CONTEXT → current_context in config → --server-addr /
DIRECTORY_CLIENT_SERVER_ADDRESS overrides.
-o json (or -o jsonl for streams) when
you need to read results; -o raw for CIDs in shell pipelines. Structured
formats write data to stdout and messages to stderr, so piping to jq is
safe. validate, context, auth, daemon, and version do
not take -o./ and :.install, init, NL search), check dirctl <cmd> --help;
if absent, use the documented fallback in the relevant reference file.auth login,
--auth-mode, --auth-token).auth status
says nothing about what the user may do. Gateways enforce per-method
access control, so PermissionDenied / Forbidden on push, sign,
routing publish, delete, or sync is an entitlement problem — logging in
again cannot fix it. Name the denied method, say it needs elevated rights on
that deployment, and stop; only Unauthenticated and expired-token errors
are login problems.delete, uninstall, sync delete, --force, a
reconciler prune job with dry_run: false, switching a content policy to
enforce): always confirm with the user first.dirctl ships for Linux and macOS (amd64 + arm64) and Windows
(amd64 only — no windows-arm64 build; the binary is dirctl.exe). Homebrew
covers macOS/Linux only; on Windows install from GitHub Releases (see setup
reference). dirctl behaves identically everywhere — only the wrapping shell
syntax and paths differ.
Emit commands for the shell the host actually runs — never assume bash. Code blocks in this skill are written for POSIX shells (bash/zsh) and run as-is on Linux/macOS. On Windows (PowerShell), translate before running:
| bash idiom | PowerShell equivalent |
|---|---|
CID=$(dirctl … -o raw) … "$CID" | $CID = dirctl … -o raw … $CID |
for f in ./out/*.json; do … done | Get-ChildItem ./out/*.json | ForEach-Object { … $_.FullName … } |
command -v dirctl | Get-Command dirctl |
mktemp | (New-TemporaryFile).FullName |
chmod +x dirctl | not needed (.exe) |
cmd1 && cmd2 | run sequentially as separate commands |
Path rules: ~ in this skill means the user's home directory —
%USERPROFILE% on Windows (e.g. ~/.agntcy/dir/ →
%USERPROFILE%\.agntcy\dir\). When unsure where the effective client config
lives, run dirctl context show instead of guessing paths.
Maximize the host's native capabilities; degrade gracefully:
| Capability | VS Code Copilot | Claude Code | Copilot CLI / other CLIs |
|---|---|---|---|
| Confirm selections & choices | ask-questions tool (question card with options) | AskUserQuestion tool | Plain-text numbered list; wait for reply |
| Display result sets | Markdown table | Markdown table | Markdown table (narrow columns) |
| File links in summaries | Clickable relative Markdown links | Plain paths | Plain paths |
| Post-install activation | Suggest "MCP: List Servers" → restart | Suggest restarting the session | Suggest restarting the tool |
Other agentic hosts (Cursor, Windsurf, Zed, Cline, Roo, Gemini CLI, opencode, Continue, Codex, …) are not listed per-column — detect capabilities instead of matching product names: if an interactive question tool exists, use it; otherwise behave like the CLI column. You generally know which host you are running in; when you don't, infer it from your available tools, not from guesses.
Rules:
init downloads ~89 MB; imports and syncs can run
minutes): warn the user before starting and report progress from command
output.vscode,
Claude Code → claude-code, Cursor → cursor), default installs to that
host's agent ID (see install reference).--yes for init and install, authenticate via
DIRECTORY_CLIENT_AUTH_TOKEN or auth login --device / --no-browser, and
when a decision genuinely requires a human, fail fast with a clear message
instead of waiting.agntcy/dir
.skill/SKILL.md
9fd9150
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.