hqterm
Terminal sessions that never drop. On every machine you own.
Close the laptop on Wi-Fi, open it on 5G, and your shell, your editor and that 40-minute build are exactly where you left them. hqterm does what mosh and tmux do together, over the ssh you already have. It carries images and HD emoji too, and it works on Linux, macOS and Windows hosts.
curl -fsSL https://hqterm.sh/install | sh
Linux and macOS, x86_64 and arm64. Installs hqterm and hqsh into ~/.local/bin, no sudo. On each server: curl -fsSL https://hqterm.sh/install | sh -s -- --server
irm https://hqterm.sh/install.ps1 | iex
Windows PCs and servers, x64 and ARM64. No admin.
Never lose a session
Sleep, roam, lose the network: hqsh reconnects on its own and replays exactly the output you missed, with no gaps and no repeats. The session lives on the host.
Share it like tmux
Attach from your laptop and your desktop at once, pair with a teammate, or let someone watch read-only. --steal takes a session over.
Images and HD emoji
mosh syncs only text and drops every image. hqsh carries the raw stream, so Kitty, iTerm2 and sixel images and OpenEmoji art come through.
Just ssh
Your keys, agent, ProxyJump and known_hosts. No new port, no UDP, no daemon to expose, nothing for a firewall to block.
Every OS, as a real service
Sessions run as systemd units on Linux, launchd jobs on macOS, and on ConPTY on Windows servers, so they survive logout and you can see them with your usual tools.
Tailscale built in
If Tailscale is running, hqsh connects over your tailnet automatically and falls back to the normal route when it must. Your tailnet machines show up as hosts.
Why not mosh, Eternal Terminal or plain tmux?
| hqterm | mosh | Eternal Terminal | ssh + tmux | |
|---|---|---|---|---|
| Survives sleep and network changes | yes | yes | yes | reattach by hand |
| Scrollback and exact replay | yes | screen only | yes | tmux's |
| Images and graphics protocols | yes | dropped | yes | passthrough only |
| Shared sessions, read-only watchers | yes | no | no | yes |
| Extra ports or firewall changes | none | UDP 60000+ | TCP 2022 | none |
| Windows hosts | yes | no | no | no |
| Tailscale-aware | yes | no | no | no |
Use it
hqterm # your hosts (ssh config, added, tailnet) and their sessions; click to attach hqterm connect dev2 main # straight into session "main" on dev2 hqterm desktop # our terminal window: tabs, splits, images hqsh dev2 --read-only # watch a session someone else is driving hqsh dev2 --steal # take it over hqterm update # everything, in place # Ctrl-^ then . detaches; the session keeps running
Every command, key, setting and fix is in the docs.
hqterm desktop
Our own terminal window for Linux (KDE, GNOME, anything with a display): GPU-rendered tabs and split panes that reattach to their sessions on the next launch. Every hqtui and qc image and HD emoji is drawn in full, even where Konsole cannot.
curl -fsSL https://hqterm.sh/install | sh -s -- --desktop