Skip to Content
Core FeaturesMulti-Host Fleet, Cloud VMs & Self-Hosting

Multi-Host Fleet, Cloud VMs & Self-Hosting

Agent Harbor scales from a single laptop to a multi-host fleet without requiring you to copy SSH keys or API credentials between machines.

Three-Tier Fleet Architecture

  1. Central Hub (agent-harbor.com or ah server start): Maintains user identity, fleet state, semantic project indexes, encrypted .ahr session streams, and chat/webhook bridges.
  2. Enlisted Executors (ah login / ah enroll): Every machine where agents execute—macOS laptops, Linux/Windows workstations, headless build servers, and cloud VMs—runs the ah daemon and maintains an outbound mTLS 1.3 QUIC connection to the hub.
  3. Personal Control Surfaces: Your browser (agent-harbor.com), Desktop App (ah desktop), terminal (ah tui), Mobile PWA, and chat bots act strictly as control and observation interfaces.

Enlisting Machines into Your Fleet

Interactive Workstation Login (ah login)

On any personal laptop or desktop, authenticate via OAuth 2.0 Device Flow or browser sign-in:

ah login

This authenticates your CLI and registers the machine as an executor for your account.

Headless Server Enrolment (ah enroll & ah executors mint-token)

For headless Linux, macOS, or Windows servers, mint a single-use enrolment token from any logged-in workstation and install the system service on the target host:

# 1. On your workstation: mint a short-lived enrolment token with capability labels ah executors mint-token --name build-linux-01 --labels os=linux,arch=x86_64,gpu=rtx4090,ram=128gb # 2. On the headless server: enroll and install the systemd / launchd / Windows service sudo ah enroll install --token <enrolment-token> --server https://agent-harbor.com

Manage your fleet executors at any time:

ah executors list ah executors status build-linux-01 ah executors drain build-linux-01

Dispatching Work Across Executors (--executor & --requires)

Once your machines are enlisted, any ah <agent> or workflow command can target a specific host by name or let the hub schedule the session onto an executor matching hardware/OS requirements:

# Target a specific host by name ah claude --executor build-linux-01 --branch feat/cuda-kernels "Compile and benchmark the CUDA kernels" # Route automatically to any online executor matching capability constraints ah codex --requires os=linux,arch=aarch64,ram>=32gb "Run the ARM64 integration test suite"

Auto-Scaled Cloud VM Executors (ah-cloud-*)

When your local machines are busy—or when a campaign requires clean, ephemeral VMs—Agent Harbor can provision and tear down cloud instances on demand using built-in cloud provider adapters:

ProviderAdapterPrepared Base Image Family
AWS EC2ah-cloud-awsOfficial AMI (agent-harbor-base-x86_64-<version>, agent-harbor-base-arm64-<version>)
Google Cloud (GCP)ah-cloud-gcpPublic Compute Engine Image (agent-harbor-base-*)
Microsoft Azureah-cloud-azureAzure Compute Gallery Image (agent-harbor-base-*)
Hetzner Cloudah-cloud-hetznerSnapshot / ISO Image (agent-harbor-base-*)
DigitalOceanah-cloud-doCustom Droplet Image (agent-harbor-base-*)
Oracle Cloud (OCI)ah-cloud-ociCustom Compute Image (agent-harbor-base-*)
Kubernetesah-cloud-k8sContainer / KubeVirt Executor Pod (ghcr.io/agent-harbor/executor:<version>)

Every prepared agent-harbor-base cloud image ships with a pre-configured Btrfs/ZFS Copy-on-Write volume, the ah daemon, Docker/Podman, Nix, and all supported AI coding CLIs pre-installed so cloud executors boot and start executing tasks in seconds.


Self-Hosting the Central Hub (ah server start)

Organisations with strict data-residency or air-gapped requirements can run their own Central Hub using the same ah binary:

# Start a self-hosted hub with embedded SQLite/PostgreSQL and automatic ACME TLS ah server start \ --listen 0.0.0.0:8443 \ --domain harbor.internal.example.com \ --data-dir /var/lib/agent-harbor-hub

Connecting Clients to Multiple Hubs (ah servers)

Your CLI and Desktop App can connect to both agent-harbor.com and one or more self-hosted hubs simultaneously:

# Add and authenticate against a self-hosted hub ah servers add corp https://harbor.internal.example.com ah login --server corp # List configured hubs and switch the default profile ah servers list ah servers use corp