susshi 0.17.0

A modern terminal-based SSH connection manager with a beautiful Catppuccin TUI
docs.rs failed to build susshi-0.17.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: susshi-0.15.6

🍣 susshi

CI Crates.io Crates downloads

MSRV Maintenance Security Audit Top language codecov

susshi is a terminal-based SSH connection manager written in Rust β€” hierarchical inventory, Catppuccin-themed TUI, jump hosts, Wallix bastions, tunnels, and SCP in one place.

susshi TUI screenshot

🧐 Why Susshi?

Why use susshi rather than plain ssh / a single ~/.ssh/config?

Managing dozens or hundreds of hosts with a single ssh_config file quickly becomes fragile and inefficient: no centralized visibility, no interactive interface, limited grouping, and poor ergonomics for common tasks (favorites, tunnels, SCP, bastions).

susshi addresses these gaps with clear benefits:

  • Ergonomics & speed: fuzzy search, keyboard-driven navigation, help overlays and one-key connect β€” no editing and re-running commands.
  • Infrastructure visibility: hierarchical grouping, favorites, tags and filtered views that make the inventory understandable at a glance.
  • Bastion & multi-hop workflows: automatic orchestration of jump hops and Wallix integration β€” compose complex connection paths without repetitive ssh_config entries.
  • Inventory management & reusability: variable inheritance, environment profiles, YAML includes and exports to Ansible/Terraform β€” maintain templates instead of copies.
  • Built-in operations: tunnels, integrated SCP, pre/post-connect hooks and --validate checks to avoid human errors.
  • Security & privacy: local-first configuration, no cloud dependency, and automated audits in CI (cargo-deny).

In short: susshi preserves compatibility with the SSH ecosystem while adding ergonomics, visibility and primitives to automate and secure your connections at scale.


πŸ₯Š How it compares to the alternatives

Feature Susshi 🍣 Standard SSH Config πŸ“„ Termius / Warp ☁️ ClusterSSH πŸ•ΈοΈ
Interface Modern, interactive TUI Raw text / grep Heavy GUI / Electron Outdated X11 windows
Speed Instant (Native Rust) Instant Resource-heavy Laggy on modern systems
Privacy 100% Local & Open Source 100% Local Cloud-first / Proprietary Local
Workflow Fuzzy-finding & Tags Manual typing Mouse-driven Multi-window chaos
Terminal Agnostic Works in any terminal Works in any terminal Forces their own app Requires X11 forwarding

✨ Key Benefits

  • ⚑ Blazing Fast & Lightweight: Built in Rust with a Ratatui frontend. It compiles to a tiny native binary (< 10MB) that starts instantly and consumes virtually zero RAM.
  • πŸ”’ Privacy & Security First: Your infrastructure layout is sensitive data. Susshi is local-first; it requires no login, no cloud synchronization, and features zero telemetry. Your data stays where it belongs: on your machine.
  • 🧠 Keyboard-Driven Ergonomics: Keep your hands on the home row. Instantly filter through hundreds of servers using fuzzy search, navigate with Arrow/Vim keys, and connect with a single press of Enter.
  • 🧩 Fits Your Existing Workflow: Susshi doesn't try to replace your ecosystem. It works perfectly inside tmux, screen, or your favorite terminal emulator (Alacritty, Kitty, iTerm2, WezTerm), acting as a dedicated Unix utility that does one thing right.

Installation

# Linux x86_64
wget https://github.com/yatoub/susshi/releases/latest/download/susshi-linux-amd64
chmod +x susshi-linux-amd64 && sudo mv susshi-linux-amd64 /usr/local/bin/susshi

# Linux x86_64 (musl fallback)
wget https://github.com/yatoub/susshi/releases/latest/download/susshi-linux-amd64-musl

# macOS Apple Silicon
wget https://github.com/yatoub/susshi/releases/latest/download/susshi-macos-arm64

# macOS Intel
wget https://github.com/yatoub/susshi/releases/latest/download/susshi-macos-amd64

# Arch Linux
paru -S susshi-bin

For DEB/RPM packages see the releases page.

Windows: partial support β€” TUI and config parsing work, interactive SSH (PTY) and Wallix are Unix-only.

Quick Start

Create ~/.susshi.yml:

defaults:
  user: "ops-user"
  ssh_key: "~/.ssh/id_ed25519"
  theme: mocha  # latte | frappe | macchiato | mocha

groups:
  - name: "Production"
    servers:
      - name: "api-01"
        host: "198.51.100.10"
        mode: "direct"
susshi          # open TUI
susshi --direct ops-user@198.51.100.10   # one-shot connection

Full annotated example: examples/full_config.yaml

Essential Keybindings

Key Action
j / k Move down / up
Enter Connect or toggle group
/ Search
Tab Switch mode (Direct / Jump / Wallix)
f / F Favorite toggle / favorites-only view
T Tunnel manager
h Keyboard help overlay
q Quit

Documentation

Guide Description
docs/configuration.md Full config schema, inheritance model, includes, _vars
docs/tui.md TUI navigation, search, keybindings, diagnostics
docs/cli.md One-shot connection, --validate, --exec-group
docs/import-export.md Import from ~/.ssh/config, export to Ansible/Terraform/Nmap/CSV
docs/wallix.md Wallix bastion configuration and troubleshooting
docs/tunnels.md SSH tunnel configuration and TUI manager
docs/scp.md In-TUI SCP file transfers
docs/hooks.md Pre/post-connect shell hooks
docs/ssh-advanced.md Certificates, agent sockets, ControlMaster, agent forwarding
docs/troubleshooting.md Diagnostics, common issues, state file

Contributing

Contributions are welcome. Please open a Pull Request β€” see CONTRIBUTING.md for conventions.

License

This project is licensed under the MIT License.