Skip to content

Running a Multi-Agent Fleet

A fleet is one or more edgeplaned daemons — each managing agents on a node — all connected to a shared edgeplane-tower. The web dashboard gives you a live view across all nodes.

Each machine running edgeplaned needs a node identity:

Terminal window
edgeplane agent node register --hostname my-node
# Writes JWT to /etc/edgeplane/node.json
# Requires sudo (writing to /etc/edgeplane/)

If you can’t write to /etc/, you can specify an alternate path and configure edgeplaned to read it there.

Terminal window
edgeplane daemon up
# Or run the daemon binary directly:
edgeplaned run --backend-url https://your-tower-host

Verify the node appears in the fleet:

Terminal window
edgeplane agent list

For production, run edgeplaned as a systemd user service:

~/.config/systemd/user/edgeplaned.service
[Unit]
Description=EdgePlane Daemon
After=network-online.target
[Service]
ExecStart=/usr/local/bin/edgeplaned run --backend-url https://your-tower-host
Restart=on-failure
RestartSec=5
[Install]
WantedBy=default.target
Terminal window
systemctl --user daemon-reload
systemctl --user enable --now edgeplaned

On any enrolled node:

Terminal window
edgeplane run claude [-p <profile>]
edgeplane run codex [-p <profile>]
edgeplane run gemini [-p <profile>]

When an agent is running on a remote node, the web dashboard can still attach to it. The tower mediates the attach via the node’s edgeplaned — you never need direct network access to the remote node.

Web browser → /api/attach-ws → edgeplane-tower → edgeplaned (remote node) → agent PTY

The agent’s node must have edgeplaned running and registered. The attach-secret handshake is self-healing — if edgeplaned restarts, it re-registers and the next attach works automatically.

Terminal window
edgeplane agent list [--json] # all registered agents + status
edgeplane daemon status # daemon health check
edgeplane tui # full-screen real-time fleet view

The TUI Agents tab (a) shows each agent’s node, runtime, and last-seen timestamp.

edgeplaned includes a cron dispatcher — useful for scheduled agent tasks:

~/.edgeplane/edgeplaned/cron.toml
[[job]]
name = "nightly-review"
schedule = "0 2 * * *" # 5-field cron, local time
session = "default"
prompt = "run nightly code review"

Reload after editing:

Terminal window
edgeplane agent cron reload
edgeplane agent cron list # verify next fire times