omnyssh README

The project's README from github.com/timhartmann7/omnyssh. As one markdown file: README.md.

OmnySSH

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

OmnySSH GUI dashboard

Downloads Latest release Stars License Build

Install • Features • SSH keys • Comparison • TUI version • Telegram


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.

Keys with a passphrase work too. When a key is encrypted, OmnySSH asks for its passphrase once and keeps it in memory until you quit; it is never written to disk. On macOS and Linux a key already loaded in ssh-agent is used without asking. The host Password field is the server login password, not a key passphrase.


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.

👉 t.me/timhartmanndev


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 bug • Request a feature • Discussions

omnyssh (timhartmann7/omnyssh)

Searching Database…

1.2K ·GitHub
这是什么东西?OmnySSH 是一款免费开源的 SSH 客户端和服务器管理工具,支持 macOS、Windows 和 Linux。一个窗口里集成了实时指标仪表盘、多标签真实终端、双栏 SFTP、常用命令片段以及一键配置 SSH 密钥——既有桌面图形界面,也有终端版 TUI,使用 Rust 编写。
那它到底是桌面应用还是终端工具?两者都是。有一个用 Tauri 构建的桌面图形界面,还有一个叫 omny 的 TUI,两者共用同一个引擎:crates/omnyssh-core 存放核心逻辑,两个前端都构建在它之上,而且都还在持续发布新版本。
用之前我还需要准备什么?除了这个应用什么都不用:不需要注册账号,没有登录界面,也没有遥测数据收集。首次启动时它会读取你已有的 ~/.ssh/config,包括通过堡垒机(ProxyJump)连接的主机,所以你的服务器会立即显示出来。
一键配置 SSH 密钥的功能运行起来安全吗?设计上是安全的:它会生成 Ed25519 密钥,把主机切换为密钥认证,先备份 sshd_config,任何一步失败都会自动还原。但它没有确认步骤——一旦开始执行,密码登录就会被关闭——而且 README 建议在生产环境使用前先阅读 keysetup.rs。
它会把我的密钥或数据发送到别处吗?不会:你的私钥永远不会离开你的电脑,除了你选择连接的服务器之外,不会向任何地方发送任何数据。带口令保护的密钥只需输入一次口令,口令会保存在内存中直到你退出程序,绝不写入磁盘。
仪表盘上每台服务器显示哪些内容?每台主机一张卡片,带有实时 CPU、内存和磁盘进度条,运行时长、发行版版本、占用 CPU 最高的进程,以及一个统计其 Docker 容器数量的徽标。负载升高时进度条先变黄再变红,一屏大约能放下十台服务器,数据会自动刷新。
命令片段怎么在多台主机上同时执行?把命令保存一次,勾选多台主机,它就会在所有主机上同时执行。片段还支持参数——比如 sudo systemctl restart {{service}} 会提示你输入服务名称。
它比 Termius 轻量多少?在 M4 Mac 上空闲状态实测:OmnySSH 大约占 130 MB 内存、4 个进程,而 Termius 占 649 MB、9 个进程;安装包只有 20 MB 左右。而且和 Termius 不同,它不需要账号,也不发送遥测数据。
我要录制演示视频,屏幕上会显示真实的 IP 吗?不会——Streamer 模式会把屏幕上所有真实 IP 替换成假的,这样你录制或共享屏幕时就不会泄露客户的网络架构。
What are similar projects?shell-rs, WindTerm, xpipe, Netcatty, AceShell, navop, tailcat, labtether
Size
3.6 MB
Stars
1.2K
Age
5mo
Commits · 90 Days