Skip to content

Latest commit

ย 

History

291 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

SSH-X-Term

SSH-X-Term Logo
Latest Release Homebrew Tap Chocolatey Version NPM Version GitHub Downloads NPM Downloads Build Status GitHub Stars License


SSH-X-Term is a modern, terminal-based SSH client with a rich TUI (Text User Interface) built on Bubble Tea.

SSH-X-Term is a fully self-contained SSH client implemented entirely in Go. There are no external SSH tools or wrappers involved โ€” all SSH, SCP, SFTP, port tunneling, packet inspection, and terminal handling is built in.

It combines SSH connection management, interactive terminals, SCP/SFTP file transfers, visual port forwarding & traffic inspection, and secure credential storage into a single, fast, cross-platform application.

Credentials can be stored securely using your local system keyring or directly in your Bitwarden vault.


โœจ Highlights

  • โœ… Pure Go SSH client โ€” no ssh, no passh, no plink required
  • โœ… SSH Port Forwarding & Tunnels โ€” Local (-L), Remote (-R), and Dynamic SOCKS5 (-D)
  • โœ… Visual Topology Diagrams โ€” interactive ASCII/Unicode tunnel graph with live metrics
  • โœ… Live Packet Inspector & Hex Dump โ€” stream raw payload packets in real time with 1-click clipboard export
  • โœ… Cross-platform โ€” identical behavior and rendering on Linux, macOS, and Windows
  • โœ… Built-in terminal emulator โ€” full xterm-256color support with scrollback buffer
  • โœ… SCP / SFTP Dual-Pane File Manager โ€” seamlessly transfer files over existing sessions
  • โœ… Secure Credential Storage โ€” system keyring (Keychain, Secret Service, Credential Manager) + Bitwarden CLI
  • โœ… First-class TUI โ€” responsive, keyboard-driven, mouse-aware full-screen experience

๐Ÿ“บ Demo & Walkthrough

Watch on YouTube

Demo


๐Ÿš€ Features

๐Ÿ”€ SSH Port Forwarding & Tunnel Manager

Manage and monitor SSH tunnels directly within the TUI without remembering complex CLI flags.

  • Supported Tunnel Modes:
    • Local Port Forwarding (-L): Forward local ports to remote services (e.g. remote VNC desktop 5900 โž” 127.0.0.1:5900, private PostgreSQL/MySQL databases, internal web dashboards, Kubernetes pods).
    • Remote Port Forwarding (-R): Expose local development servers or APIs to a remote relay server.
    • Dynamic SOCKS5 Proxy (-D): Turn your remote SSH host into a flexible SOCKS5 proxy for browsers and CLI tools.
  • Port Conflict Detection: Automatically verifies local and remote port availability before binding to prevent socket collisions.
  • Auto-Start Support: Flag tunnels to automatically activate whenever a host connection is initiated.
  • Safe Persistent Storage: Saved directly alongside your host configuration with OpenSSH compatibility.
                       โ—„  Tunnel 1 of 1: Remote VNC Desktop  โ–บ

  โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ TOPOLOGY: LOCAL (Remote VNC Desktop) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
  โ”‚                                                                                  โ”‚
  โ”‚  โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ              โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ              โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ  โ”‚
  โ”‚  โ”‚  LOCAL LISTENER  โ”‚  โ•โ•(SSH)โ•โ•โ–บ  โ”‚    SSH RELAY     โ”‚  โ”€โ”€(TCP)โ”€โ”€โ–บ  โ”‚  REMOTE TARGET   โ”‚  โ”‚
  โ”‚  โ”‚  127.0.0.1:5900  โ”‚              โ”‚  remote-host:22  โ”‚              โ”‚  127.0.0.1:5900  โ”‚  โ”‚
  โ”‚  โ”‚  (Your Machine)  โ”‚              โ”‚(Bastion / Server)โ”‚              โ”‚ (Target Service) โ”‚  โ”‚
  โ”‚  โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ              โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ              โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ  โ”‚
  โ”‚                                                                                  โ”‚
  โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ STATUS: โ— ACTIVE โ”‚ CONNS: 1 active  โ”‚ TRAFFIC: โ–ฒ 14.2 KB    โ–ผ 84.1 KB    โ”‚ UPTIME: 08m 42s  โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

๐Ÿ” Visual Topology & Live Packet Inspector

Inspect the live data stream flowing through your SSH tunnels in real time.

  • Visual 2D Topology Diagram (v / g):
    • Clear box-and-arrow diagrams detailing listener, bastion gateway, and target endpoints.
    • Color-coded statuses: Neon Green (โ— ACTIVE), Gray (โ—‹ INACTIVE), Red (โœ– ERROR).
    • Live metrics dashboard: active connection counts, directional byte counters, and uptime.
  • Live Traffic Inspector (x):
    • Bidirectional stream tagging (LOCAL -> REMOTE vs REMOTE -> LOCAL) with microsecond timestamps.
    • Hex + ASCII Dump Mode: Wireshark-style 16-byte hexadecimal offsets alongside ASCII text columns.
    • ASCII Text Stream Mode (m): Clean formatted text view for HTTP, Redis, SMTP, or plain socket streams.
    • Stream Controls: Pause / Freeze live feed (f / Space), scroll history (โ†‘/โ†“/PgUp/PgDn), and clear buffer (c).
  • 1-Click Clipboard Export (y):
    • Instantly copy all raw captured traffic data (Hex Dump or ASCII) to the system clipboard.
  LIVE TRAFFIC INSPECTOR: Web Service Tunnel (HEX + ASCII DUMP)    [โœ“ COPIED TO CLIPBOARD] 
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚  โ”€โ”€โ–บ [12:00:00.100] LOCAL -> REMOTE (16 bytes)                                   โ”‚
 โ”‚    00000000  47 45 54 20 2f 20 48 54  54 50 2f 31 2e 31 0d 0a  |GET / HTTP/1.1..| โ”‚
 โ”‚                                                                                  โ”‚
 โ”‚  โ—„โ”€โ”€ [12:00:00.115] REMOTE -> LOCAL (17 bytes)                                   โ”‚
 โ”‚    00000000  48 54 54 50 2f 31 2e 31  20 32 30 30 20 4f 4b 0d  |HTTP/1.1 200 OK.| โ”‚
 โ”‚    00000010  0a                                                |.|                โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โšก Quick Connect Mode

Fast SSH access without launching the full TUI.

  • sxt -l โ€” minimal interactive connection selector
  • sxt -c <connection-id> โ€” instant connection by ID
  • Start typing immediately to filter connections
  • Arrow keys exit filter and navigate
  • Fully interactive terminal with resize support

๐Ÿ–ฅ๏ธ Integrated SSH Terminal

  • VT100 / ANSI escape sequence compliant
  • Full xterm-256color support
  • 10,000-line scrollback buffer
  • Mouse and keyboard scrolling
  • Text selection and clipboard copy
  • Graceful window resize handling

๐Ÿ“‚ SCP / SFTP File Manager

  • Dual-pane Local โ†” Remote interface
  • Upload, download, rename, delete
  • Create files and directories
  • Recursive search (/)
  • Uses the active authenticated SSH session

๐Ÿ” Secure Credential Management

  • Local storage via system keyring
    • macOS Keychain
    • Linux Secret Service (libsecret / GNOME Keyring / KWallet)
    • Windows Credential Manager
  • Bitwarden integration via Bitwarden CLI (bw)
  • Passwords and private key passphrases are never stored in plaintext

โš™๏ธ SSH Authentication

  • SSH Agent (recommended for encrypted keys)
  • Encrypted private keys supported via ssh-agent
  • Password authentication via system keyring
  • Compatible with standard OpenSSH config

๐Ÿ› ๏ธ Prerequisites

Required

  • Go 1.24+ (only if building from source)
  • System Keyring (for local password storage)

Optional

  • SSH Agent (recommended for encrypted SSH keys)
  • Bitwarden CLI (bw) โ€” for Bitwarden vault support
  • tmux โ€” open SSH sessions in new tmux windows

โš ๏ธ SSH-X-Term 2.0+ has no external SSH dependencies. You do not need ssh, passh, plink, or PuTTY.


๐Ÿ“ฅ Installation

Option 1: Install via npm (Recommended)

npm install -g ssh-x-term
sxt

Option 2: Install via Homebrew (macOS/Linux)

brew tap eugeniofciuvasile/tap
brew install ssh-x-term
sxt

Option 3: Build from source

git clone https://github.com/eugeniofciuvasile/ssh-x-term.git
cd ssh-x-term
go build -o sxt ./cmd/sxt

Or:

go install github.com/eugeniofciuvasile/ssh-x-term/cmd/sxt@latest

Option 4: Prebuilt Binary

Download prebuilt binaries for Linux, macOS, and Windows from the GitHub Releases page.


๐ŸŽฎ Keybindings & Controls

Main Host View

Key Action
Enter Connect to selected SSH host
t Open Tunnel & Port Forwarding Manager
s Open SCP / SFTP File Manager
a / e / d Add / Edit / Delete host connection
o Toggle tmux session window mode
/ Filter / Search hosts
q Quit application

Tunnel Manager (t)

Key Action
Space / Enter Activate / Deactivate selected tunnel
v / g Open Visual Topology Graph & Inspector
a / e / d Add / Edit / Delete tunnel configuration
Esc / q Return to host list

Tunnel Form (a / e)

Key Action
Tab / Shift+Tab Navigate fields
Ctrl+T Cycle tunnel type (Local -L / Remote -R / Dynamic -D)
Ctrl+A Toggle Auto-start on Connect
Enter Save tunnel
Esc Cancel

Topology Graph & Live Inspector (v / g)

Key Action
Space / Enter Activate / Deactivate tunnel
x Toggle Live Traffic Inspector / Topology View
y / Ctrl+Y Copy all captured packets to clipboard
m Toggle Hex + ASCII Dump / ASCII Text Stream mode
f Pause / Resume live packet stream
c Clear packet capture buffer
โ† / โ†’ Switch between tunnels
โ†‘ / โ†“ / PgUp / PgDn Scroll packet stream
Esc / q Back to Tunnel Manager

โš™๏ธ Configuration

Storage Description
Local Standard SSH config at ~/.ssh/config, passwords in system keyring
Bitwarden Secrets stored securely in Bitwarden vault via bw CLI

SSH-X-Term stores metadata as clean structured comments in your standard SSH config and remains 100% compatible with OpenSSH tools.


๐Ÿ”‘ SSH Agent Setup (Recommended)

eval $(ssh-agent)
ssh-add ~/.ssh/id_ed25519

Once added, SSH-X-Term can use encrypted keys seamlessly without prompting for passphrases.


๐Ÿ›ก๏ธ Security & Disclaimer

SSH-X-Term is released under the MIT License.

  • Credentials are never logged or stored in plaintext.
  • All secrets are delegated to native OS Keyring APIs or Bitwarden.
  • Tunnels run in secure goroutines with memory isolation and bounded ring buffers for packet inspection.

๐Ÿ‘ Credits

About

TUI to handle multiple SSH connections simultaneously

Topics

Resources

Contributing

Stars

18 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages