Install
On macOS or Linux: one command, Homebrew, or npx and bunx.
Three ways in. Pick one.
- One command Installs, starts Overhand at every login and opens it in your browser.
curl -fsSL https://get.overhand.dev | sh - Homebrew The same package, checked against the same release sums.
brew install craftly-io/tap/overhand && overhand start - npx or bunx The first run fetches this version's package once and keeps it in
~/.overhand/npm.npx overhand start # or: bunx overhand start
Not public yet. Get notified when it is.
What the installer does.
- Checks the download It fetches the package for your machine (macOS or Linux, arm64 or x64) and stops if its SHA-256 doesn't match the release's
SHA256SUMS. - One folder, one link The app goes in
~/.overhand/appandoverhandis linked into~/.local/bin. Everything Overhand keeps lives under~/.overhand. - Your PATH When
~/.local/binisn't on it, the installer prints the exact line for your shell and the file to put it in. - Then it opens Overhand answers on http://127.0.0.1:4317, where setup finishes. Set
OVERHAND_NO_START=1to install without starting it.
What else it needs.
- git and the GitHub CLI Agents read issues and open pull requests through
gh, signed in withgh auth login. - At least one agent Any of Aider, Claude Code, Codex, Cursor Agent, Gemini CLI and OpenCode, installed and signed in. Setup can install one for you in a terminal you watch.
- A quick check
overhand doctorlists each thing it needs and how to fix what's missing. See Troubleshooting.
On Linux.
- A systemd user service Overhand runs as one;
systemctl --user status overhandshows it. Without systemd (a container, WSL) it runs in the background until the machine restarts. - On a server systemd stops your services when you log out. To keep Overhand running and start it at boot:
sudo loginctl enable-linger "$USER" - Secrets They go to the keyring through
secret-tool(libsecret-tools). With no desktop to unlock a keyring, opt in to a file only you can read:export OVERHAND_SECRETS_FILE=~/.overhand/secrets.json overhand stop && overhand start
Updates.
- It tells you Once a day Overhand looks for a new release on GitHub, and Needs you shows the command for the way you installed.
- One command
overhand updatereruns the installer, runsbrew upgrade overhand, or for npx isnpx overhand@latest update. It restarts on the new version once no agent is running.