hyperhive/hivectl
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 368f5d82aa deploy: move the wireguard mesh out of the namespace hives read
`swarm.*` is what a hive needs to be a *client* of the swarm; the mesh is
none of it. A peer needs this host's `wireguardEndpoint` -- the roster entry
in swarm.nix, which stays -- and nothing about the interface this host
brings up. The module already said so: "plain host networking that a machine
which runs no hive at all still needs."

All five options move, so the namespace relocates rather than splitting.
`listenPort` is the one that reads the other way: it is what this host
*binds*, while the port a peer *dials* lives inside `wireguardEndpoint`.

Declared in swarm-wireguard.nix under the `deploy.*` path, following
swarm-victorialogs.nix; deploy.nix carries only the renames, per its own
"a single file to delete when the deprecation window closes". Deliberately
NOT added to deploy.nix's own options block: every entry there is a swarm
service this host deploys, and the mesh is host networking.

hivectl/src/wg.rs generates the config snippet an operator pastes, so it
moves too -- otherwise the tool's own output trips the deprecation warning.

module-eval gains a case that configures a host through the OLD path and
asserts the rendered wg-hive interface, because the new path evaluates
fine without the shim: dropping it reads as a clean tree.
2026-09-07 14:24:52 +02:00
..
src deploy: move the wireguard mesh out of the namespace hives read 2026-09-07 14:24:52 +02:00
Cargo.toml hivectl: migrate dag_progress to hive-jobq-wire's generic GraphNode 2026-08-03 20:35:24 +02:00
README.md hivectl: add start/stop agent verbs, rename spawn to create 2026-08-02 19:42:59 +02:00

hivectl

The operator-facing host CLI. A thin client for the hive-c0re daemon — speaks the host admin socket protocol (hive-host-sock) and does not link the daemon crate. Container lifecycle, the approval queue, and provisioning verbs all forward to the daemon and need it running; a few (wg/peer-config, choom) work off local host state instead.

When to use it

Reach for this crate when adding an operator-run host command — agents talk to the daemon over their own MCP tool surface (hive-agent-mcp), not this binary. hivectl is what a human operator (or a host-side script) runs.

Shape

One module per subcommand family; main.rs is just the clap parse + dispatch:

  • agents.rs — container lifecycle (start/stop/create/kill/rebuild/restart/…).
  • approvals.rs — the config/init-config/meta-input approval queue.
  • dag_progress.rs — rebuild-queue progress rendering.
  • power.rs — restart/start/stop at the container level.
  • choom.rs — drop into an interactive claude session in a container.
  • forge.rs, matrix.rs, github.rs, gateway.rs — per-integration account/token provisioning.
  • wg.rs — WireGuard mesh helpers.
  • subvol.rs — btrfs state-subvolume ops.
  • quota.rs, util.rs, completions.rs, open.rs — shared helpers, shell completions, browser-open.

Full verb reference: docs/tools/hivectl.md.