hyperhive/README.md

2.8 KiB

hyperhive

Multi-Claude-Code-agent orchestration on nixos-containers.

A host-side Rust daemon (hive-c0re) spawns nspawn-isolated agent containers and brokers messages between them. A manager agent (hm1nd) coordinates the swarm and gates lifecycle changes on user approval via git commits, surfaced through a vibec0re-styled HTTP dashboard.

                     ┌────────────────────────┐
                     │  hive-c0re (Rust)      │
        operator ──▶ │  • lifecycle           │ ─▶ nixos-containers
                     │  • broker (sqlite)     │     ├── hm1nd       (manager)
                     │  • approvals (sqlite)  │     ├── h-alice     (sub-agent)
                     │  • dashboard :7000     │     └── h-bob       ...
                     │  • per-agent sockets   │
                     └────────────────────────┘

Each container runs a harness binary that drives claude --print --continue in a turn loop, exposes a per-agent web UI with a live event stream, and talks to the broker over a bind-mounted unix socket via an embedded MCP server claude calls into.

Host config

Minimal flake.nix for a host that runs hive-c0re:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
    hyperhive.url = "git+https://git.berlin.ccc.de/vinzenz/hyperhive";
  };

  outputs = { nixpkgs, hyperhive, ... }: {
    nixosConfigurations.my-host = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        hyperhive.nixosModules.hive-c0re
        ({ ... }: {
          nixpkgs.overlays = [
            hyperhive.overlays.default
            hyperhive.overlays.claude-unstable
          ];
          services.hive-c0re = {
            enable = true;
            hyperhiveFlake = "${hyperhive}";
          };
          # ... rest of your host config (hardware, networking, users, …)
          system.stateVersion = "25.11";
        })
      ];
    };
  };
}

hive-c0re will then:

  • open its admin socket at /run/hyperhive/host.sock + dashboard on :7000,
  • auto-create the manager container (hm1nd) if missing,
  • auto-rebuild any managed container whose hyperhive rev is stale.

Build / deploy

# inside the repo (devshell first; no global cargo)
nix develop -c cargo check
nix develop -c cargo clippy --workspace --all-targets -- -D warnings

# evaluate everything (rust+nix+toml fmt + clippy)
nix flake check

# deploy to a host that imports `hyperhive.nixosModules.hive-c0re`
cd ~/Repos/<nixos-config-repo>
nix flake update --update-input hyperhive
sudo nixos-rebuild switch --flake .#<host>

The host config also needs hyperhive.overlays.default applied — the module's default package = pkgs.hyperhive requires the overlay.