Technical specs
Implementation details, authentication matrix, channel capabilities and limits of each session protocol in the Termini desktop app. Every item matches the current implementation; unavailable capabilities are marked as such, with no forward-looking promises.
SSH
The client ships its own SSH stack and does not depend on the system ssh binary; connection, authentication and forwarding all happen in-app and share one device identity with the key store, the session workspace and the ops assistant.
Connection
- Port 22 by default; connection timeout configurable per device.
- Protocol-level keepalive at the interval configured per device, sustaining long sessions across NAT and firewalls.
- Session reuse: multiple panes (terminal / SFTP) for the same device share the underlying connection, avoiding repeated handshakes and logins.
Authentication matrix
- Public key: OpenSSH-format private keys with passphrase and certificate support; keys are stored in the local key store. PuTTY PPK must be converted to OpenSSH first.
- Keyboard-interactive: answers the server's interactive challenge flow.
- Password: static password authentication.
- SSH agent: uses identities loaded in the system agent; Pageant is also supported on Windows.
- Methods are tried in the order public key → keyboard-interactive → password and stop at the first success.
- Limit: GSSAPI authentication is not available yet.
Terminal
- Terminal type (TERM) customisable per device; size follows the pane in real time.
- Font and theme adjustable per pane; find does not interrupt the session.
Port forwarding
- Local forwarding: securely connects a local port to a service inside the target network (-L semantics).
- Remote forwarding: brings a remote port back to this side for reverse troubleshooting (-R semantics).
- Dynamic forwarding: opens a local SOCKS5 proxy with traffic egressing through the target host (-D semantics).
- Forwarding rules are managed independently of terminal sessions, can be started and stopped at any time, and show their state (idle / running / error).
Telnet
An in-house Telnet stack aimed at network devices and legacy systems: full option negotiation plus session adaptation so scripts and the assistant can execute reliably.
Option negotiation
- BINARY: binary transmission mode.
- ECHO: echo control (accepts server-side echo).
- SGA: suppress Go-Ahead for full-duplex interaction.
- TTYPE: terminal type reporting with a configurable candidate list.
- NAWS: window size negotiation; pane resizes sync to the device in real time.
- EOR: end-of-record marker.
- Negotiation completes during connection setup without waiting for the first data packet.
Session adaptation
- Login prompt detection: matches username / password prompts automatically for reliable logins by scripts and the assistant.
- Paging: detects paged device output and pages automatically so long output is not cut off.
- Configurable line ending (NVT EOL) and command echo verification to cope with vendor differences.
Keepalive and limits
- Two-layer keepalive: TCP keepalive plus protocol-level NOP heartbeats.
- Limit: charset negotiation (RFC 2066) is not available yet.
RDP
An in-house RDP stack with a video-grade decode and render pipeline; graphical desktops are organised in the same workspace as terminal sessions.
Security layer and authentication
- Security layer: auto-negotiate / TLS / NLA.
- NLA: network-level authentication over CredSSP with Kerberos support.
- RDSTLS: RDSTLS authentication in redirection scenarios.
- Azure AD: for AAD-joined hosts, signing in through browser OAuth.
- Domain account sign-in; self-signed certificates can be trusted explicitly.
Display and input
- Fixed resolution or follow the window; 16 / 24 / 32-bit colour depth.
- Frame codec negotiated with the server: H.264 / AVC444 / WebP / PNG / JPEG / RAW.
- Configurable keyboard layout; input goes over both scancode and Unicode channels with modifier state synced in real time.
- Full mapping of mouse movement, buttons and wheel; the remote cursor shape follows the render.
- Configurable performance flags to disable wallpaper, smoothing and other remote effects for fluidity.
- Full screen: Ctrl+Alt+Pause leaves full screen, Ctrl+Alt+Home shows the connection bar.
Channels
- Clipboard (CLIPRDR): two-way text, files, HTML and images.
- Drive redirection (RDPDR): maps local folders into the remote Explorer.
- Audio (RDPSND): remote audio played back locally.
Session
- Optional console (admin) session; heartbeat keepalive configured per device.
SFTP
Built on the SSH subsystem, sharing authentication, host trust and the underlying connection with terminal sessions; local and remote are organised as a dual-pane view.
File operations
- Browse directories, upload and download, new folder / file, rename, delete.
- Permission changes (chmod), hidden files, copy path.
Transfer management
- Same-name conflict detection: you confirm skip or overwrite; nothing is overwritten silently.
- Progress stays in the current pane; tasks can be cancelled at any time.
- Limit: resumable transfers are not available yet (the resume offset is reserved underneath).
Local shell
- Local PTY sessions: ConPTY on Windows, the system PTY on macOS / Linux.
- Windows auto-discovers available terminals: PowerShell, CMD, pwsh, WSL, Git Bash.
- Terminal settings, find and AI command suggestions share the same experience as remote sessions.
Trust and keepalive
- Host fingerprints: must be confirmed on first connection; a changed fingerprint raises an alert with reject, trust once or trust permanently.
- Credential boundary: device passwords, private keys and passphrases stay in local data and are never uploaded with your website account.
- Keepalive per protocol: SSH / RDP use protocol-level heartbeats, Telnet uses TCP keepalive plus NOP.
System requirements
Desktop
- WindowsWindows 10 / 11
- macOSApple Silicon and Intel
- LinuxMainstream desktop distributions
Session protocols
- RemoteSSH · Telnet · RDP · SFTP
- LocalLocal shell (PTY / ConPTY)