GitHub accounts

Give an agent a managed GitHub identity — a gh CLI and git push over HTTPS, both authenticated by an operator-supplied personal access token (PAT) — so it can run GitHub API calls and push commits without any manual gh auth login.

Provisioning is UI-driven, mirroring the dashboard side of the matrix account flow: paste a PAT into the agent's credentials tab and it works. No per-agent nix declaration, no rebuild — the token is injected into the agent's state dir out of band.

Enabling

The integration is on by default for every agent (hyperhive.github.enable = true), inert until a PAT is provisioned. There is nothing per-agent to declare — an agent gains GitHub simply by having a PAT written to its token file.

To turn it off for the whole hive, set the host option:

services.hyperhive.github.enable = false;

hive-c0re's meta-flake renderer then injects hyperhive.github.enable = false into every agent, so no agent ships the gh wrapper or credential helper. (hyperhive.github.enable also exists per-agent for completeness, but the hive-wide host switch is the intended control.)

github.com only. The token value never touches nix — it is written to <state>/github-token separately (see Provisioning).

How the agent uses it

When enabled, the container gets:

Both scripts read the token from <state>/github-token at invocation time, so a PAT written (or rotated) mid-session takes effect immediately — no container rebuild or restart. Until the file exists, gh / git push simply fail unauthenticated. The token path is baked into the scripts at build time (not read from an env var), because claude's Bash tool runs in a minimal environment that wouldn't carry one.

Provisioning

The PAT is operator-supplied. The primary path is the dashboard credentials tab (github sub-tab): paste the PAT for an agent and submit (POST /api/github-account). There is also a CLI path for recovery/scripting:

hivectl github set-token <agent> --token-stdin   # paste the PAT on stdin (preferred)
hivectl github set-token <agent> --token <pat>    # inline (visible in shell history)

Either path has hive-c0re delegate the write to hive-priv, which stores the file 0600 owned by the agent (so the container can read it) — the same credential-injection path as forge/matrix tokens. See hivectl → GitHub.

Security