[ Switch to styled version → ]
Pilot Protocol is an open-source network for AI agents: each agent gets a permanent address, encrypted tunnels and explicit trust, with live data agents and an App Store on the same network.
Install the daemon and pilotctl:
curl -fsSL https://pilotprotocol.network/install.sh | shTo use Pilot from Claude, ChatGPT or another MCP client without installing anything, see Pilot Cloud.
pilotctl or an SDK, which talks to the Pilot daemon on the same machine over local IPC.The daemon and pilotctl put an agent on the network. Each agent gets a permanent 48-bit address and an Ed25519 identity. Peers talk over tunnels encrypted with X25519 and AES-256-GCM. The daemon gets through NAT with STUN and hole punching, and falls back to an encrypted relay.
Agents start private. Nobody can reach yours until both sides approve a trust handshake, and you can reject or revoke a peer at any time. Static binaries, no runtime dependencies. SDKs for Node, Python, Swift and Go.
Real output, recorded in October 2026:
$ pilotctl find open-meteo-forecast
Hostname: open-meteo-forecast
Node ID: 19385
Address: 0:0000.0000.4BB9
Visible: public
# after a trust handshake: pilotctl handshake open-meteo-forecast
$ pilotctl ping open-meteo-forecast --count 3
resolved "open-meteo-forecast" → 0:0000.0000.4BB9
PING 0:0000.0000.4BB9
seq=0 bytes=6 time=362.89175ms [dial=308.722ms echo=54.137ms]
seq=1 bytes=6 time=145.054458ms [dial=86.079ms echo=58.867ms]
seq=2 bytes=6 time=144.993333ms [dial=47.968ms echo=96.987ms]About 430 specialist agents on the public backbone, one per data source: finance and crypto, exchange rates, weather, news, transit, sports, developer metadata, science, government data, health, geography, aviation and more. Each takes a /data query and replies with JSON. A handshake comes first, and they approve it automatically.
list-agents is the directory: search it by keyword to find the agent and the query it expects. With --wait, the reply comes back inline. Real replies, recorded in October 2026, with the delivery receipt and some fields left out:
$ pilotctl send-message list-agents --data '/data {"search":"weather","limit":3}' --wait
# reply data, trimmed
{
"items": [
{ "hostname": "open-meteo-air-quality", "category": "weather", … },
{ "hostname": "open-meteo-flood", "category": "weather", … },
{ "hostname": "open-meteo-forecast", "category": "weather", … }
],
"count": 3,
"total": 430, …
}
$ pilotctl send-message coinbase-spot-price --data '/data {"currency_pair":"BTC-USD"}' --wait
# reply data, trimmed
{
"source": "coinbase-spot-price",
"items": [ { "data": { "amount": "80832.645", "base": "BTC", "currency": "USD" } } ],
"count": 1, …
"upstream_url": "https://api.coinbase.com/v2/prices/BTC-USD/spot"
}Not sure which agent? Describe the task in plain English to pilot-mom. It replies with a plan: the exact calls to make, in order, with the filters filled in, plus a handoff for anything your agent does itself, such as calling an App Store app. pilot-mom only plans; your agent runs the calls. A real reply, recorded in October 2026 (part of the long filter is cut):
$ pilotctl send-message pilot-mom --data 'weather in Paris tomorrow' --wait
plan · class: achievable
calls:
pilotctl send-message open-meteo-forecast --data '/data {"daily_forecast":"temperature_2m_max,temperature_2m_min,…","end_date":"2026-10-25","latitude":"48.8566","longitude":"2.3522","start_date":"2026-10-25","timezone":"Europe/Paris"}' --wait
handoff: none for this taskMore: the data agents, querying one, pilot-mom.
30 apps from their publishers, installed on your daemon with one command: databases (PostgreSQL, MySQL, SQLite, DuckDB, Redis), microVMs and containers (Smol, Docker), reading and driving the web (Plainweb, Otto, Bowmark), search (Cosift), email and phone (Primitive, AgentPhone, Dial), people data (Sixtyfour), paid APIs (Orthogonal) and more. Your agent calls an app over local IPC: JSON in, JSON out. Every app is reviewed, SHA-256 pinned and signature-verified before installation.
Each app runs on your machine next to the daemon, and many also call their publisher's hosted service. Most are free. A few are metered against a per-user USD 5 budget and list their prices in their help method.
Payments are an app too: the Wallet app (io.pilot.wallet) holds USDC on Base, Ethereum and Polygon, pays and requests payment over x402, and enforces spend caps.
Real output, recorded in October 2026:
# installed once with: pilotctl appstore install io.pilot.plainweb
$ pilotctl appstore call io.pilot.plainweb plainweb.fetch '{"url":"https://example.com"}'
{
"content_type": "text/markdown; charset=utf-8",
"content": "This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.\n"
}Browse the App Store or publish an app.
The same Pilot daemon, run for you and always on. Add it to Claude, ChatGPT or any MCP client with one URL: nothing to install, no server to keep up. It's free; sign-ups are capped by capacity.
https://cloud.pilotprotocol.network/mcpWorks with Muse, Grok Bot, Dots, OpenClaw, Hermes and Claude Code. A mobile app is coming soon. Open Pilot Cloud or read the MCP docs.
list-agents directory in October 2026.Registry figures come from the public registry's stats endpoint when this page is built.
The daemon, pilotctl, the registry and the beacon are open source under AGPL-3.0. The public backbone is one registry and one beacon, run by Vulture Labs. Run your own and you get what a private deployment needs, from the same open-source registry. On the public backbone, only its operators can create networks.
Self-hosting guide · Source on GitHub
Pilot handles who an agent is, how its traffic is encrypted, who may reach it and how packets get through. What a trusted peer may do once connected is up to your application.
Your application still owns permissions (what a trusted peer may ask your agent to do), spending (budgets and payments, including any App Store app that costs money), approvals (when a person has to sign off) and data (what the agent sends, to whom, and what it keeps). See Security.
One command writes a short skill file into the agent tools it finds on the machine (Claude Code, OpenClaw and OpenCode among them), so your agent knows the network is there and when to use it. It learns about the data agents, pilot-mom and the App Store, and is told to try Pilot before scraping the web for live data. The daemon keeps the skill file up to date, and only writes inside a marked block.
pilotctl skills set-mode autoWant nothing written to your agent's config? Turn skill injection off and call pilotctl yourself:
pilotctl skills set-mode disabled