Repository navigation
Server Management
neossh reads your ~/.ssh/config (and all Include files) and displays servers in a clean, scrollable list. Wildcard patterns (Host *.corp, Host *) are displayed with [wildcard] badges and protected from accidental direct connections.
Press a to open the add server form. The form provides a comprehensive tabbed interface with all SSH configuration options:
- Basic: Alias, hostname, user, port, identity file
- Connection: Proxy settings, connection multiplexing, forwarding
- Security: Ciphers, MACs, key exchange algorithms
- Advanced: Pre-connect hooks, certificate commands, passwords
Tip
Default identity key
Configure a global default key with neossh --default-key ~/.ssh/id_ed25519 to auto-prefill the identity file for new servers.
Press e on any server to open the edit form. All changes are written back to the original source file (respecting Include directives).
Press d to delete with a confirmation dialog. The deletion modifies only the file that defines the host.
Press p to pin a server to the top of the list. Pinned servers are persisted in metadata.json and as # pin comments in SSH config.
Some hosts (jump hosts, proxy targets, internal nodes) are better kept out of the main list:
- Press m on a server to toggle hidden/visible
- Press Shift+H to toggle showing hidden servers in the list
- Launch with
neossh -Hto start with hidden servers visible
Hidden status is stored as # hidden in your SSH config.
Press y or Shift+C to clone a server configuration. neossh automatically deduplicates the alias (srv → srv_1 → srv_2).
Press v to parse an SSH command from your clipboard into the add server form. neossh intelligently extracts flags, identity keys, ports, jump hosts, and deduces an alias.
Organize servers into collapsible folders using hierarchical aliases:
Host prod/database/primary
Host prod/database/replica
Host prod/web/frontend
Host staging/api
- Press Space or Enter on a group header to toggle collapse/expand
- Press m on a group header for the group menu:
- Tmux Connect All: Launch tmux with panes connected to all servers in the group
- Collapse All / Expand All: Batch toggle all groups
Select multiple servers in the main server list to perform operations in bulk:
-
Checkbox Toggle: Press Space on any focused server to toggle selection (
[✓]/[ ]). - Select All: Press Ctrl+A or * to select all servers in the current view, or toggle selection across all servers in a focused group.
- Clear Selection: Press Esc to deselect all servers (pressing Esc again returns focus to the search bar).
-
Status Counter: A dynamic badge in the status bar displays the count of selected servers (e.g.
[3 servers selected]). - Bulk Ping: Press Shift+G to ping only the selected servers concurrently (falls back to pinging all servers when none are selected).
- Bulk Tagging: Press t when multiple servers are selected to open the bulk tag modal and add/remove tags across all selected servers simultaneously.
-
Multi-Session Engine & Tabs: Press Enter when multiple servers are selected (or run command snippets via X) to open the interactive Multi-Session Dashboard:
-
Tab 0 (Overview Dashboard): Aggregated status table with real-time execution progress (
⏳ Running,✓ Success,✗ Failed), durations, and output summaries. - Interactive Drill-Down: Press Enter on any single server row to jump immediately to its dedicated session tab with scrollable output and live interactive shell capability (i).
- Split View Tab: Check 2 to 4 servers with Space and press Enter to open a multi-pane split view (side-by-side or 2x2 grid) with Tab navigation.
- Tab Navigation: Jump directly to tabs using Alt+0 (Dashboard) and Alt+1..9 (individual session tabs).
-
Tab 0 (Overview Dashboard): Aggregated status table with real-time execution progress (
neossh preserves all space-separated aliases on a single Host line:
Host web1 web2 staging
HostName 192.168.1.10
User deployAll aliases are indexed for fuzzy search and connection. They are preserved verbatim on writeback.
Deploy your personal configuration files and shell environment (.bashrc, .zshrc, .tmux.conf, .vimrc, etc.) to remote servers seamlessly with zero remote installation:
-
1-Click Sync (D): Highlight any server in the Servers panel and press D (or Shift+D). A confirmation dialog displays the target server alias and details, streaming your local
chezmoi archivedirectly over SSH intotar -xf - -C ~. -
Automatic Sync on Connect: In the Add/Edit server form, set
SyncDotfilesOnConnecttoyes(persisted as# sync-dotfiles: truein your SSH configuration). Whenever you connect (Enter), neossh synchronizes your dotfiles before starting the interactive shell. -
Zero Remote Dependencies: The remote host only needs the standard
tarcommand (available on every Unix-like system).chezmoiis only required locally.
For complete details, see Dotfiles Sync (chezmoi).
Press 2 to focus the Active Sessions panel. This panel tracks running SSH and background sessions with:
- Process inspection: PID, forwarded ports, identity keys
- One-touch termination: Press Shift+K to kill a session
- Config generation: Press a to create a server entry from a running connection
neossh is an actively maintained continuation of lazyssh by Adembc. Licensed under Apache-2.0.