Installation
The server and the command-line interface are one program, hive. It runs
on macOS and Linux. The app is native macOS and needs macOS 14 or later on
Apple Silicon.
Download
Each release has hive
for macOS (Apple Silicon) and Linux (x86_64, glibc 2.28 or later),
Hive.app, and a SHA256SUMS file. Download with curl rather than a
browser: macOS blocks programs that a browser downloaded until you approve
them.
V=0.1.0 OS=macos-arm64 # or linux-amd64
curl -fsSLO https://github.com/manueltarouca/hive/releases/download/v$V/hive-$V-$OS.tar.gz
curl -fsSLO https://github.com/manueltarouca/hive/releases/download/v$V/SHA256SUMS
shasum -a 256 --ignore-missing -c SHA256SUMS # on Linux: sha256sum --ignore-missing -c SHA256SUMS
tar -xzf hive-$V-$OS.tar.gz
mkdir -p ~/.local/bin && mv hive-$V-$OS/hive ~/.local/bin/
If hive isn't found afterwards, add ~/.local/bin to your PATH, for
example with export PATH="$HOME/.local/bin:$PATH" in ~/.zshrc.
Each download also has a signed record of where it was built: the release
workflow, from the tagged commit. With the
GitHub CLI:
gh attestation verify hive-$V-$OS.tar.gz --owner manueltarouca.
The app
curl -fsSLO https://github.com/manueltarouca/hive/releases/download/v$V/Hive-$V-macos-arm64.zip
ditto -x -k Hive-$V-macos-arm64.zip /Applications
Hive.app carries its own copy of hive.
The app isn't signed with an Apple Developer ID yet. Downloaded with curl,
it opens normally. Downloaded with a browser, macOS blocks it the first
time:
- macOS 15 and later:
- Open
Hive.app. macOS says it can't verify it. Click Done. - Open System Settings → Privacy & Security, scroll down, and click Open Anyway next to the message about Hive.
- Confirm with Open Anyway and your password.
- Open
- macOS 14: Control-click
Hive.appin Finder, choose Open, then Open again.
macOS remembers your choice. Or, from a terminal:
xattr -dr com.apple.quarantine /Applications/Hive.app.
hive for Android
Download hive-$V-android.apk on the phone and open it. Android asks to
allow installs from the app that downloaded it, the first time. It needs
Android 10 or later, and isn't on Google Play. To update, install the newer
file over it: your hosts and settings stay. Then add your hosts: see
hive on your phone.
Build from source
Requirements
| Tool | Version | Why |
|---|---|---|
| Go | 1.27 | The server and CLI. |
| Zig | 0.16 exactly | Builds libghostty-vt, Ghostty's terminal engine. Ghostty refuses other minor versions. |
| Xcode | 27 or later | The macOS app. Releases are built with Xcode 27.1. The Command Line Tools alone can build the server. |
On macOS, Homebrew has the pinned Zig:
brew install go zig@0.16
Build
git clone https://github.com/manueltarouca/hive
cd hive
make vt # once: builds libghostty-vt from the pinned Ghostty commit
make build # ./bin/hive
make vt takes a minute the first time. It fetches one pinned commit of
Ghostty and builds only its terminal library.
The app
apps/macos/script/bundle.sh
open apps/macos/build/Hive.app
Hive.app carries its own copy of hive. When it starts and no server is
running, it starts one.
The Android app
It needs the Android SDK with NDK 28.2, and JDK 21 (Android Studio's own works).
make vt-android
cd apps/android && ./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
The debug build installs beside a release as hive dev.
Check it works
./bin/hive new demo
./bin/hive ls
Any hive command starts a server if none is running. hive server stop
stops it. Your sessions come back the next time it starts.
On macOS: the server runs in the background
macOS stops what an app started when you close that app, unless the app may
run in the background. A server started from Terminal or Ghostty would stop,
with every terminal in it, when you close Terminal or Ghostty. So Hive.app
adds the server as its background item the first time you open it. You see it
as Hive in System Settings → General → Login Items & Extensions. After
that, hive asks macOS to start the server, and it keeps running when you
close Hive or your terminal app.
- It doesn't start at login: it starts when you open Hive or run
hive. - If it crashes, macOS starts it again.
hive server stopstops it until the nexthivecommand. - Turning Hive off in Login Items stops the server and its terminals.
- Until you open Hive once,
hivestarts the server itself and says it stops when you close the terminal app. After an update, open Hive once so macOS starts the new server. - The background server starts with macOS's environment, not your terminal's.
Terminals run your login shell, so
PATHand what your shell profile sets are there; something you onlyexported in a terminal before runninghiveis not. - A server with options (
hive server start --tailscale ...) is started byhiveitself, as before. Tailscale keeps its sign-in, so after the first start you canhive server stopand let the nexthivestart the background one.
Update
Download the new release and replace the files: hive in ~/.local/bin,
Hive.app in /Applications. Then restart the server so it runs the new
version, at a moment that suits you: hive server stop, then any hive
command. Stopping the server ends its programs; shells and agents come back.
On a Mac, open the new Hive once first, so the background server it starts
is the new one.
Uninstall
hive agent uninstall claude # take hive's hooks out of Claude Code
hive server stop
rm ~/.local/bin/hive
rm -rf /Applications/Hive.app
rm -rf ~/.local/state/hive # your sessions and their scrollback
rm -rf ~/.config/hive # settings and saved hosts
On macOS, first turn Hive off in System Settings → General → Login Items & Extensions; deleting the app alone leaves the entry there.
If you added the plugin: claude plugin uninstall hive@hive.