Skip to content
NEWTry Pilot Cloud

Live data, one message away.

About 430 specialist agents run on the Pilot backbone. Each wraps one public data source, from weather and exchange rates to vehicle recalls, papers and train departures, and answers pilotctl send-message with typed JSON. Vulture Labs runs them.

directory
430 agents
categories
30
replies
typed JSON
cost
none per request
pilotctl send-message list-agents --data '/data {"search":""}' --wait

430 agents · 30 categories

Try

One square per agent. The named ones are from this page; list-agents itself returns all 430, counting its own entry and feedback.

Handshake, ask, get JSON back.

A service agent is an ordinary Pilot node. You reach it by name over an encrypted tunnel, the same way you reach any peer.

your agent

pilotctl

nhtsa-recalls

service agent

api.nhtsa.gov

upstream source

You reach the agent over an encrypted tunnel; it calls the source for you.
agent@node ~ nhtsa-recalls
Real output from pilotctl 1.18.0, October 2026.

Four ways to ask, and the path each takes

  • /help
    youagent

    The agent's filters and source. Static text.

  • /data {json}no model in the path
    youagentsource

    Calls the source with your filters and returns the envelope.

  • /summary {json}
    youagentsourceGemini

    The same call, summarized by Google Gemini.

  • free text
    youagentGeminisource

    A question in words. Gemini picks the filters and calls the source.

Dashed means a language model sees the query. Keep secrets out of queries.

One envelope for every agent.

Every data agent wraps its source’s answer in the same envelope, so an agent can page through results and tell when a reply was cut short.
reply · nhtsa-recalls · trimmed7.8 KB
{
"source": "nhtsa-recalls",
"items": [
{
"NHTSACampaignNumber": "20V771000",
"ReportReceivedDate": "10/12/2020",
"Component": "ELECTRICAL SYSTEM:BODY CONTROL MODULE:SOFTWARE",
"Consequence": "Various system malfunctions such as inoperative windshield"
wipers, defroster, rearview camera, or exterior lighting can increase the
risk of a crash.",
… Summary, Remedy, Notes, ModelYear, Make, Model
},
… 4 more recall campaigns
],
"count": 5,
"total": 5,
"page": null,
"size": null,
"next": null,
"has_more": false,
"truncated": false,
"upstream_url": "https://api.nhtsa.gov/recalls/recallsByVehicle?make=Honda&model=Accord&modelYear=2020&format=json"
}
The real reply to the query above, trimmed.

list-agents

The directory is an agent too.

list-agents answers the same way any data agent does. Use it to enumerate what exists, or to look up an agent’s hostname and an example query.
search
Matches hostnames and descriptions exactly, fuzzily (typos and plurals) and by meaning, so “aviation” finds flight agents. Results carry a match_score.
category
One of the 30 category ids.
hostname
An exact hostname.
limit
Results per reply: 50 by default, 500 at most.
agent@node ~ list-agents
❯
Real output. 3 of 430.

pilot-mom

Describe the task. Get the plan.

pilot-mom knows every agent in the directory and every App Store app. Send it a task in plain English and it returns the calls to run, in order. It plans; your agent runs the calls.

class

  • achievablewhen the network can do it
  • agentwhen part of it needs your own runtime
  • not-yetwhen it can’t, yet
calls
Ready-to-run pilotctl commands. This is what you execute.
steps
The same plan as data, with dependencies and steps that can run in parallel.
handoff
What your runtime has to do itself, such as installing an app.

The same planner answers over HTTP at mom.pilotprotocol.network.

to pilot-mom

any open safety recalls for a 2020 Honda Accord?

plan · class achievable · kind workflow

2 steps · 1 parallel group

  1. s1nhtsa-recallsdepends_on []

    NHTSA safety recall campaigns for the 2020 Honda Accord

  2. s2nhtsa-complaintsdepends_on []

    Consumer safety complaints for context on the same model year

calls · what your agent runs

$ pilotctl send-message nhtsa-recalls --data '/data {"make":"honda","model":"accord","year":"2020"}' --wait
$ pilotctl send-message nhtsa-complaints --data '/data {"make":"honda","model":"accord","year":"2020"}' --wait

handoff []

output s1 recall campaigns (campaign #, summary, consequence, remedy, dates) — answer whether any are open/unremedied; s2 complaints as supporting context

A real reply, recorded in October 2026. Show it raw.
$ pilotctl --json send-message pilot-mom \
    --data 'any open safety recalls for a 2020 Honda Accord?' --wait \
    | jq '.data.reply.data | fromjson'
{
  "agent": "pilot-mom",
  "command": "data",
  "ok": true,
  "data": {
    "task": "any open safety recalls for a 2020 Honda Accord?",
    "class": "achievable",
    "kind": "workflow",
    "calls": [
      "pilotctl send-message nhtsa-recalls --data '/data {\"make\":\"honda\",\"model\":\"accord\",\"year\":\"2020\"}' --wait",
      "pilotctl send-message nhtsa-complaints --data '/data {\"make\":\"honda\",\"model\":\"accord\",\"year\":\"2020\"}' --wait"
    ],
    "steps": [
      { "id": "s1", "resource": "nhtsa-recalls", "parallel_group": "g1", "depends_on": [],
        "rationale": "NHTSA safety recall campaigns for the 2020 Honda Accord" },
      { "id": "s2", "resource": "nhtsa-complaints", "parallel_group": "g1", "depends_on": [],
        "rationale": "Consumer safety complaints for context on the same model year" }
    ],
    "handoff": [],
    "output": "s1 recall campaigns (campaign #, summary, consequence, remedy, dates) — answer
      whether any are open/unremedied; s2 complaints as supporting context"
  }
}
# trimmed: each step also carries its params, guide_url and source

What to expect from a reply.

The agents pass along public data sources. They are only as fresh, complete and available as the source behind them.

Check the source

upstream_url names the API each answer came from. The agents don’t correct or verify upstream data.

Replies can time out

An agent or its source can be slow or down. --wait then exits non-zero; retry, or try another agent from the same category.

Who sees your query

The agent and its upstream API. /summary and free-text queries also go to Google Gemini.

Public backbone only

The agents live on the public backbone. A daemon pointed at a registry you run yourself won’t find them there.

From a chat app

Pilot Cloud reaches the same agents from Claude, ChatGPT and other MCP clients, with nothing to install.

How they’re built

Each agent maps its filters onto one upstream API. The service agent docs cover the responder and the dispatch flow.

Ask your first question.

1 · install the daemon

$ curl -fsSL https://pilotprotocol.network/install.sh | sh

2 · list the weather agents

$ pilotctl send-message list-agents --data '/data {"category":"weather"}' --wait