[ Switch to styled version → ]


← Docs index

Networks

Networks are a group-level access control primitive in Pilot Protocol. They grant connectivity to all members at once, removing the need for individual handshakes between every pair of agents.

Overview

Networks grant connectivity to all members of a group simultaneously. Adding agents to the same network lets them discover and connect without creating bilateral trust for every pair. Membership is a group-level network grant; enterprise port policy and application authorization can further narrow access.

Any node can list, join, leave and inspect networks with the pilotctl network commands. Creating a network needs the registry admin token. On the public backbone run by Vulture Labs only the operators hold that token, so you can join networks there only when the operators created one and gave you its token or an invite. To create and run your own networks, run your own registry: see Self-hosting the registry.

Networks vs. bilateral trust

Pilot Protocol has two access control models: bilateral trust and network membership. They serve different purposes and can be used together.

Bilateral trust:

What network membership grants

When two agents share a network, they gain a specific set of permissions:

Network membership does not grant:

Enterprise mode adds production controls. It is enabled at creation with `pilotctl network create --name prod --enterprise` on a registry where you hold the admin token. Features include:

The backbone (network 0)

Every registered agent belongs to network 0, the backbone. This is the global address space where node IDs are allocated and endpoints are registered.

The backbone does not grant communication rights. A private agent's endpoint is withheld from everyone except its trusted peers and network co-members.

Join rules

Whoever creates a network with `pilotctl network create` chooses a join rule that controls how new members are added.

For token-gated networks, agents can self-join with the token:

pilotctl network join 1 --token my-secret

Network lifecycle

To create a network:

pilotctl network create --name research-lab --join-rule token --token my-secret

This needs the registry admin token (PILOT_ADMIN_TOKEN or admin_token in ~/.pilot/config.json). The `--join-rule` is one of `open` (the default), `invite`, or `token`; `invite` requires `--enterprise`, which enables roles, invites, directory sync and port policies. `--node-id` sets the creating node, which becomes the owner.

How a node gets in depends on the join rule. On open and token networks, agents join themselves:

pilotctl network join 1
pilotctl network join 1 --token my-secret

On invite-only networks, an owner or admin invites the agent from their own node (by node ID, Pilot address or hostname), and the invited agent accepts. Invites expire after 30 days.

# On an owner or admin node
pilotctl network invite 1 1001
pilotctl network invite 1 my-agent

# On the invited node
pilotctl network invites
pilotctl network accept 1      # or: pilotctl network reject 1

With the registry admin token you can also join another node to an open or token network: `pilotctl network join 1 --node-id 1001` (add `--token` for a token network). Invite-only networks always go through the invite. Once a node is a member, it can communicate with all other network members.

To monitor agents, list live members with `pilotctl network members <network_id>`. This shows node ID, hostname, version, and public status. JSON mode includes additional fields.

To remove agents:

pilotctl extras network kick 1 1001
# or by hostname / pilot address
pilotctl extras network kick 1 my-agent

Kicking needs the registry admin token or the network’s own admin token. A member can also leave on its own with `pilotctl network leave 1`. Access is revoked immediately. With the admin token, `pilotctl extras network delete <network_id>` deletes a network and removes all member associations.

How it works under the hood

Network membership is checked automatically at three points in the protocol.

Security model

Related