Reference

CLI

Everything the dashboard can do, from a terminal, by you or by your agent.

Install#

The CLI is the buildhound package on npm. Run it with npx, no install step:

npx buildhound --help

Commands#

CommandWhat it does
setupInstall the Buildhound skill and MCP server for Claude Code, Cursor and Codex when they are present.
runner addConnect this machine as a single-use runner: register, write ~/.buildhound/agent.json, install and start the agent.
runner statusMachines, heartbeats, running jobs and the failover map for an account; --local asks the agent on this machine.
runner setChange a machine's routing and settings: pause, performance mode, only when idle or plugged in, trust.
runner removeDeregister a machine (kept 48 hours) and stop the local agent when it is this machine.
failoverInspect routing per label; turn falling back to GitHub-hosted on or off, or override with --set.
scanAudit workflow files for wasted CI spend, priced from run history when a GitHub login is found.
estimateMonthly cost of one workflow file, with the assumptions listed.
routeRunner candidates for every job over the spend threshold, ranked by computed cost, with payback for a connected machine.
ratesThe rate tables the cost model uses, with source and verified date.
overviewThis month at a glance: jobs on your machines, their hosted cost, fallbacks, machines and what needs you.
jobsJobs your machines ran, newest first, with wait, run time and what GitHub-hosted would have cost.
job <id>One job's story: waiting, where it ran, re-runs and its cost against GitHub-hosted.
savingsMonth by month, what the jobs on your machines would have cost on GitHub-hosted, with the calculation.

Output for people and for agents#

In a terminal, commands print plain tables and a few quiet progress lines. When stdout is not a terminal, or with --json, every command prints one JSON object on stdout and keeps logs on stderr, never asks a question, and takes --yes for anything that changes state. When GitHub or payment needs a person, the command returns needs_human with one URL and exits 0.

Every error carries a code, a message and what to do next:

{ "error": { "code": "AUTH_REQUIRED", "message": "...", "next": "gh auth login" } }

Exit codes and tokens#

0 success, 1 findings or a failed check with --fail-on, 2 usage error, 3 auth error, 4 network or GitHub error.

Commands that talk to GitHub take --token, else GITHUB_TOKEN, else the token from gh auth token. Fetched run history is cached for an hour under ~/.cache/buildhound/history.