- Category
- Developer Tools
- Rank
- No. 1476Tools index
Previous survey · No. 1431 ·
- Pricing
- Open Source
- Type
- TOOL
- Use case
- Coding
- Interfaces
- Desktop
- GitHub
- 23 stars
- Latest release
- v0.2.16
- Date
About
Hydra is an open-source, local-first terminal desktop built in Rust that discovers existing agent sessions on a machine (from tools like Claude Code, Codex CLI, Cursor Agent, and others), keeps them alive as retained PTY sessions after the app closes, and can be reached from a browser without opening an inbound port. The local desktop is Apache-2.0 licensed, while a separate proprietary 'Hydra Remote' component handles hosted browser access and is not included in this repo.
What it does
Hydra is a desktop terminal app for macOS and Linux built around coding agents. A background service holds each running shell, so quitting the window leaves Claude Code or Codex jobs working, and reopening reattaches to them. It reads the history files that about ten agent CLIs keep on disk, so a conversation started in another terminal can be picked up inside a project. Terminal output is drawn natively on the GPU, not in a web page. The optional Remote feature relays the same sessions to a phone or browser.
Why it's ranked here
The engineering is careful where it counts. The session service accepts connections only from the same operating system user, refuses to delete a socket another live instance still holds, and reaps its child processes on shutdown. The security documents say plainly what is not protected, namely other programs running as you. The code is MIT licensed, and the published source includes the remote agent, browser engine and signaling broker, not just the desktop. The limit is scope: the hosted account and relay service stay closed, so self-hosting Remote means building your own identity and enrollment layer.
What's good
Sessions outlive the interface by design, not by accident: the service owning the terminals is a separate process from the window. History discovery runs locally and the README states transcript content is not sent to the vendor. The dashboard can only send a fixed set of typed requests to the Rust side, so it cannot run arbitrary commands. A developer preview lets outside Python scripts list, watch and type into live sessions, with a check that refuses input aimed at a stale session.
Tradeoffs
Provider history formats belong to each agent vendor and can change without notice, so discovery support is maintained one provider at a time. Amp and Factory can be launched but their history is not read. Remote in official packages depends on a private hosted service. The project documents that platform UI still needs physical testing on macOS, Wayland and X11, and Windows is not qualified. The license moved from Apache 2.0 to MIT, so older copies carry the earlier grant.
How to use it well
Pick it if you run several agent CLIs across projects and keep losing sessions when a terminal window closes. Point a new project at a folder where you already used an agent, resume from the list, then split panes per agent. If tmux or Zellij already covers persistence for you, the gain is the agent history browser and native desktop view. A reboot still ends processes; supported agents resume as new ones. Treat the local control socket as full account access.
Technical notes+
Cargo workspace (MSRV 1.88, MIT) with members pty-daemon, maestro-renderer, maestro-shell, maestro-protocol, maestro-local-services, maestro-extension-api, maestro-app and hydra-launcher; hydra-agent is excluded and built separately. pty-daemon/src/main.rs binds the socket with a 077 umask and pins 0600, calls peercred::authorize on every accept, uses prepare_socket_path to unlink only a socket proven stale, and caps per-client outbound queues at OUT_QUEUE_BYTES (32 MiB). hydra-launcher/src/main.rs places the socket under XDG_RUNTIME_DIR, TMPDIR or /tmp and keeps at most ten 0600 launch logs. hydra-agent/src/remote_access.rs retires a replayable signed authority file that is now never read. Crate names keep the maestro prefix for data compatibility.
Observed
- License
- MIT for first-party code; earlier releases were published under Apache 2.0
- Language
- Rust workspace with a React dashboard rendered in the platform WebView
- Platforms
- macOS and Linux (native Wayland and X11); Windows not qualified
- Install
- Homebrew cask on macOS, shell installer for Ubuntu/Debian, or build from source with cargo
- Interfaces
- Desktop app, maestro-app CLI subcommands, and a local Unix-socket JSON protocol
- Open/closed split
- Hosted account, enrollment, billing and relay infrastructure are private; agent, browser engine and broker source are public
- Local trust model
- Daemon socket excludes other OS users via peer credentials; no isolation from same-user processes
Read from README.md, Cargo.toml, docs/architecture.md, docs/public-private-boundary.md, hydra-launcher/src/main.rs, pty-daemon/src/main.rs, maestro-protocol/src/lib.rs, maestro-app/src/cli.rs, hydra-agent/src/lib.rs, hydra-agent/src/remote_access.rs, FAQ.md, LICENSE, SECURITY.md, docs/developer/local-control-quickstart.md.
What it can do
Keep agent sessions alive as retained PTY sessions after the app closes
PTY session → Persistent running session
Tags
Tech Stack
Media
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.