npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ssh-x-term

v2.1.4

Published

TUI to handle multiple SSH connections simultaneously

Readme

SSH-X-Term


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