Skip to content

Repository files navigation

OmnySSH

Every server you manage, in one window. Dashboard, terminal, SFTP, snippets.

OmnySSH GUI dashboard

Downloads Latest release Stars License Build

InstallFeaturesSSH keysComparisonTUI versionTelegram


Install

One command on macOS and Linux:

curl -fsSL https://raw.githubusercontent.com/timhartmann7/omnyssh/main/install.sh | sh

The script detects your OS and architecture and installs the latest desktop build — into /Applications on macOS, your app menu on Linux. Want the terminal app instead, or both? curl … | sh -s -- --tui (or --both). Prefer clicking? Grab the file for your platform from Releases.

Platform File
macOS Apple Silicon OmnySSH-aarch64-apple-darwin.dmg
macOS Intel OmnySSH-x86_64-apple-darwin.dmg
Linux x86_64 OmnySSH-x86_64.AppImage / .deb / .rpm
Windows x86_64 OmnySSH-x86_64-setup.exe

No account, no login screen, no telemetry. The app opens with an empty dashboard and reads your existing ~/.ssh/config if you have one — hosts behind a bastion (ProxyJump) included.


What it does

You add a server once. After that it sits on the dashboard as a card with live CPU, RAM and disk, uptime, distro, the top processes eating your CPU, and a badge for what runs on it. One click on sh drops you into a real PTY terminal. One click on files opens a two panel SFTP browser. Ten servers fit on one screen and refresh on their own.

Live dashboard

Cards for every host with CPU, RAM and disk bars, uptime, OS version, top processes, and a Docker badge showing how many containers are up. Bars turn yellow, then red, so a sick server is obvious from across the room.

Real terminals

Full PTY sessions in tabs. Open as many servers as you need, switch between them from the sidebar, and keep them running while you work in the dashboard.

Two panel SFTP

Local on the left, remote on the right. Tick the files you want and move them across, watch the progress bar, select many at once. Nobody remembers scp -r syntax anyway.

Snippets

Save the commands you paste every week. Pick a snippet, tick the hosts to send it to, and it runs on all of them at once. Snippets take parameters, so sudo systemctl restart {{service}} asks you for the name.

Search everything

Hit ⌘K and start typing. Every host you have, plus every session already open. Enter drops you into a terminal on the host you picked, or back into the session you left.

Streamer mode

Swaps every real IP on screen for a fake one. Record a demo or share your screen without leaking client infrastructure.

Light and dark themes

Both ship in the app. Switch from the sidebar.

Small

Around 130 MB of RAM with several sessions open, on a 20 MB download. Termius on the same machine, doing nothing, sat at 649 MB across nine processes. Full numbers in the comparison.


SSH key setup

Password auth on a fresh VPS is the thing you always mean to fix and never do. OmnySSH does it in one click.

Pick a host you added yourself that has no key configured, hit Set up SSH key, and the app generates an Ed25519 key, appends the public half to authorized_keys, and switches the host over to key auth. It then opens a fresh connection with the new key to prove the key works, and only after that does it turn password login off. There is no confirmation step in between: starting the flow means going through with it.

Before touching sshd_config it saves a backup on the server. If any step fails, it restores the backup and leaves your access exactly as it was. Your private key never leaves your machine, and nothing gets sent anywhere except the server you chose.

The code lives in crates/omnyssh-core/src/ssh/key_setup.rs. Read it before you point this at production. That is the whole point of shipping it open source.


Comparison

Memory and CPU measured on an M4 Mac with both apps open and idle.

OmnySSH Termius tmux + ssh
RAM at idle ~130 MB ~649 MB tiny
Processes 4 9 1
Live metrics dashboard
Two panel SFTP
Snippets and broadcast
One click key setup
Account required
Telemetry
Open source
Price free 💰 free

tmux stays in the table because it is what most of us actually use. It wins on weight and loses on everything visual.


The TUI version

OmnySSH started in the terminal, and the TUI is still here, still maintained, still gets releases.

Demo

Same engine underneath: the repo is a cargo workspace where crates/omnyssh-core holds the logic and the frontends sit on top. Dashboard, SFTP, snippets, multi session tabs, fuzzy search, plus four themes (default, dracula, nord, gruvbox) and remappable keys in config.toml.

Crates.io Crates downloads

# cargo
cargo install omnyssh

# homebrew
brew install timhartmann7/tap/omnyssh

# nix
nix run github:timhartmann7/omnyssh

Then run omny. Press a to add a host, / to search, ? for help, Shift+K to set up keys on the selected host.

Prebuilt TUI binaries for Linux, macOS, Windows and Termux live on the Releases page under the omny-* files. Config sits in ~/.config/omnyssh/ on Linux, ~/Library/Application Support/omnyssh/ on macOS, %APPDATA%\omnyssh\ on Windows. Your ~/.ssh/config is read at startup and never written to.

Full options, keybindings and config examples: man omny.


Dev notes

I write about what I am building on Telegram. Release notes, work in progress screenshots, benchmarks, and the things that broke on the way there. Usually before they show up anywhere else.


Contributing

Pull requests welcome. CONTRIBUTING.md has the setup, the conventions and the checklist. Open an issue first if you plan something big, so we do not both build it.

Workspace layout:

crates/omnyssh-core   engine, frontend agnostic
crates/omnyssh        TUI application (binary: omny)
crates/omnyssh-gui    Tauri desktop application

License

Apache 2.0. See LICENSE.

⭐ Star the repo if OmnySSH saved you a terminal tab

Report a bugRequest a featureDiscussions

About

A fast, keyboard-driven TUI for managing SSH connections, written in Rust

Topics

Resources

Contributing

Stars

486 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages