Compare commits

...
Author SHA1 Message Date
iris
39fd02235c docs: shorten Overriding nixpkgs section 2026-07-16 00:06:17 +02:00
iris
f7febe71dd docs: split combined hive-agent/hive-agent-mcp/hive-agent-wake bullet into three 2026-07-16 00:06:17 +02:00
iris
57765946db docs: nixpkgs-override guidance in README, fix stale CLAUDE.md repo map
README: add a "Overriding nixpkgs" section explaining hyperhive.inputs.
nixpkgs.follows and showing it in the quick-start flake example, since
hyperhive pins its own nixpkgs and consumers embedding it as a flake
input generally want to follow their host's nixpkgs instead.

CLAUDE.md: the repo map still described a hive-ag3nt/ directory
grouping hive-agent, hive-agent-mcp, and hive-agent-wake — that
directory doesn't exist; they're three separate top-level crates.
Also added the three wire-type crates split out of hive-sh4re
(hive-host-sock, hive-priv-sock) and hive-metric, none of which were
listed.
2026-07-16 00:06:17 +02:00
2 changed files with 41 additions and 10 deletions

View file

@ -38,13 +38,20 @@ hand-maintained per-file tree drifts out of sync with the code.
destroy|rebuild|restart|list|set-parent|…>`, `approvals <pending| destroy|rebuild|restart|list|set-parent|…>`, `approvals <pending|
approve|deny>`, `forge`/`matrix`/`github`/`gateway` provisioning, approve|deny>`, `forge`/`matrix`/`github`/`gateway` provisioning,
`choom`, `stop`/`start`, `wg`/`peer-config`. `choom`, `stop`/`start`, `wg`/`peer-config`.
- **`hive-ag3nt/`** — in-container harness; three sibling binaries for - **`hive-agent/`**, **`hive-agent-mcp/`**, **`hive-agent-wake/`** —
every agent (`hive-agent` serve loop, `hive-agent-mcp`, in-container harness, three sibling crates for every agent (not a
`hive-agent-wake`). Turn-loop *policy* layer (`turn.rs`) over the `hive-claude` single `hive-ag3nt/` dir — that's the runtime/binary-family nickname,
driver, embedded MCP server (`mcp.rs`) + its claude launch-config layer not a directory).
(`mcp_config.rs`: tool-group/capability → `--allowedTools`, `--mcp-config` - **`hive-agent/`** — the serve-loop binary: turn-loop *policy* layer
render), per-agent web UI (`web_ui/` module dir), event + turn-stats (`turn.rs`) over the `hive-claude` driver, per-agent web UI (`web_ui/`
sqlite sinks, login flow, system-prompt renderer, forge-notify subscriber. module dir), event + turn-stats sqlite sinks, login flow, system-prompt
renderer, forge-notify subscriber.
- **`hive-agent-mcp/`** — the embedded MCP server (long-lived
streamable-http listener, `hive-mcp-http` systemd unit) + its claude
launch-config layer (tool-group/capability → `--allowedTools`,
`--mcp-config` render).
- **`hive-agent-wake/`** — small external wake CLI for extra MCP
servers/helpers to nudge claude on external events.
- **`hive-claude/`** — reusable, app-agnostic driver for headless - **`hive-claude/`** — reusable, app-agnostic driver for headless
`claude --print`: spawns the CLI, streams + classifies stream-json, `claude --print`: spawns the CLI, streams + classifies stream-json,
parses per-turn `Telemetry`, and drives a durable self-compacting parses per-turn `Telemetry`, and drives a durable self-compacting
@ -62,9 +69,20 @@ hand-maintained per-file tree drifts out of sync with the code.
- **`hive-bash-mcp/`** — per-agent bash-task runner daemon plus its - **`hive-bash-mcp/`** — per-agent bash-task runner daemon plus its
stdio MCP bridge; writes task files under `/harness/bash-tasks/` and stdio MCP bridge; writes task files under `/harness/bash-tasks/` and
the favorite-tools `bash_commands` stat into turn-stats.sqlite. the favorite-tools `bash_commands` stat into turn-stats.sqlite.
- **`hive-sh4re/`** — shared wire types (Host / Agent / Manager request - **`hive-sh4re/`** — shared wire types (Agent / Manager request +
+ response, `Message`, `Approval`, `HelperEvent`) used across the response, `Message`, `Approval`, `HelperEvent`) used across the unix
unix sockets. sockets. Host-admin-socket and hive-priv-socket wire types have been
split out into their own crates (below) so `hivectl` and `hive-priv`
don't need to pull in the rest of `hive-sh4re`.
- **`hive-host-sock/`** — wire types for the host admin socket
(`/run/hyperhive/host.sock`), the protocol `hivectl` speaks to
`hive-c0re`. Split out of `hive-sh4re` so a standalone `hivectl` only
depends on this protocol crate, not the whole daemon crate.
- **`hive-priv-sock/`** — wire types for the `hive-priv` privileged-helper
socket (`/run/hive/priv.sock`), shared by `hive-priv` (server) and
`hive-c0re` (client). Also split out of `hive-sh4re`.
- **`hive-metric/`** — small CLI to push a single labeled metric to the
OTEL collector via the OpenTelemetry Rust SDK / OTLP HTTP exporter.
### Other top-level dirs ### Other top-level dirs

View file

@ -62,6 +62,9 @@ Minimal `flake.nix` for a host that runs hive-c0re:
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
hyperhive.url = "git+https://forge.darkest.space/hyperhive/hyperhive"; hyperhive.url = "git+https://forge.darkest.space/hyperhive/hyperhive";
# Pin hyperhive to your own nixpkgs instead of the one it ships with
# (see "Overriding nixpkgs" below) — recommended for most hosts:
hyperhive.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = { nixpkgs, hyperhive, ... }: { outputs = { nixpkgs, hyperhive, ... }: {
@ -87,6 +90,16 @@ manager container, and auto-rebuilds any container whose hyperhive
rev goes stale. `claude-code` is unfree — hyperhive scopes the rev goes stale. `claude-code` is unfree — hyperhive scopes the
whitelist to itself, nothing for the operator to set. whitelist to itself, nothing for the operator to set.
### Overriding nixpkgs
hyperhive pins its own `nixpkgs` so it builds standalone in CI. Add
`hyperhive.inputs.nixpkgs.follows = "nixpkgs"` (as in the quick-start above)
to build it against your host's `nixpkgs` instead — one less nixpkgs
evaluation, no version drift from the rest of your system. Standard flake
`follows` pattern; works as long as your channel is reasonably close to the
`nixos-26.05` hyperhive develops against. Drop it again if a much
older/newer channel hits breakage hyperhive's CI doesn't catch.
For the full list of host and agent NixOS options see the For the full list of host and agent NixOS options see the
**[options reference](https://hyperhive.darkest.space/options/)**. **[options reference](https://hyperhive.darkest.space/options/)**.