Skip to content

Releases

hive 0.2.0

Choose a tag to compare

@github-actions github-actions released this 06 Nov 23:32

Scripts the server runs, a Settings window on the Mac, notifications by
state, tabs in their own windows, and the server as Hive's background item.

Downloads

The same files as 0.1.0, with this version in their names:
hive-0.2.0-macos-arm64.tar.gz, hive-0.2.0-linux-amd64.tar.gz,
Hive-0.2.0-macos-arm64.zip, hive-0.2.0-android.apk and SHA256SUMS.
The APK installs over 0.1.x.

To update on a Mac, replace hive and Hive.app, open Hive once, then
restart the server when it suits you (hive server stop, then any hive
command). Stopping the server ends its programs; shells and agents come back.

Added

  • On the Mac, drag a tab out of the title bar or the sidebar to open it in
    its own window, or use Move Tab to New Window. A picture of the tab
    follows the pointer while you drag. The tab stays in the main window,
    faded, with a return arrow that brings it back. These windows reopen
    where you left them when hive starts.
  • session.focus_block takes activate: false, to focus a block without
    making its window the session's active one.
  • Tabs on the Mac show a close button while the pointer is on them, in the
    title bar and in the sidebar, and move with a short spring when they open,
    close or change places. The motion setting picks snappy (the default),
    natural or off; Reduce Motion always moves them at once.
  • Notifications by state on the Mac: Needs you, Done and Stopped each turn
    on or off and play their own macOS sound (notify-blocked,
    notify-done, notify-stopped, sound-blocked, sound-done,
    sound-stopped), with a Play button in Settings; dock-badge counts
    the agents that need you on the Dock icon.
  • A program's progress (OSC 9;4) shows as a ring on its tab, in the title
    bar and the sidebar on the Mac, and in the tab strip and sheet on the
    phone. The server keeps the last report in the block's view
    (progress), so a client that connects later shows it too.
  • On screen, an agent waiting for you says "Needs you" instead of
    "Blocked", on the Mac and the phone. The API keeps blocked.
  • The tailscale setting (and tailscale-hostname) starts the server as
    its own Tailscale device, as --tailscale does, for a server the Mac app
    starts. Settings, Server has Built-in Tailscale, with its state and
    Sign In… while it waits for you.
  • Key sequence hints on the Mac: after a sequence's first key (such as
    ctrl+a in ctrl+a>d), a panel lists the keys that can follow and what each
    does; in a mode, its keys. A click, find or another window drops the
    half-typed sequence. key-hints turns it off.
  • Copy on select on the Mac (copy-on-select, off by default): text you
    select with the mouse goes to the clipboard, and the pane says "Copied".
  • Find in a pane: ⌘F on the Mac (Edit → Find…), and ⋯ → find on the
    phone and tablet. Matches in the scrollback are counted and marked, the
    latest is current, ⌘G and ⇧⌘G (or the arrows) step through them, and the
    marks follow new output.
  • Pane focus on the Mac: the honey edge glides to the pane you focus, the
    others dim (dim-panes: light, more, off), splits even out when
    the app opens or closes a pane (balance-splits; the server method
    session.balance_window, and balance on session.new_split), and
    focus-follows-pointer focuses the pane under the pointer.
  • A new Settings window on the Mac: a sidebar of pages (Server, Appearance,
    Terminal, Panes, Notifications, Agents and Scripts, Hosts, Shortcuts,
    Advanced), back and forward, and search that finds a setting by what it
    does. The font shows in a small terminal and the theme as tiles; Claude
    Code's hooks connect from the Agents page; Server shows how long the
    server has run and turns on the tailnet listener.
  • The menu bar menu is shorter: the server and how long it has run (click
    it for Settings), the agents that need you, how many are working, and the
    app's and the server's versions with a button that copies both.
  • Closing a tab, or its last pane, asks first when a program other than the
    shell runs in it, and names it. The confirm-close setting picks
    running (the default), always or never; "Don't ask again" sets it
    to never.
  • Tap a path a program printed, on the phone or the tablet, to see the file
    without leaving hive: images (pinch to zoom), text with line numbers
    (:40 opens at that line; the last 2 MB of a long log), folders, and
    anything else through Open in…. A sheet over the pane on a phone, a panel
    beside the panes on a wide screen. Paths are read where the pane is, also
    across wrapped rows. The server serves them at GET /v1/file.
  • Seeing what scripts do, and turning them off: every change a script
    makes is listed (hive script show, hive script audit -f, method
    audit.list, event script_acted) and shows for a few seconds on the
    pane it touched. A script can be put in watch mode (hive script watch,
    script.set_mode): it may look, mark panes and notify, and every change
    it tries is refused and listed. Scripts declare switches (options in
    the manifest, h.options, hive script set, script.set_option), and a
    notification can offer hive.set_option and hive.set_mode buttons,
    which the server runs for whoever presses them. Only people change
    modes, switches and grants. The Mac app has a Scripts window (Hive →
    Scripts…) and the phone a Scripts page, with all of this.
  • hive for Android on tablets: splits side by side when each pane gets 60
    columns, every tab in the strip, pages at a reading width, and on wide
    screens a sessions column beside the panes. One layout adapts to the
    width; phones keep one pane at a time.
  • hive for Android: long press selects text, with Copy, Select all and
    Paste. A two-row key bar on phones with all four arrows (held, they
    repeat), alt, ⇧tab, ↵, home and end, and ⋯ for
    control keys, symbols, page keys and F1 to F12. ctrl and alt
    apply to the next key, or stay on with a second tap.
  • Hive.app: drag tabs to reorder them in the title bar too, with the others
    making room where the tab will land; Escape puts it back. Move Tab
    Left
    and Move Tab Right in the Window menu and the palette.
  • Starter scripts: hive script add lists and installs limit-resume,
    needs-you, stall-watch, digest, lane-keeper, team,
    keep-awake and dev-panes.
  • Agents stopped by an error, such as Claude Code at its usage limit, are
    done with kind: "error" and the reason, and the apps show them as
    Stopped. agent.act takes expect_state, to nudge an agent that is
    idle or done. Mac client action client.reveal brings a pane forward;
    action.run from the Mac carries the app's client_id.
  • Scripts: TypeScript or JavaScript the server runs, with the same methods
    and events as the CLI. hive script run FILE runs one once, with its log
    on stderr and its result on stdout; hive script stop, hive script ls,
    hive script check and hive script types (a hive.d.ts for editors)
    go with it. A script can only read unless allowed
    more (--allow control,spawn, or a hive.script manifest), and what it
    changes goes to an audit log. Methods script.run, script.stop,
    script.list and script.result; scoped events script_started,
    script_log and script_ended; setting script-remote-run. See
    Scripts.
  • Scripts that keep running: the server runs the scripts in
    ~/.config/hive/scripts once you grant them (hive script grant),
    reloads one when you save it, keeps the old version when the new one has
    an error, and quarantines one whose handlers keep running too long.
    h.store keeps a script's values across restarts. Commands hive script grant, revoke, enable, disable, reload, logs and audit;
    methods to match; events server_started, restore_finished and
    config_changed; setting scripts.
  • Every method says which permission a script needs to call it: read,
    screen, control, spawn, input, ui, config or server.
    api list and api describe show it, with a note for methods whose
    arguments decide it (a layout that runs a command needs spawn).
  • GET /v1/events?types=a,b streams only events of those types. Some
    events, such as a script's log lines, reach only a stream that names them,
    so they never crowd the apps' stream or its history.
  • Keys as data: keymap.get gives an app its shortcuts (its defaults,
    then scripts' h.bind, then the settings file's keybind lines), with
    sequences (ctrl+b>c) and modes (resize/left); event
    keymap_changed. client.perform asks a connected app to do one of its
    own actions. Commands hive keymap, hive actions and hive do.
  • Notifications and badges: notify.send reaches every app, and the server
    keeps notifications for a day (notification.list, notification.ack),
    so an app that was closed shows what it missed. status.set,
    status.clear and status.list put badges on panes; event
    status_changed.
  • Scripts can watch agents (h.agents.on_state), offer one-tap answers to
    blocked agents (h.agents.rule, through the new agent.act, which acts
    only if the agent is still blocked on what was seen), react to what
    terminals print (h.trigger, h.wait_output), and register actions
    (action.list, action.run). hive.terminal.search finds lines in a
    terminal's screen and scrollback.
  • agent_changed and agent.list carry kind (what a blocked agent's
    notification is about: permission_prompt, elicitation_dialog),
    revision (moves on whenever state, message or kind change),
    updated_at and cwd. agent.report takes kind; the hook sends it,
    and leaves it out for a server too old to know it.
  • Error codes permission_denied, timeout and script_unloaded, for
    scripts.

Fixed

  • A method that crashed while call...
Read more

hive 0.1.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 07:43

The first release.

Downloads

  • hive for macOS on Apple Silicon, and for Linux x86_64 with glibc 2.28 or
    later: the server and the CLI in one program.
  • Hive.app for macOS 14 or later on Apple Silicon. It isn't signed with an
    Apple Developer ID yet. If you download it with a browser, macOS blocks the
    first launch until you approve it in System Settings; with curl, it opens
    normally. See
    Installation.
  • hive-0.1.0-android.apk, hive for Android 10 or later. Install it from
    the file; it isn't on Google Play.
  • SHA256SUMS, and a signed build provenance attestation for every file.

Added

  • Sessions, windows and splits that keep running in a server and come
    back after a restart: layouts, labels, scrollback, and a shell in each
    pane's last directory.
  • Agents: hooks report each agent's state (working, blocked, done), and
    hive agents lists them. After a restart, agents resume their
    conversation (Claude Code, Codex, OpenCode, Gemini, Grok) in your login
    shell, so quitting one leaves a prompt.
  • One API for everything: JSON over a Unix socket and your tailnet,
    that describes itself (hive api list, hive api describe). There is an
    event stream, and an attach protocol for clients.
  • The CLI: new, run, split, send, send-key, capture
    (with --tail), wait, events, agents, client ls, and more, with
    --json everywhere and stable exit codes.
  • Settings in one file, ~/.config/hive/config, with hive config to
    show, check and change them, and a Settings window in the Mac app (⌘,).
    listen keeps a server reachable on your tailnet however it starts.
  • Program status: programs that report their state with OSC 7501 show
    it, as agents do. Links and paths in a terminal open with ⌘-click.
  • Remote hosts: a server on another machine, reached over Tailscale.
    Listeners for Tailscale built in (--tailscale), Tailscale Serve, a
    tailnet address, or plain HTTP with --allow-anonymous. The server knows
    who each caller is from Tailscale and lets in only its owner unless told
    otherwise. hive hosts saves them, -S NAME runs any command on one, and
    hive whoami says who the server thinks you are. Hosts connect when you
    pick them, or with --always at launch. See
    Remote hosts.
  • Hive.app, a native macOS client drawn with Metal on Ghostty's terminal
    engine:
    • an agents sidebar with each tab's agent, its task and its state;
    • a command palette, a session picker across all your hosts, and ⌘/ for
      every shortcut;
    • tabs that show each program as an app icon, and pinned tabs that come
      first;
    • native selection and scrollback, the mouse in terminal programs, and a
      program's copy (OSC 52) landing on the clipboard;
    • Hive Day, Hive Night, or the system's appearance;
    • hive in the menu bar: the agents that need you, your hosts, and a count
      when something is waiting. Closing the window keeps hive there.
  • hive for Android: your sessions on the phone, over Tailscale. Tabs
    with each program's icon, pins, and a sheet of every tab grouped by what
    it's doing. A key bar with what a phone keyboard lacks, answers to an
    agent's question as buttons, and notifications you can answer from. Add
    your hosts by scanning a code from the Mac (Share Hosts with Phone).
  • Size follows the device you use. A pane takes the size of the client
    you type in. The phone says who holds a pane's size, can fit it to the
    phone, and gives it back.
  • Agent skills for Claude Code and other agents: hive, hive-setup
    and hive-from-tmux.