Skip to content

Verifying The Install

Pedro Gomes Branquinho edited this page Sep 5, 2026 · 1 revision

Verifying the install

Status: Stable See also: Installation | FOSS-Quickstart

curl ... | sh asks you to run code you have not read, from a machine you do not control. That is a real thing to be uneasy about. This page says exactly what the hive-mcp installer trusts, what it proves, and how to check it yourself.

What the one-liner trusts

curl -fsSL https://hive-mcp.com/install.sh | sh
  1. TLS to hive-mcp.com, which redirects to the installer attached to the latest release on GitHub. It points at a release asset, not at a branch, so a push to main cannot change what your one-liner runs.
  2. The release assets. This is the part you do not have to take on faith: every file is checked against a signed SHA256SUMS before it is made executable.
  3. Nothing else. It never asks for root, writes only to ~/.local/bin and your skills directory, and touches no shell rc file unless you pass --setup.

What it proves, and what it says when it cannot

The installer reports three tiers when it finishes. A tier that could not run says so; it is never quietly counted as a pass.

Tier Checks Needs On failure
Checksums the sha256 of every downloaded file against SHA256SUMS sha256sum, shasum or openssl hard stop, nothing installed
Signature an Ed25519 signature over SHA256SUMS an openssl that does raw Ed25519 hard stop
Provenance which workflow, repo and commit built the binary gh reported unavailable, install continues

Two details matter more than they look:

"Cannot check" is never reported as "checked." Before trusting openssl for the signature, the installer verifies a published RFC 8032 test vector with it. If that fails, the tool cannot do Ed25519 (macOS ships LibreSSL as openssl, which cannot) and the tier reports itself unavailable. If the test vector passes but your download does not, that is not a tooling problem, and the install stops.

The script is parsed before any of it runs. Everything is inside a function called on the last line, so a connection that drops mid-transfer cannot leave you having executed half an installer.

Checking it yourself

The strongest check available to you is a second origin. The script and the binaries come from GitHub; the expected checksum and the signing key are served from our own cluster. Passing both means both systems would have to be compromised and agree on the same lie, rather than either one being enough.

curl -fsSL https://hive-mcp.com/install.sh -o install.sh
curl -fsSL https://hive-mcp.com/install.sh.sha256
sha256sum -c install.sh.sha256          # macOS: shasum -a 256 -c
less install.sh
sh install.sh

To check the pinned signing key against that second origin:

curl -fsSL https://hive-mcp.com/hive-signing-key.pub
sed -n 's/^HIVE_SIGNING_KEY="\(.*\)"$/\1/p' install.sh

They must be the same string. The installer pins the key so it can verify with no network beyond the download; the cluster publishes it so you can check the pin against something that is not GitHub.

To check a release's provenance directly:

gh attestation verify ~/.local/bin/hive --repo hive-agi/hive-mcp-cli

That names the workflow and the commit that produced the binary. It is the one check a stolen signing key would not survive, because the attestation is bound to a GitHub OIDC identity rather than to a key we hold.

If you would rather not run it at all

The installer is a convenience. Nothing it does is secret:

go install github.com/hive-agi/hive-mcp-cli/cmd/hive@latest
go install github.com/hive-agi/hive-mcp-cli/cmd/hive-setup-mcp@latest
hive guide --install
hive setup

Or skip the CLI and follow Installation by hand.

What this does not cover

Being straight about the edges:

  • The host and its addons. hive setup clones hive-mcp over HTTPS and resolves Maven artifacts from Clojars. Those carry their own trust story, and it is not this one.
  • A compromise of both origins at once. If GitHub and our cluster were compromised together, every check here passes. Provenance is the layer that still helps, because it is anchored in a public transparency log rather than in anything we hold.
  • Reproducible builds. The binaries are not yet byte-reproducible from source, so provenance tells you which workflow built them, not that you can rebuild the same bytes yourself.

Reporting a mismatch

If a checksum or signature ever fails, do not retry, and do not work around it. A retry that succeeds is worse than the failure. Open an issue at https://github.com/hive-agi/hive-mcp-cli/issues with the two hashes the installer printed.

Clone this wiki locally