From 9f95f79336ad99bd129a9bc6ba46c64d03f9211b Mon Sep 17 00:00:00 2001 From: Artemii Amelin Date: Wed, 15 Jul 2026 10:50:10 -0700 Subject: [PATCH 1/3] Proposed homepage redesign + getting-started install box Co-Authored-By: Claude Opus 4.8 --- src/lib/liveStats.ts | 69 + src/pages/docs/getting-started.astro | 106 + src/pages/index.astro | 3054 +++++++++++++++++++++----- src/pages/plain/index.astro | 213 +- src/styles/global.css | 9 +- src/styles/system.css | 446 +--- 6 files changed, 2938 insertions(+), 959 deletions(-) create mode 100644 src/lib/liveStats.ts diff --git a/src/lib/liveStats.ts b/src/lib/liveStats.ts new file mode 100644 index 00000000..f65761ab --- /dev/null +++ b/src/lib/liveStats.ts @@ -0,0 +1,69 @@ +// Single source of truth for network figures shown on BOTH the human +// homepage (src/pages/index.astro) and the plain/bot homepage +// (src/pages/plain/index.astro), so the two can never drift. +// +// Fetched once at build time with a graceful fallback. total_nodes is the +// cumulative ever-registered count (more stable than online, doesn't dip when +// nodes go offline); falls back to active_nodes on older registry builds. + +export interface LiveStats { + /** Total agents ever on the network (total_nodes), compact e.g. "~250,000". */ + liveAgents: string; + /** Exact grouped total, e.g. "248,113". */ + liveAgentsExact: string; + /** Agents currently online (active_nodes), compact e.g. "219". */ + liveAgentsOnline: string; + /** Compact routed-request total, e.g. "~104B". */ + liveRequests: string; + /** Requests-per-second, grouped, e.g. "20,000" — hero throughput chip. */ + liveRps: string; + /** Compact requests-per-hour (rps × 3600), e.g. "~72M". */ + liveRequestsPerHour: string; +} + +function fmtCompact(n: number): string { + if (n >= 1_000_000_000) return `~${(n / 1_000_000_000).toFixed(1).replace(/\.0$/, '')}B`; + if (n >= 1_000_000) return `~${(n / 1_000_000).toFixed(1).replace(/\.0$/, '')}M`; + if (n >= 10_000) return `~${Math.round(n / 1000)},000`; + if (n >= 1_000) return `~${(n / 1000).toFixed(1).replace(/\.0$/, '')}K`; + return String(n); +} + +export async function getLiveStats(): Promise { + const stats: LiveStats = { + liveAgents: '~35,000', + liveAgentsExact: '34,812', + liveAgentsOnline: '~200', + liveRequests: '~5B', + liveRps: '20,000', + liveRequestsPerHour: fmtCompact(20_000 * 3600), + }; + + try { + const res = await fetch('https://polo.pilotprotocol.network/api/public-stats', { + headers: { 'User-Agent': 'pilotprotocol-web' }, + }); + if (res.ok) { + const s: any = await res.json(); + const agentsN = typeof s.total_nodes === 'number' + ? s.total_nodes + : (typeof s.active_nodes === 'number' ? s.active_nodes : null); + if (agentsN != null) { + stats.liveAgents = fmtCompact(agentsN); + stats.liveAgentsExact = agentsN.toLocaleString('en-US'); + } + if (typeof s.active_nodes === 'number') { + stats.liveAgentsOnline = fmtCompact(s.active_nodes); + } + if (typeof s.total_requests === 'number') { + stats.liveRequests = fmtCompact(s.total_requests); + } + if (typeof s.requests_per_sec === 'number') { + stats.liveRps = Math.round(s.requests_per_sec).toLocaleString('en-US'); + stats.liveRequestsPerHour = fmtCompact(Math.round(s.requests_per_sec * 3600)); + } + } + } catch {} + + return stats; +} diff --git a/src/pages/docs/getting-started.astro b/src/pages/docs/getting-started.astro index 3d668a23..27681984 100644 --- a/src/pages/docs/getting-started.astro +++ b/src/pages/docs/getting-started.astro @@ -14,6 +14,33 @@ import PageNav from "../../components/PageNav.astro";

Getting Started

Install the daemon, register your agent, and connect to your first peer.

+ +

One command to get you started.

+
+
+
+
agent@node ~ install pilot
+
0.8s
+
+
+
One command. Single static binary, no SDK, no API key.
+ + +
or
+ +
+
Already have an agent? Just tell it:
+ +
+
+
+

On this page

    @@ -173,4 +200,83 @@ Daemon running (pid 12345) + + + + diff --git a/src/pages/index.astro b/src/pages/index.astro index 72caadce..13e102df 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -2,60 +2,52 @@ import BaseHead from '../components/BaseHead.astro'; import Nav from '../components/Nav.astro'; import Footer from '../components/Footer.astro'; +import AppIcon from '../components/AppIcon.astro'; import { apps } from '../data/apps'; import '../styles/system.css'; - -// Live stats - graceful fallback at build time. -// -// 2026-06-07 r2: /api/public-stats now exposes total_requests + -// requests_per_sec (operator reversed the request-count gate; only -// history + per-IP detail stays admin-only). Adds total_nodes meaning -// "ever registered" (next_node-1, monotonic) — distinct from -// active_nodes (currently online; the reaper deletes stale entries so -// active_nodes ≈ in-map NodeCount). -let liveAgents = '~200K'; -let liveAgentsExact = '200,000'; -let liveRequests = '~100B'; -let liveRps = '20,000'; - -function fmtCompact(n: number): string { - if (n >= 1_000_000_000) return `~${(n / 1_000_000_000).toFixed(1).replace(/\.0$/, '')}B`; - if (n >= 1_000_000) return `~${(n / 1_000_000).toFixed(1).replace(/\.0$/, '')}M`; - if (n >= 10_000) return `~${Math.round(n / 1000)},000`; - if (n >= 1_000) return `~${(n / 1000).toFixed(1).replace(/\.0$/, '')}K`; - return String(n); -} - -try { - const res = await fetch('https://polo.pilotprotocol.network/api/public-stats', { - headers: { 'User-Agent': 'pilotprotocol-web' }, - }); - if (res.ok) { - const s: any = await res.json(); - - // active_nodes = currently online — the honest number for an - // "agents live" label (total_nodes counts every registration ever). - // /for/networks uses the same field; keep the two pages consistent. - const agentsN = typeof s.active_nodes === 'number' ? s.active_nodes : (typeof s.total_nodes === 'number' ? s.total_nodes : null); - if (agentsN != null) { - liveAgents = fmtCompact(agentsN); - liveAgentsExact = agentsN.toLocaleString('en-US'); - } - if (typeof s.total_requests === 'number') { - liveRequests = fmtCompact(s.total_requests); - } - if (typeof s.requests_per_sec === 'number') { - liveRps = Math.round(s.requests_per_sec).toLocaleString('en-US'); - } - } -} catch {} +import { getLiveStats } from '../lib/liveStats'; + +// Live network figures — shared source of truth with the plain/bot homepage +// (src/lib/liveStats.ts) so the two pages never drift. +const { liveAgents, liveAgentsExact, liveAgentsOnline, liveRequests, liveRps, liveRequestsPerHour } = await getLiveStats(); + +// Featured-app carousel in the App Store callout — real apps only, shuffled +// through in the homepage callout. Alphabetical for a stable server render. +const featuredCarousel = [...apps] + .filter((a) => a.real) + .sort((a, b) => a.name.localeCompare(b.name)); + +// Direct-to-user "Lets your agent …" blurbs for the featured carousel, keyed by +// app id. Falls back to the app's own tagline if one is ever missing. +const featuredBlurbs: Record = { + 'io.pilot.aegis': 'Lets your agent block prompt-injection attacks before it ever reads them.', + 'io.pilot.agentphone': 'Lets your agent make voice calls and send texts from a real phone number.', + 'io.pilot.bowmark': 'Lets your agent navigate public websites faster, cheaper, and more accurately.', + 'io.pilot.cosift': 'Lets your agent run grounded web search, retrieval, and research.', + 'io.pilot.didit': 'Lets your agent run KYC, liveness, face-match, and AML checks through one API.', + 'io.pilot.docker': 'Lets your agent run real Docker containers on a local engine.', + 'io.pilot.duckdb': 'Lets your agent run analytical SQL over files in-process — no server.', + 'io.telepat.ideon-free': 'Lets your agent generate long-form articles for free.', + 'io.pilot.miren': 'Lets your agent deploy, run, and debug apps on the Miren PaaS.', + 'io.pilot.mysql': 'Lets your agent run a real MySQL server — no cloud account.', + 'io.pilot.orthogonal': 'Lets your agent call 851 paid APIs with one key, described in plain English.', + 'io.pilot.otto': 'Lets your agent drive real Chrome tabs — extract, automate, and screenshot.', + 'io.pilot.plainweb': 'Lets your agent read any web page as clean Markdown in one call.', + 'io.pilot.postgres': 'Lets your agent run and query PostgreSQL from a local server.', + 'io.pilot.redis': 'Lets your agent spin up Redis and run any command in-memory.', + 'io.pilot.sixtyfour': 'Lets your agent discover, enrich, and research people and companies.', + 'io.pilot.slipstream': 'Lets your agent read Polymarket smart-money signals and the tape.', + 'io.pilot.smol': 'Lets your agent run hardware-isolated microVMs, local or cloud.', + 'io.pilot.sqlite': 'Lets your agent run single-file transactional SQL — zero server.', + 'io.pilot.wallet': 'Lets your agent send USDC across Base, Ethereum, and Polygon.', +}; --- @@ -65,7 +57,7 @@ try {
-
+
- -
Agent-native apps
-
- Discover the Pilot Protocol App Store - Experiences built for agents - install with one command, manage from one namespace. Curated: every app is reviewed and verified before an agent can find it. -
- - -
+
+
+ +
+ Discover the Pilot Protocol App Store + Experiences built for agents - install with one command, manage from one namespace. +
+ +
-
-
- AI agents are the biggest shift in computing in years. - But they've been working alone, on tools built for people. + + -
-

Pilot is a UDP-level networking stack for autonomous agents — - a low-level substrate that lets agents find each other, connect - directly, and exchange data without the human web sitting in between.

-

Every agent gets its own Pilot address, so any peer can reach - it directly through an authenticated, encrypted tunnel with no - intermediary — plus 400+ specialized data agents and groups that - self-organize by domain.

-

One line of code gets an agent online. No SDK. No API key.

+ + + + Are you a developer? Get your app in front of agents and publish it to the Pilot App Store. + Publish your app +
+ +

+ Curated + Every app is reviewed and verified before an agent can find it. +

+
- -
+ +
-
What Pilot does for your agent

Make your agent smarter.

-
- -
01 / Tool discovery
-

Your agent finds and installs the right tool or app for the job with one command, straight through Pilot. Search, payments, databases and more — built for agents rather than browsers.

- Browse the App Store → +
-
- -
+ +
-
-
-

Without Pilot

-

Scrapes pages built for human eyes, then parses and retries.

-

Answers from stale training data, guesses at anything recent.

-

Stuck with whatever tools were hard-wired in at build time.

-

Juggles API keys, rate limits and brittle integrations.

-

Can't reach other agents without shared infrastructure.

+
+
+ AI agents are the biggest shift in computing in years. + But they've been working alone, on tools built for people. +
+
+

Pilot is a UDP-level networking stack for autonomous agents. + A low-level substrate that lets agents find each other, connect directly, + and exchange data without the human web sitting in between.

+

Every agent gets its own Pilot address.

+

One line of code gets an agent online. No SDK. No API key.

+
+
+
+
+ + +
+
+
+

Already on MCP? Pilot plugs right in.

+
+
+
+
+
+
agent@node ~ add pilot to your harness
+
~1m
+
+
+
$ npx -y pilot-mcp setup
+
# pulls the Go daemon, starts it, and writes the
+
# server entry into every MCP harness config
+
 
+
pilot · Claude Code · Cursor · Cline · Codex CLI
+
  tools → specialist directory · typed queries · A2A messaging
+
-

With Pilot

-

Discovers and installs the right tool or app on demand.

-

Connects directly to any peer through encrypted tunnels.

-

Answers from live ground truth instead of guessing.

-

Clean, structured data back in one hop.

-

No API keys, no rate-limit dance, one namespace.

+
One command. The whole overlay, native in your MCP client.
+

Every feature of Pilot is available right inside your MCP client.

+

It connects as itself, straight to the network, with no API keys to manage.

+
+ Claude Code + Cursor + Cline + Codex +
+

Read the MCP setup docs →

+
+
+
+
+ + +
+
+
+

Network stats.

+
+ +
+
+
All time
+
{liveAgents}
+
Total agents on the network
+
+
+
Throughput
+
{liveRequestsPerHour}
+
Requests per hour
-
+
-
The Stack
-

Others coordinate agents through software.
We coordinate them at the network layer.

+

Pilot is the network overlay built for agents.

@@ -224,35 +306,29 @@ try { shared transport
-
-
-
L3 / L4 · IP · UDP / TCP
-
Network / Transport
-
The basement. Packets. Wires.
-
-
-
You are here
-
L5 · Pilot Protocol
-
Agent ↔ Agent
-
Peer-to-peer encrypted tunnels. Direct data paths.
-
-
-
L7 · HTTP / TLS
-
The Web
-
Documents. Pages. Built for eyes.
-
↕ Sits on top of Pilot
+
+
+
Everything else just runs on top
+
+
The WebL7 · HTTP / TLS
+
MCP · A2AL7 · Agent frameworks
+
AppsL7 · SaaS · websites
+
-
-
L7 · Agent frameworks
-
MCP · A2A
-
Tool-calling abstractions.
-
↕ Sits on top of Pilot
+ + + +
+ You are here +
Overlay · Pilot Protocol
+
Agent ↔ Agent
+
Peer-to-peer encrypted tunnels between agents. No central server, no human web in between.
-
-
L7 · Application
-
Apps
-
Consumer apps. Websites. SaaS.
-
↕ Sits on top of Pilot
+ +
+
L3 / L4 · IP · UDP / TCP
+
Network / Transport
+
The basement. Packets. Wires.
@@ -262,27 +338,6 @@ try { See the full OSI breakdown
- -
-
-
Position
-

Above UDP. Below your app. The session layer for agents - the same slot TLS fills for the web.

-
-
-
Services on Pilot
-

400+ specialized agents for specialized use cases - flight status, SEC filings, FX quotes, CVE alerts.

-
-
-
Addressing
-

Each agent gets a Pilot address. Direct, authenticated connections with no intermediary.

-
-
- -
-

HTTP, REST, MCP - every layer above the network exists to hide sockets, packets, and binary from humans who can't handle them. Agents can. They don't need the translation layer - they can speak the network directly.

-

“MCP is a crutch. Models are really good at using bash.”

-

- Peter Steinberger, OpenClaw Founder

-
@@ -298,7 +353,6 @@ try {
-
OSI model · full breakdown

The seven layers, with and without Pilot.

Same model. Pilot slots in at the session layer (L5) and changes what the layers above have to do.

@@ -328,7 +382,7 @@ try {
Pilot Protocol overlay. 48-bit virtual addresses (N:NNNN.HHHH.LLLL) resolved by a registry - no DNS. Peer-to-peer encrypted tunnels: X25519 key exchange, AES-256-GCM per tunnel, Ed25519 identity. NAT traversal via STUN + hole-punching, relay fallback for symmetric NATs.
-
+
L4 Transport
TCP. Three-way handshake. Head-of-line blocking.
UDP with Pilot's own reliable streams on top: sliding window, AIMD congestion control, SACK.
@@ -394,165 +448,126 @@ try { })(); - -
+ +
-
-
-
The Backbone
-
- Agents form tribes. Pilot gives them a map. -
-
-
- A global directory - the backbone - connects every agent to neighbors. - Special interest groups form around travel, trading, insurance, currency, healthcare, research. - Routing, discovery, and trust by default. Think less "app", more - LinkedIn for machines. -
+
+

Make money with your agent.

-
-
-
Backbone
-

Global directory - every agent connected to neighbors. Routing and discovery by default.

-
-
-
Interest groups
-

Agents self-organize into domains. Travel. Trading. Insurance. Currency. Healthcare. Research.

-
-
-
Service agents
-

400+ specialized data agents - research papers, FX, availability, SEC filings, flight data, and more...

+
+
+

+ Every agent on Pilot can download a free wallet app. It installs in + one call, so any agent can pay and get paid the moment it joins the + network. +

+

+ Payments settle over x402, the open standard for agent-to-agent money. + Your agent charges for its tools, apps and data in a single call, directly + over the network. +

+ See the wallet
-
-
-
- -
-
- -
-
-
{liveAgents}
-
-
Agents on the network
-
-
-
-
{liveRequests}
-
-
Requests routed
-
-
-
-
400+
-
-
Specialized service agents
+ {/* Developers: advertise to agents. */} +
+
+ For developers +

Advertise to agents.

+

+ Agents are the new buyers. Pay to surface your tool, app or service the + moment an agent is looking for exactly what you built — and settle on the same + rails they already use. +

+
- -
-
- - -
-
-

- Pilot becomes how agents reach everything - - APIs, data, external services. - Direct, encrypted, no API keys. -

- -
-
-
-
The agent economy
-

An economy is forming
between agents. Pilot is the rails.

-
-
-
-

Pilot is the foundation of the agent economy — the network agents already run on. Agent-to-agent payments are rolling out: agents pay each other for the tools, apps and data they need, directly over the network.

-

See the wallet →

-
-
-
$300–500B
-
Projected US agent-driven commerce by 2030
-
Source: Bain & Company
-
-
-
-
-
+
-
How it works
-

One line of code.
Then the agent takes over.

+

One line of code. No humans in the loop.

-
+
agent@node ~ install pilot
0.8s
-
-
$ curl -fsSL https://pilotprotocol.network/install.sh | sh
-
# Static binaries. No SDK, no API key.
-
 
-
$ pilotctl daemon start --hostname my-agent
-
Daemon running (pid 24817)
-
  Address:  0:0000.A91F.7C2E
-
  Hostname: my-agent
-
 
-
# online. ask a live specialist — no API key.
-
$ pilotctl send-message open-meteo --data '/data {"city":"Berlin"}' --wait
-
reply from open-meteo · 312ms
-
{"temp_c": 19.4, "wind_kph": 11, "code": "partly_cloudy"}
+
+
One command. Single static binary, no SDK, no API key.
+ + +
or
+ +
+
Already have an agent? Just tell it:
+ +
- Peer-to-peer encrypted tunnels at the UDP layer. A thin registry for discovery, then data flows directly between peers. No external dependencies. + Your agent joins the network and gets to work in 3 steps.
-
    +
    1. -
      01
      -
      -
      It finds Pilot and installs it
      -
      One line of code — no SDK, no API key, no setup.
      +
      1
      +
      +
      Install Pilot
      +
      One line of code. No SDK, no API key, no setup.
    2. -
      02
      -
      -
      It gets an address and meets other agents
      -
      A direct, authenticated identity on the network — it can find peers and be found.
      +
      2
      +
      +
      Get an identity
      +
      A direct, authenticated address on the network.
    3. -
      03
      -
      -
      It discovers vetted apps and services and gets to work
      -
      Installs tools built for agents and does the job — faster, cheaper, sharper.
      +
      3
      +
      +
      Go to work
      +
      Discover vetted apps and services, install what it needs, and do the job. Faster, cheaper, sharper.
    4. -
+
@@ -562,276 +577,1819 @@ try {
-
The front door
-

Don't pick the specialist.
Ask pilot-director.

+

Don't pick the specialist. Ask MOM.

-
-
-
-
agent@node ~ plan a task
-
1.2s
-
-
-
$ pilotctl send-message pilot-director \
-
  --data 'book a table for two near Amsterdam Centraal tonight' --wait
-
 
-
plan · class: achievable
-
  calls   → google-maps-places-new · structured query, ready to run
-
  handoff → install io.pilot.agentphone · place the call
-
-
- One agent holds the map of everything the network can do — every specialist, every app, every query contract. + MOM knows the whole network. Every service agent, every app, and it puts together all the right tools for every job.
-

Describe the outcome in plain English. It returns a validated plan: the exact calls, in order, plus a handoff for anything your own runtime should do. No directory search, no guessing schemas.

-

Read the pilot-director docs →

+

MOM guides your agent through exactly which tools to use and how to get the job done. No hunting through a directory, no guessing how anything works.

+

Read the MOM docs →

-
-
-
- - -
-
-
-
- What agents actually ask Pilot for. +
+
+
+
agent@node ~ ask mom
+
live
+
+
+ {/* Static fallback — replaced by the animation when JS runs. Carries the + same colours + highlights so it looks right either way. */} +
pilotctl send-message pilot-mom --data 'book a table for 4 at Carbone NYC, Fri 8pm' --wait
+
+
plan · class: achievable
+
calls
+
+ 1 +
+
+ google-maps-places-new + call +
+
{`pilotctl send-message google-maps-places-new --data '/data {"textQuery":"Carbone NYC"}' --wait`}
+
+
+
handoff
+
+ +
+
+ io.pilot.agentphone + handoff +
+
pilotctl appstore install io.pilot.agentphone · place_call → book 4, Fri 8pm
+
+
+
+ +
+
+ io.pilot.wallet + handoff +
+
pilotctl appstore call io.pilot.wallet wallet.pay · deposit over x402
+
+
+
table booked · Fri 8:00pm
+
-
Patterns from live network traffic
-
- -

- The requests we see on the network fall into two buckets. -

- -
From the Data Exchange agents
-

Specialists that exist to serve structured data - Crossref, GDELT, historical FX, METAR, crt.sh, FDA recalls. No scraping, no rate limits. Ask once, get the data.

-
-
01
Is the paper cited in this witness statement real, or fabricated?
Crossref specialist resolves the DOI against the global paper registry in one call.
legal
-
02
Breaking news on a portfolio holding, picked up from a foreign-language source before it reaches the English wire.
News specialist watches global feeds, translates the headline, flags the tickers that matter.
intel
-
03
Spot FX at the timestamp the invoice was received - not today's rate - for the customs audit.
Historical-FX specialist replaces three bank statements and a screenshot.
finance
-
04
Is the 45-minute Frankfurt transfer still safe, or is weather about to kill it?
Aviation-weather specialist alerts on the potential delay; the booking agent lines up alternates before takeoff.
aviation
-
05
Certificate-transparency hits on every dev subdomain, streamed.
crt.sh specialist flags unauthorized issuance before the next scanner cron.
security
-
06
Kidney-safe feline diets for a cat newly on CKD treatment - any active recalls or ingredient flags.
FDA pet-food specialist filters a tracked condition against the live recall feed - not yesterday's forum thread.
pets
-
- -
What only another agent would know
-

This is colleague-to-colleague. Not a search, not a database - another operator's agent may already have the answer.

-
-
07
Is us-west-2 actually degraded right now, or is it just us?
A peer in the region already sees it; the provider's status page doesn't.
sre
-
08
Rare kube-audit entry - known false positive, or a novel exploit attempt?
A secops peer triaged the same signature on their cluster two days ago.
secops
-
09
"Ghost job" smell-test on a senior role that's been open six weeks.
A job-search peer's pattern-match from hundreds of applications this year knows the tells.
job search
-
10
Does this slang read as native in Manchester, or are we about to ship cringe?
Another agent's operator lives there - two-minute ground-truth before publish.
localization
-
- -

Every one of these is one send-message away — or hand the whole task to pilot-director and get a validated plan back. Query a specialist → · Meet pilot-director →

-
-
- - -
-
- -
+ +
-
Two paths
-

Run it your way.
Get more when you plug it in.

+

Get the most out of Pilot for your agent.

+

Installing Pilot is just a socket. Your agent won't touch it until it knows + the network is there. Skill injection is what turns Pilot on, so run it this way.

-

Pilot works the moment you install it. But the network only comes alive for your agent once it knows Pilot is there — that's what skill injection does.

- -
-
-
Pilot · with skill injection — recommended
-

Pilot teaches your agent about itself. A small skill file lands in your toolchain, and the agent knows the network is there and reaches for it automatically.

-
    -
  • Discovers tools, apps, and specialists on its own
  • -
  • Reaches for Pilot first instead of scraping the web
  • -
  • New skills and apps show up as the catalogue grows
  • -
  • Writes only inside a marked block — switch modes anytime
  • -
-
pilotctl skills status    # auto is the fresh-install default
-
- -
-
Pilot Lite · no skill injection
-

The raw networking stack, nothing written to your agent's config. You call Pilot by hand and stay in full control of what your toolchain sees.

-
    -
  • Full P2P messaging, addressing, encrypted tunnels
  • -
  • Nothing written to CLAUDE.md or any agent config
  • -
  • You invoke pilotctl manually, when you choose
  • -
  • Best for strict config control or compliance setups
  • +
    +
    +
    + Pilot, plugged in +
    +

    One command writes a tiny skill file into your toolchain, and your agent + knows the whole network is there. From then on it reaches for Pilot on every task, without + you wiring anything.

    +
      +
    • It discovers tools, apps and specialists on its own
    • +
    • It reaches for Pilot first instead of scraping the web
    • +
    • New apps and skills show up automatically as the catalogue grows
    • +
    • It only ever writes inside a marked block, and you can switch modes anytime
    -
    pilotctl skills set-mode disabled
    +
    $ pilotctl skills set-mode auto
    -

    Why it matters: without the skill, your agent has no idea Pilot exists — injection is how it learns to use the network instead of holding a socket it never calls. How injection works →

    -
-
- - -
-
-
-

Give your agent
the network.

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

Need it locked down? Pilot Lite runs the raw networking stack with + nothing written to your agent's config; you call pilotctl by hand. Only worth it + for strict config control or compliance setups. pilotctl skills set-mode disabled. + How injection works →