@ushastoe/sshhelper
v1.0.2
Published
Terminal UI SSH manager for hosts, tunnels, and file transfer
Maintainers
Readme
SSHHelper
Terminal UI SSH manager on Node.js.
Features
- Reads hosts from
~/.ssh/config - Shows host table in TUI (
alias | url/hostname | port) - Supports
Includedirectives and wildcard host patterns - Connects to selected host in the same terminal (
ssh <host>) - Creates and manages background SSH tunnels:
- Local forward (
-L) - Remote forward (
-R) - Dynamic SOCKS (
-D)
- Local forward (
- Persists tunnel records and PIDs in
~/.sshhelper/state.json - Can stop previously started tunnels after app restart
- Prepared for localization (English and Russian dictionaries included)
Install
npm installGlobal CLI Install
# local source (from this folder)
npm i -g .
# from npm registry (after publish)
npm i -g @ushastoe/sshhelperCommand names: sshhelper, sshh
Run
npm startBuild Binaries
# Windows .exe
npm run build:win
# Linux executable
npm run build:linux
# Both
npm run build:allBuild artifacts are written to dist/.
Publish to npm
# 1) login once
npm login
# 2) check package contents/version
npm pack --dry-run
# 3) publish
npm publishPackage name is configured as @ushastoe/sshhelper (scoped public package).
Keybindings
Tab: switch focus (hosts/tunnels)Enterorc: connect selected hosta: add tunnels: start selected tunnelx: stop selected tunneldorDelete: delete selected tunnel recorde: run command on selected remote host (via SSH) and view its outputi: runssh-copy-idfor selected remote hosto: export SSHHelper config (tunnels + locale) to JSON filep: import SSHHelper config from JSON filer: reload hosts and tunnel statusesl: switch UI languageqorCtrl+C: quit
Notes
- SSH options like
ProxyJump,Host *, identities, and include-based defaults are resolved by your localsshclient. - Password mode uses
SSH_ASKPASSand does not store passwords in state. - Tunnel logs are written to
~/.sshhelper/logs. - In step-by-step input dialogs:
Enter=Next,Cancelcloses the current dialog, and buttons are clickable with mouse.
