Hive 0.4: spaces, layouts and integrations

What changed in Hive 0.4: macOS and Windows, spaces that follow your cd, worktree terminals, right-click menus, layouts, and optional integrations.

Hive 0.4 started as “macOS and Windows” and grew into the release where Hive became a workspace rather than a list of sessions. Here is what changed across 0.4.0 to 0.4.12, grouped by what you will notice. The changelog has every detail.

Linux, macOS and Windows

Hive now ships static binaries for Linux (x86_64, ARM64), macOS (Apple silicon, Intel) and Windows 10+, all tested in CI. On Windows the daemon talks over a named pipe with a per-daemon token and runs agents in ConPTY; a PowerShell one-liner installs it. See install.

Terminal first

New panes, splits and tabs open a terminal. Start an agent by typing its name, just as you would anywhere else, and Hive recognises it: the pane title and sidebar say claude or codex instead of “shell”. Ctrl+Space A still picks an agent from a list.

Spaces that follow your cd

Every repository, or plain folder, you work in is a space with its own tabs. cd into another repository and within two seconds the terminal moves to that repository's space. The sidebar's + new opens a fresh space; Alt+↑/Alt+↓ switch spaces and Alt+←/Alt+→ their tabs. The AGENTS list shows every agent in every space, with its status, and Alt+1–9 jumps straight to one.

Worktree terminals

Ctrl+Space C opens a terminal in its own git worktree on a fresh branch, so two agents never edit the same checkout. Background: git worktrees for AI coding agents.

Right-click menus

Right-click a space to open it, start a terminal there, rename or close it; a tab to rename it, split it or close it; an agent to open, rename, split beside or terminate it. Tabs can have names. Closing a pane or tab now ends its sessions (a running agent asks first), so nothing keeps running out of sight; detach to leave everything running.

Layouts

Describe a set of panes once and open it with Ctrl+Space L:

[layouts.web]
spaces = ["web"]
panes = [
  { agent = "claude" },
  { run = ["npm", "run", "dev"], split = "right", label = "server" },
  { split = "down" },
]

In a space a layout names, it opens without asking.

Integrations

Optional and off by default, each with a key that tells you how to enable it:

Upgrading

hive update
hive daemon stop   # restarts the daemon on the new version; ends running sessions

Questions and bug reports are welcome on GitHub; include the output of hive doctor.