Repolode
Gu1llaum-3

Gu1llaum-3/sshm

A terminal TUI for browsing, connecting to, and managing SSH hosts defined in your ~/.ssh/config file.

Stars
1,413
Forks
79
Open issues
25
Last commit
16 days ago

What is it?

SSHM is a command-line SSH manager written in Go. It reads and edits your existing ~/.ssh/config file, presenting hosts in an interactive terminal list where you can search by name, hostname or tag, and connect with a single keypress. You can also connect directly from the shell with sshm <host>, or run a remote command the same way.

Beyond connecting, SSHM handles host maintenance: adding, editing and deleting entries through guided forms, moving hosts between Include'd config files, and checking which hosts are reachable over SSH with color-coded status indicators. Port forwarding (local, remote and dynamic SOCKS) can be configured from the interface, and recently used forwarding setups are saved for reuse. Connection history is recorded so the list can be sorted by last login.

SSHM works directly with standard OpenSSH configuration, supports Include directives and custom config files via -c, and creates backups before modifying files. It ships as a single binary for Linux, macOS and Windows.

Key features

  • 01Interactive TUI for searching, browsing and connecting to SSH hosts
  • 02Direct connection and remote command execution from the shell with sshm <host>
  • 03Local, remote and dynamic (SOCKS) port forwarding with saved history
  • 04Add, edit, move and delete host entries while keeping ~/.ssh/config intact
  • 05Background SSH connectivity checks with status indicators
  • 06Automatic backups before configuration changes

Use cases

  • Managing a large number of servers spread across multiple SSH config Include files
  • Quickly opening database tunnels or SOCKS proxies to reach internal services
  • Checking which servers are currently reachable before running maintenance
  • Running one-off commands on production hosts from scripts or the shell

Quick start

  1. 1

    Install via Homebrew (macOS)

    brew install Gu1llaum-3/sshm/sshm
  2. 2

    Or install with the one-line Unix/Linux/macOS script

    Install with the official instructions in the README
  3. 3

    Launch the interactive TUI

    sshm

Things to know

  • Requires a ~/.ssh/config file, so it only manages hosts already defined there or added through it.
  • Move-to-file features need SSH Include directives set up in your config.

Topics

FAQ

What is sshm?
A terminal TUI for browsing, connecting to, and managing SSH hosts defined in your ~/.ssh/config file. SSHM is a command-line SSH manager written in Go. It reads and edits your existing ~/.ssh/config file, presenting hosts in an interactive terminal list where you can search by name, hostname or tag, and connect with a single keypress. You can also connect directly from the shell with sshm <host>, or run a remote command the same way.
Is sshm free to use? What license does it have?
sshm is open source under the MIT license. Check the license terms before using it in commercial products.
Is sshm still maintained?
Actively maintained. The last commit to sshm was on Oct 4, 2026.
What can I use sshm for?
Managing a large number of servers spread across multiple SSH config Include files Quickly opening database tunnels or SOCKS proxies to reach internal services Checking which servers are currently reachable before running maintenance Running one-off commands on production hosts from scripts or the shell
How do I install sshm?
Install via Homebrew (macOS): brew install Gu1llaum-3/sshm/sshm Or install with the one-line Unix/Linux/macOS script Launch the interactive TUI: sshm
Where can I get sshm?
The source code and installation instructions are on GitHub: https://github.com/Gu1llaum-3/sshm

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects