- Category
- Developer Tools
- Rank
- No. 1624Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- block
- GitHub
- 8 stars
- Latest release
- v0.6.0
- Date
About
SSH client with seamless connection recovery. Reconnects transparently when your network drops, keeping shell sessions alive across switches and sleeps.
What it does
Sessh wraps OpenSSH with local and remote daemons that preserve terminal state, scrollback, input progress, and process ownership. A multiplexed protocol carries terminal or proxy traffic through ordinary SSH connections, while the remote side keeps running during interruptions and computes an accurate repaint when the client returns.
Why it's ranked here
Sessh tackles recovery as a terminal-state problem, not merely a transport retry. Input acknowledgements, resize-aware repaints, scrollback repair, connection pooling, and durable cleanup show careful engineering around failure cases. Its compatibility fallbacks and explicit diagnostics also make behavior understandable when full recovery is unavailable.
What's good
It requires no advance remote installation and opens no extra network port. It preserves normal scrollback, mouse reporting, alternate-screen behavior, cursor state, and terminal modes through a modeled remote terminal. It detects both disconnected and unresponsive transports, retries with exponential backoff, and avoids unsafe automatic switching when typing or paste-like input may be incomplete.
Tradeoffs
Recovery depends on a matching packaged binary for the remote operating system and architecture; otherwise Sessh warns and falls back to plain SSH. Reconnection cannot handle passwords or other interactive authentication prompts. There is deliberately no public list, resume, or kill interface. Protocol-level flow-control credit remains future work, and blocking diagnostic writes can stall each single-threaded process.
How to use it well
Use Sessh for interactive shells, remote commands, and forwarding workflows where network changes or laptop sleep commonly interrupt OpenSSH. Keep its emulated terminal mode for the strongest recovery, then choose lighter filtering when OpenSSH must own the stream. Treat it as an SSH replacement with fault tolerance, not as a named-session manager or remote job registry.
Technical notes+
docs/ARCHITECTURE.md describes single-threaded, non-blocking processes, a local sesshd, a small remote bridge, remote workers, pooled SSH transports, three filtering levels, and three isolation modes. docs/PROTOCOL.md specifies four-byte big-endian framing, protobuf HelloFrame and Frame envelopes, multiplexed streams, durable receive offsets, input acknowledgements, attached raw bytes, and SCM_RIGHTS descriptor passing. docs/THREADING.md explains dispatcher scheduling, Source and Sink backpressure, fair task dispatch, and the explicit Blocking capability. scripts/check_blocking.py enforces production restrictions on raw polling, sleeping, waiting, foreground frame I/O, and direct dispatcher I/O construction. docs/PACKAGING.md says release archives contain target-specific binaries and a SHA-256 manifest, built with Zig ReleaseSafe.
Observed
- Primary implementation
- Release binaries are built with Zig in ReleaseSafe mode.
- Install surface
- The documented installation command uses the block/tap/sessh Homebrew formula.
- Interface
- Command-line interface shaped like ssh, plus a manual ProxyCommand mode and JSONL diagnostics.
- Remote deployment
- The client bootstraps a packaged binary selected for the remote operating system and architecture.
- Compatibility behavior
- When no matching remote binary exists, Sessh warns and falls back to plain ssh without recovery.
- Testing structure
- The private Node package defines Vitest smoke and conformance suites using headless terminal and pseudo-terminal dependencies.
Read from README.md, package.json, docs/CLEANUP.md, docs/PROTOCOL.md, docs/PACKAGING.md, docs/THREADING.md, docs/NETWORKING.md, docs/DIAGNOSTICS.md, docs/TERMINOLOGY.md, docs/USER_MANUAL.md, docs/ARCHITECTURE.md, docs/RECONNECTION_UX.md, docs/FILESYSTEM_LAYOUT.md, docs/TERMINAL_EMULATOR.md, scripts/check_blocking.py.
What it can do
Establish SSH connections to remote servers
Server credentials and connection details → Active SSH session
Automatically reconnect dropped SSH sessions
Interrupted network connection → Restored SSH connection
Maintain shell sessions during network interruptions
Active shell session and network disconnect → Preserved shell session state
Resume connections after network switches
SSH session and network change event → Seamlessly restored connection
Recover sessions after device sleep/wake cycles
Dormant SSH session and system wake event → Reactivated SSH connection
Preserve running processes during connection recovery
Active remote processes and connection interruption → Continued process execution
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
