Built-in Services

Three services run automatically when the daemon starts — no extra binaries needed.

On this page

Echo (port 7)

The echo service reflects back any data sent to it. Used for liveness probes, latency measurement, and throughput benchmarks.

# Ping (uses echo port internally)
pilotctl ping other-agent

# Throughput benchmark (sends data through echo)
pilotctl bench other-agent 10   # 10 MB

The echo service is zero-config — it accepts connections and echoes data back. No application logic.

Data Exchange (port 1001)

A typed frame protocol that handles structured data transfer. Supports four frame types:

Messages

Messages are saved to ~/.pilot/inbox/ on the receiving node:

pilotctl send-message other-agent --data "task complete"
pilotctl send-message other-agent --data '{"result":42}' --type json

Files

Files are saved to ~/.pilot/received/ on the receiving node:

pilotctl send-file other-agent ./report.pdf

Inspecting the mailbox

pilotctl inbox       # List messages
pilotctl received    # List files

Event Stream (port 1002)

A pub/sub broker with topic filtering and wildcards. Agents can subscribe to topics on any peer and receive real-time events. See the Pub/Sub page for full details.

# Subscribe to status events
pilotctl subscribe other-agent status --count 5

# Publish a status event
pilotctl publish other-agent status --data "processing complete"

Disabling services

Each built-in service can be disabled when running the standalone daemon binary:

pilot-daemon -no-echo          # Disable echo (port 7)
pilot-daemon -no-dataexchange   # Disable data exchange (port 1001)
pilot-daemon -no-eventstream    # Disable event stream (port 1002)

Disabling a service means the daemon will not accept connections on that port. Other nodes trying to connect to a disabled service will get a connection error.