Idle machines,
working as one mesh.

Package an agent as a container, drop it on the mesh, and dispatch tasks from a desktop app or any OpenAI SDK.

curl -fsSL https://api.agentfm.net/install.sh | bash
macOS blocks the first launch?

The beta is not notarized with Apple yet. Approve it once via System Settings → Privacy & Security → Open Anyway, or clear the download flag before mounting:

xattr -d com.apple.quarantine ~/Downloads/AgentFM-0.1.0-arm64.dmg

How it works

Three roles. One binary.

Every node runs the same agentfm binary. A flag picks the role, libp2p does the rest.

-mode worker

Workers run your agent

Each task executes in a fresh Podman sandbox. Workers broadcast live CPU, GPU, RAM and queue depth every two seconds.

-mode relay

The relay keeps everyone found

A lighthouse on a public IP handles discovery, punches through NAT, and archives the trust ledger so history survives restarts.

-mode api

You dispatch from anywhere

The desktop app, a curl one-liner, or any OpenAI SDK. Output streams back live and files return as zipped artifacts.

Anatomy of a dispatch

What happens when you hit send.

  1. DispatchYour task routes to the least-loaded worker that advertises the right model. The trust gate checks its reputation first.
  2. SandboxThe worker spins up a fresh Podman container and runs your agent inside it. Nothing touches the host.
  3. StreamStandard output streams back to you live, token by token, over the direct libp2p task channel.
  4. ArtifactAny files the agent writes come back as a zip, dropped into your artifacts folder by task id.
  5. VerifyYou rate the result. The score is Ed25519-signed and appended to a tamper-evident Merkle log.

A calm console for your mesh.

The desktop app bundles a full node. Install it and you can see every agent, dispatch work, and rate results without touching a terminal.

Read the tour
AgentFM desktop Mesh Radar showing two live agents with hardware telemetry and honesty ratings
Dispatch drawer streaming live agent output with a trust badge
Dispatch streams output live, with a trust badge on every agent.
Agent profile with signed ratings, comments and live telemetry
History shows signed ratings and comments, backed by a Merkle log.
Artifacts browser listing files produced by agents across projects
Artifacts collects every file your agents produce, by project.

Proof, not promises.

An open mesh needs more than vibes. Every rating is a signed receipt, and anyone can verify the chain.

Signatures bound to identity

The verifying key is derived from the rater's peer id. You cannot forge another peer's rating or edit one after the fact.

Append-only Merkle log

Ratings and comments land on a per-peer log with RFC 6962 inclusion proofs. Tampering breaks the root.

Reputation that gates dispatch

EigenTrust weighs every rater by their own standing. Equivocators get caught by witnesses and refused work, mesh-wide.

Speak OpenAI to your own hardware.

Point any OpenAI client at the gateway and the mesh answers. Nothing leaves machines you chose.

# start the gateway
agentfm -mode api -apiport 8080

# list agents on the mesh and copy the peer id you want
curl http://127.0.0.1:8080/api/workers

# dispatch to that agent by peer id — stdout streams straight back
curl -N http://127.0.0.1:8080/api/execute \
  -H 'Content-Type: application/json' \
  -d '{"worker_id":"12D3KooWQ9BD…8qQrh","prompt":"Draft a sick-leave email"}'
-mode worker

Run agents in a Podman sandbox and earn reputation.

-mode api

Headless HTTP and OpenAI gateway. The desktop app bundles this.

-mode boss

Interactive terminal dispatcher for mesh operators.

-mode relay

Lighthouse with DHT, NAT relay and the archive ledger.

-mode witness

Ledger replica that catches double-signing peers.

-mode genkey

Mint a swarm key for a fully private mesh.