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:
    1. Open Hive.app. macOS says it can't verify it. Click Done.
    2. Open System Settings → Privacy & Security, scroll down, and click Open Anyway next to the message about Hive.
    3. Confirm with Open Anyway and your password.
  • macOS 14: Control-click Hive.app in 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 stop stops it until the next hive command.
  • Turning Hive off in Login Items stops the server and its terminals.
  • Until you open Hive once, hive starts 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 PATH and what your shell profile sets are there; something you only exported in a terminal before running hive is not.
  • A server with options (hive server start --tailscale ...) is started by hive itself, as before. Tailscale keeps its sign-in, so after the first start you can hive server stop and let the next hive start 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.