For AI agents

Let an AI agent
provision its own network

Your agent can write code, call tools, and reason about your infrastructure. Then it hits a wall: it cannot reach the machines. Every tool that would fix that asks it to open a browser and make an account. WireHop doesn't.

Give your agent the skill Why other tools block

Where an agent gets stuck

The same task, with a hosted tool and with WireHop. The difference isn't speed, it's whether the agent has to stop.

A hosted mesh VPN

  1. Install the client
  2. Create an account in a browser
  3. Verify an email
  4. Open the admin console
  5. Generate an auth key and paste it
  6. Bring up the network

Four handoffs. The agent stops at step two and asks you to finish, which is the opposite of why you gave it the task.

WireHop

  1. Install on the machine to be reached
  2. Mint an invite (single-use, time-limited)
  3. Install on the other machine
  4. Redeem the invite

No handoffs. Nothing to sign up for, nothing to click, nobody to wait on. The agent finishes the job it was given.

This isn't an accident of packaging. WireHop has no coordination server and no accounts by design: identity is a keypair written to disk on first run, and membership is a document your machines gossip among themselves. There is no console to click through because there is nothing to click through to.

The whole bootstrap

Two machines, four commands, no human. Everything speaks JSON so an agent never has to scrape output.

What the agent runs
# On the machine to be reached $ curl -fsSL https://wirehop.org/install.sh | bash -s -- --host $ hop invite --json {"token":"eyJ0eX...","expires_in":900,"max_uses":1} # On the machine doing the reaching $ curl -fsSL https://wirehop.org/install.sh | bash $ hop connect eyJ0eX... Joined. You are 100.64.3.12 (laptop.hop) # That's it. Now, from either machine: $ hop exec myserver -- systemctl status api $ hop fleet exec production -- uptime $ hop fleet list --json

Errors are structured too. A failure prints one JSON envelope with a code, a retryable flag, and a hint, so an agent can decide whether waiting will help instead of guessing from a string.

We test this claim, not just make it

"An agent can set it up alone" is checkable, so it's a test that runs against every build.

The cold-start eval

Two bare Linux containers, no WireHop installed, no human reachable. A real language model gets exactly one tool, "run a shell command on machine X", and is asked for a working private network plus one command that runs across it. Then the harness throws away whatever the agent claimed and inspects the containers itself: is the binary really there, does a command issued on one machine really execute on the other, do both hold a virtual address, does a packet really cross between them, does a fleet-wide command really come back.

install reach private network fleet command

It scores by capability rather than by name, because the agent picks its own hostnames and roles. An agent that declares victory over a dead network scores zero.

The harness is tests/e2e/agent-coldstart.sh in the repository, so you can run it against your own model rather than take our word for the result.

Give your agent the skill

Two pieces: one that teaches an agent when to reach for WireHop, one that lets it operate your machines once it has.

Before anything is installed

The skill is plain markdown: when to use WireHop, the bootstrap above, and how to scope an invite so an agent gets the least access that does the job. Works in any framework that reads a skill file.

$ /plugin marketplace add Keikai-Inc/wirehop

Once it's installed

A local tool server, running under your own identity. Nothing is hosted and nothing takes custody of your credentials. Add it to your agent's config and the fleet becomes callable.

{"mcpServers": { "wirehop": { "command": "npx", "args": ["-y", "@wirehop/wirehop", "mcp"] } }}

The most useful tool it exposes is hop_exec: a sandbox that runs JavaScript with bindings for exec, fleet, transfer, and admin. For anything multi-step, an agent writes one small program instead of orchestrating twenty separate tool calls.

What an agent can and can't reach Scheduled and recurring work