Sunday, October 11, 2026
HomeGolangHesper: Go daemons for persistent agent terminals throughout Macs - Releases

Hesper: Go daemons for persistent agent terminals throughout Macs – Releases


I’m the maintainer of Hesper, an MIT-licensed native Mac workspace for Claude Code, Codex and shell brokers. The UI is Swift/AppKit/SwiftUI with libghostty, however session possession and multi-Mac connectivity dwell in Go.

The issue: a number of brokers may be engaged on completely different Macs whereas their human wants one place to see terminals, discover approval/query states and return to the fitting session. The app talks solely to its native hesperd over a Unix socket; that daemon owns PTYs and connects to the opposite machines.

Some implementation decisions I’d like suggestions on:

  • One multiplexed hyperlink per controller/host pair carries agent occasions and attaches, with direct connectivity when out there and a self-hosted relay as rendezvous/fallback.
  • Terminal messages carry at most 32 KiB. A gradual native connect previous its 4 MiB queue is reattached with a recent redraw quite than holding up the entire hyperlink.
  • Enter throughout reconnect is dropped, not replayed. Mutation supply can have an unknown final result; we don’t promise exactly-once keystrokes.

I ran the prevailing transport harness on principal (aa76851), on an M1 Max with Go 1.25.5. With injected 20 ms RTT per relay leg (40 ms echo community flooring), 300 keystrokes measured 48.4 ms p50 / 59.9 ms p95. Direct loopback measured 0.8 / 3.5 ms. It is a fake-shell transport check with software program keys, not app rendering or bodily WAN/LAN latency, and never a competitor benchmark.

Engineering word and uncooked output:

Venture and Brew setup: GitHub – derzierau/hesper: Run Claude Code and Codex brokers on each Mac you personal, and steer them from one quick native window. · GitHub

v0.1.4 is launched for macOS 14+, Intel and Apple silicon. Set up Claude Code/Codex individually. One Mac wants no relay; multi-Mac at the moment requires your personal relay and machine setup. The measurements describe principal, not the shipped Brew binary. Native assessment/diffs, checkpoint-based strikes and live-agent forks on principal are usually not but in v0.1.4.

For individuals who’ve constructed PTY or remote-streaming programs: how would you check noisy-terminal interference and talk dropped enter throughout reconnect? I’d welcome criticism of the restoration boundary and benchmark methodology.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments