The Daemon

Daemon Configuration

Flags

heyvmd [options]
Flag Default Purpose
--api-port <u16> 34099 Local API port to attach to or spawn
--msb-host <host> microsandbox host
--cloud-url <url> https://server.heyo.computer Cloud control plane
--auth-url <url> https://auth.heyo.computer Auth server
--relay <url> iroh relay URL
--name <name> $HOSTNAME / $HOST, else heyvmd Display name for this daemon (under systemd/launchd, where those env vars are usually unset, the default is heyvmd)
--disable-network-agent off Turn off the SDN network agent
--network-node-kind <kind> dev_machine cloud_host or dev_machine
--network-node-ip <ip> Private VPC IP
--network-cidr <cidr> Reachable CIDR (repeatable)
--network-endpoint-url <url> Endpoint URL
--network-interval-secs <n> 10 Reconcile interval

Environment variables

Variable Default
HEYO_CLOUD_URL https://server.heyo.computer
HEYO_AUTH_SERVER_URL https://auth.heyo.computer
HEYO_RELAY_URL
MSB_SERVER_HOST
HEYO_ACCESS_TOKEN (set by the desktop supervisor)
RUST_LOG info

State & authentication

heyvmd persists a generated backend id (prefix hd-…) to ~/.heyo/daemon.json, so each restart upserts to the same cloud registration row.

It resolves your JWT in this order:

  1. HEYO_ACCESS_TOKEN environment variable (set by the desktop supervisor).
  2. The cached token at ~/.heyo/token.json (written by heyvm login).
  3. An API-key exchange using ~/.heyo/.env.

If none is available, the daemon cannot register. Run heyvm login first, or let the desktop app provide the token.