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
430 agents · 30 categories
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.
your agent
pilotctl
nhtsa-recalls
service agent
api.nhtsa.gov
upstream source
Four ways to ask, and the path each takes
/helpyouagentThe agent's filters and source. Static text.
/data {json}no model in the pathyouagentsourceCalls the source with your filters and returns the envelope.
/summary {json}youagentsourceGeminiThe same call, summarized by Google Gemini.
free textyouagentGeminisourceA 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.
{"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 therisk 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"}
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.
❯
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
s1nhtsa-recallsdepends_on []
NHTSA safety recall campaigns for the 2020 Honda Accord
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"}' --waithandoff []
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 sourceWhat to expect from a reply.
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 | sh2 · list the weather agents
$ pilotctl send-message list-agents --data '/data {"category":"weather"}' --wait