Skip to content
Self-host

One binary. It is the runner, and it can be the Hub.

Every setup installs Detent on the machines that do the work. Enroll them against Detent Cloud, or run your own Hub on one host for free.

01 · Install

Pick your platform.

macOS, Linux, and Windows, as one CGO-free binary.

Shell installer, which downloads the release archive and verifies its SHA-256 checksum

curl -fsSL https://raw.githubusercontent.com/digitaldrywood/detent/main/install.sh | sh

Or a native .deb, so apt owns the binary, removal, and upgrades

DETENT_VERSION=0.164.2 DETENT_ARCH=amd64 \ curl -LO "https://github.com/digitaldrywood/detent/releases/download/v${DETENT_VERSION}/detent_${DETENT_VERSION}_linux_${DETENT_ARCH}.deb" \ && sudo apt install "./detent_${DETENT_VERSION}_linux_${DETENT_ARCH}.deb"

Or a native .rpm

DETENT_VERSION=0.164.2 DETENT_ARCH=amd64 \ curl -LO "https://github.com/digitaldrywood/detent/releases/download/v${DETENT_VERSION}/detent_${DETENT_VERSION}_linux_${DETENT_ARCH}.rpm" \ && sudo rpm -Uvh "./detent_${DETENT_VERSION}_linux_${DETENT_ARCH}.rpm"

Homebrew works on Linux too

brew install digitaldrywood/tap/detent

The installer writes to /usr/local/bin when writable, otherwise $HOME/.local/bin. Set DETENT_INSTALL_DIR to override.

Also available
  • go install
  • Homebrew (macOS and Linux)
  • Winget and Scoop
  • .deb and .rpm
  • or copy a single file

Release self-updates verify SHA-256 checksums fetched from GitHub releases. Update integrity currently rests on GitHub TLS plus the published checksum file; release signing with a pinned minisign key is still open work, and the repository says so.

02 · Requirements

What has to be on the host.

A runner dispatches agents from the machine it runs on, so the agent CLI and its login live there too.

A Hub to enroll against

A Detent Cloud organization, free to create, or a Hub you run yourself. The runner registers against its URL.

detent hub runner register --help

Codex CLI or Claude Code, signed in on the runner

Runners drive agents through their own CLIs, using the sign-in already on the machine. Detent stores no model credentials.

codex login · claude auth login

Your repository and its toolchain

The runner clones linked repositories under its workspace root and runs your gate command there, so the build tools your gate needs must be installed.

git --version

Go 1.26 or newer

optional

Only for go install or building from source. Release binaries need nothing installed.

go version
03 · First run

Enroll a runner, or start your own Hub.

enroll a runner
# Settings › Providers & runners › Enroll a runner shows this command
 $ detent hub runner register \
     --url https://cloud.detent.build/organizations/ORGANIZATION_ID \
     --token TOKEN --name "Build host" --service

 $ detent doctor
   read-only checks of config resolution and project tokens
run your own Hub
$ DETENT_HUB_ADMIN_TOKEN=... detent hub serve \
     --database /var/lib/detent-hub/hub.db \
     --listen 127.0.0.1:7777 --github-disabled

   put a TLS proxy in front, create the organization and
  project, then enroll runners with your Hub's URL

Then let an agent set it up

Detent is meant to be set up by an agent. The README carries a prompt to paste into Codex or Claude Code from inside the repository you want Detent to work on. It asks whether you use Detent Cloud or a self-hosted Hub, inspects the repository, drafts detent.yaml and WORKFLOW.md as drafts you approve, and asks before every change to the Hub, the repository, or the runner.

04 · Updating

Whatever installed it should update it.

Release installer

detent update

Use --yes for automation. On a runner, detent update --yes drains running work before it restarts.

Homebrew

brew upgrade digitaldrywood/tap/detent

Winget and Scoop

winget upgrade --id DigitalDrywood.Detent

Or scoop update detent.

Go install

detent update --from-release

Switches a go-installed binary to the checksum-verified release asset and pins future updates to release-binary management.

Keep reading