Platforms and Windows
What Hive supports on macOS, Linux, and Windows, where it keeps its files, and how Windows differs.
Hive runs the same daemon, protocol, workspace model, agent detection, and plugin system on every platform. What differs is the operating-system layer underneath: how terminals are created, how process trees are tracked, and how the daemon starts at login.
Support matrix
| macOS | Linux | Windows | |
|---|---|---|---|
| Versions | 13 and later | glibc or musl, kernel 4.x and later | Windows 10 1809 (build 17763) and later, Windows 11, Server 2019 and later |
| Architectures | arm64, amd64 | amd64, arm64 | amd64 |
| Terminals | PTY | PTY | ConPTY |
| Process trees | Process groups | Process groups | Job objects |
| Daemon socket | Unix socket, peer UID checked | Unix socket, peer UID checked | AF_UNIX socket, peer SID checked |
| Login service | launchd agent | systemd user service | Task Scheduler task at logon |
| Install | Homebrew (hive-agents formula or hive cask), install.sh |
install.sh, Nix flake |
install.ps1 |
| Self-update and rollback | ✓ | ✓ | ✓ |
| Agents survive daemon restarts | ✓ (shims) | ✓ (shims) | ✓ (shims) |
| Strict plugin isolation | sandbox-exec |
bwrap |
Not available |
Remote machines (--remote) |
Client and host | Client and host | Client only |
| Local discovery (docs) | Announce, discover, pair | Announce, discover, pair | Discover and pair only |
| Desktop app, preview (docs) | WebKit; 13 and later | GTK 4, WebKitGTK 6.0 | WebView2 (amd64) |
A platform and architecture pair is supported when CI builds and tests it on every change and releases ship it. Windows arm64 is not built yet; it is added when CI can run it. Which features are stable, preview or unsupported is listed in Operating Hive.
Install on Windows
In PowerShell:
irm https://hive.admir-saheta.com/install.ps1 | iexThe installer downloads the release .zip for windows/amd64, checks it against the release’s checksums.txt, puts hive.exe in %LOCALAPPDATA%\Programs\Hive, and adds that directory to your user PATH. Set $env:HIVE_INSTALL_DIR to install elsewhere, or $env:HIVE_VERSION = 'v1.0.4' to install a given release.
hive updatedownloads the next release, checks its checksum and its signature, makes sure it runs, and swaps it in. A runninghive.execannot be overwritten on Windows but can be renamed, so the old binary moves tohive.exe.oldfirst. Running daemons then restart on the new binary, and agents keep running.hive update --rollbackputs the previous binary back and keeps the newer one ashive.exe.old, so the rollback can itself be undone. Rollback works the same way on macOS and Linux.- Start the daemon at logon:
hive daemon installregisters a hidden Task Scheduler task, Hive Daemon. It runs as you at logon, restarts the daemon if it fails, and never starts a second one.hive daemon uninstallremoves it. - Uninstall: run the installer with
-Uninstall. It stops the daemon and removes the login task,hive.exe, and thePATHentry. Your data stays unless you add-RemoveData.
Where Hive keeps its files
| Windows | macOS and Linux | |
|---|---|---|
Data, sockets, logs (HIVE_HOME) |
%LOCALAPPDATA%\Hive |
~/.hive |
Configuration (HIVE_CONFIG) |
%APPDATA%\Hive\config.toml |
~/.config/hive/config.toml |
| Agent manifests | %APPDATA%\Hive\agent-detection |
~/.config/hive/agent-detection |
| Binary | %LOCALAPPDATA%\Programs\Hive\hive.exe |
~/.local/bin/hive, or your package manager’s location |
HIVE_HOME, HIVE_CONFIG, and XDG_CONFIG_HOME override these on every platform. Data is machine-local rather than roaming: sockets, logs, and agent state belong to the machine they run on.
How Windows differs
- Terminals are pseudo consoles (ConPTY). Programs see
TERM=xterm-256color, and Hive reads their output as VT sequences. Input, resizing, and Unicode work in both directions. ConPTY repaints the screen itself, so output logs can show cursor moves where a Unix PTY would have recorded the raw bytes. - Process trees are job objects. Each agent, pane process, and plugin command runs in its own job. Stopping it stops everything it started, and when its owner ends, the job ends too, so nothing is orphaned.
- Stopping agents. Windows has no
SIGTERM. Hive asks a terminal agent to stop by closing its pseudo console, which sendsCTRL_CLOSE_EVENT. Anything still running afterprocess.stop_graceis ended. - Detached processes. The daemon and shims start without a console and outside the job of the terminal that launched them, so closing that terminal does not stop them. If the terminal’s job forbids breaking away, they start inside it; use
hive daemon installto stay independent of terminals. - Sockets. The daemon and shims listen on AF_UNIX sockets in your profile, and every connection is checked: the peer process’s user (SID) must be yours.
- The foreground program. ConPTY has no foreground process group, so Hive treats a shell pane’s newest live descendant as its running program.
- Working directories. Hive does not read another process’s working directory on Windows, so a new pane starts in its environment’s directory rather than where you last
cd-ed in a neighbouring pane. - Default shell. A new pane uses
$SHELLwhen set (Git Bash, MSYS2), else PowerShell 7 (pwsh), else Windows PowerShell, else%ComSpec%. Setterminal.shellto choose one. - Commands and quoting. Programs are found on
PATHwithPATHEXT..cmdand.batfiles run throughcmd.exe. Pass arguments separately rather than pre-quoting them.
Agents and shells on Windows
| What to expect | |
|---|---|
| Claude Code, Codex, Gemini CLI, opencode, Copilot CLI | Run natively under Node.js when started with hive agent start --kind …. State detection and resume work as on other platforms. |
| An agent typed into a shell pane | Recognised by its program name (claude.exe, claude.cmd, and claude are all claude). npm’s .cmd shims run node …\cli.js, which does not name an agent, so prefer hive agent start, or add a manifest whose detect.args_regex matches. |
| Aider | Runs where Python and Aider are installed. |
| PowerShell 7, Windows PowerShell, cmd.exe | Supported pane shells. |
| Git Bash, MSYS2, Cygwin | Work as pane shells via terminal.shell. |
| WSL | A pane can run wsl.exe, but agents inside it are visible to Hive only as wsl.exe. For agents in WSL, install Hive inside WSL instead. |
Terminals for hive ui |
Windows Terminal and other VT-capable consoles. |
Windows limitations
- Shell-script parts do not run: the reference plugins (
pr-status,spawn-reviewer) and other plugins whose commands areshscripts,install.sh, and the snippetshive --remoteruns on a remote host. Plugins that do not listwindowsinplatformsare refused at install. Plugins written for Node.js (including the official ones) or shipped as.exeprograms work. - No strict plugin isolation. Windows has no sandbox tool that Hive uses. With
[plugins] isolation = "auto"(the default), plugins run with standard isolation; with"strict", none run. See Plugin API. - Not a remote host. A Windows machine cannot be the target of
hive --remoteorhive machine add, because the remote side runs POSIX shell scripts over SSH. Windows works as the client: the built-in OpenSSHssh.exereaches macOS and Linux hosts. - Clipboard and image paste. Text copy works through the terminal (OSC 52). Copying to the system clipboard and image paste (Ctrl+B, then I) are not wired to the Windows clipboard yet.
- Notifications. Terminal notifications (OSC 9) work in Windows Terminal; Windows toast notifications are not used.
Troubleshooting on Windows
| Symptom | Cause and fix |
|---|---|
create pseudo console (Windows 10 1809 or later) |
ConPTY is missing because Windows is older than 1809. |
AF_UNIX listen errors |
Windows older than 1803, or a socket path over 108 characters. Set a shorter HIVE_HOME; long paths fall back to %TEMP%\hive. |
| The daemon stops when you close the terminal | That terminal’s job forbids breaking away. Run hive daemon install so Task Scheduler starts the daemon. |
Plugin refused with not windows |
Its author has not listed windows; it probably runs shell scripts. |
hive update cannot move hive.exe aside |
Another program, such as an antivirus scan, has hive.exe open exclusively. Retry. |
| Agent output looks garbled in an old console | Use Windows Terminal; the classic console before 1809 does not process VT output. |