惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MongoDB | Blog
MongoDB | Blog
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
V
Visual Studio Blog
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
IT之家
IT之家
Vercel News
Vercel News
C
Check Point Blog
Google DeepMind News
Google DeepMind News
月光博客
月光博客
D
DataBreaches.Net
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
Y
Y Combinator Blog
Hugging Face - Blog
Hugging Face - Blog

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - timhartmann7/omnyssh: A fast, keyboard-driven TU...
hartmann7 · 2026-06-13 · via Hacker News: Show HN

TUI SSH dashboard & server manager — manage all your servers from a single terminal window

Crates.io License Downloads Build Status

Demo

FeaturesInstallationQuick StartDocumentationContributing


Why OmnySSH?

Managing multiple SSH servers shouldn't require juggling terminal tabs, remembering IP addresses, or running the same commands over and over. OmnySSH brings dashboard-style monitoring, visual file management, and command automation into a single, lightweight TUI.

Stop switching between tools. Start managing smarter.

Traditional Workflow With OmnySSH
Open 10 terminal tabs for 10 servers Single dashboard with all servers visible
ssh user@192.168.1.10top → note CPU Live CPU/RAM/Disk metrics on cards
scp -r local/ user@host:/remote/ Drag-and-drop file manager (local ↔ remote)
Paste the same deploy command everywhere Save as snippet, broadcast to all hosts
tmux for multi-session SSH Built-in tabs + split-view terminal

Features

📊 Live Metrics Dashboard

Server cards with real-time CPU, RAM, and disk usage. Color-coded thresholds (green → yellow → red) make it easy to spot issues at a glance.

📁 Visual File Manager

Split-panel SFTP browser (local ↔ remote) with progress bars, multi-selection, and intuitive keyboard shortcuts. No more memorizing scp syntax.

Command Snippets

Save frequently-used commands and execute them on any server with one keypress. Broadcast a command to multiple hosts simultaneously.

🖥️ Multi-Session Terminal

PTY tabs and split-view for working on several servers at once. Switch between hosts without leaving the app.

🔍 Fuzzy Search

Find any host or snippet instantly. Type a few letters, get instant results.

🎨 4 Built-in Themes

Choose from Default, Dracula, Nord, or Gruvbox. Switch with --theme, which saves your choice to config.toml.

⌨️ Configurable Keybindings

Remap global shortcuts in one TOML file. Make OmnySSH work the way you work.

🌍 Cross-Platform

Linux, macOS, Windows. Single self-contained binary — no runtime or interpreter to install.


Comparison

Feature OmnySSH plain SSH Termius tmux + ssh
TUI interface ✅ (GUI)
Live metrics dashboard
Visual file manager (SFTP)
Command snippets
Multi-session tabs
Fuzzy search
Configurable themes ⚠️
Open source
Free 💰
Runs in terminal
Single binary

Installation

⚡ Quick Install (Recommended)

One command to install on Linux/macOS:

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

This script auto-detects your OS and architecture, downloads the latest release, and installs it to your PATH.


🍺 Homebrew (macOS/Linux)

brew install timhartmann7/tap/omnyssh

📦 Pre-built Binaries

Download from the Releases page:

Platform Archive
Linux x86_64 omny-x86_64-unknown-linux-gnu.tar.gz
Linux ARM64 (static, incl. Termux) omny-aarch64-unknown-linux-musl.tar.gz
macOS Intel omny-x86_64-apple-darwin.tar.gz
macOS Apple Silicon omny-aarch64-apple-darwin.tar.gz
Windows x86_64 omny-x86_64-pc-windows-msvc.zip

Extract and move the binary to your PATH:

tar -xzf omny-*.tar.gz
sudo mv omny /usr/local/bin/

🦀 Cargo (from crates.io)


🔨 From Source

git clone https://github.com/timhartmann7/omnyssh.git
cd omnyssh
cargo build --release
# Binary at: ./target/release/omny

❄️ Nix (Flakes)

A flake.nix is provided for Nix users. Requires flakes enabled (experimental-features = nix-command flakes in ~/.config/nix/nix.conf).

Run without installing:

nix run github:timhartmann7/omnyssh
nix run github:timhartmann7/omnyssh -- --theme dracula

Build a local checkout:

git clone https://github.com/timhartmann7/omnyssh.git
cd omnyssh
nix build              # binary at ./result/bin/omny
./result/bin/omny --version

Install into your user profile:

nix profile install github:timhartmann7/omnyssh

Develop with a pinned toolchain:

nix develop            # drops you into a shell with rustc, cargo, clippy,
                       # rustfmt, rust-analyzer, and all build inputs ready
cargo build

The flake exposes packages.default (the omny binary plus man page), apps.default (for nix run), and devShells.default. It evaluates cleanly across x86_64-linux, aarch64-linux, x86_64-darwin, and aarch64-darwin.


Quick Start

  1. Install OmnySSH (see above)

  2. Run the app:

  3. Add your first server:

    • Press a in the dashboard
    • Enter hostname, user, and SSH key path
    • Press Enter to connect
  4. Try different themes:

    omny --theme dracula
    omny --theme nord
    omny --theme gruvbox
  5. View full documentation:

    man omny      # Man page with all options
    omny --help   # Quick reference
  6. Explore features:

    • 1 — Dashboard (live metrics)
    • 2 — File Manager (SFTP browser)
    • 3 — Snippets (saved commands)
    • 4 — Terminal (multi-session)
    • / — Fuzzy search
    • ? — Help popup

Documentation

Man Page (Linux/macOS)

Usage

omny [OPTIONS]

Options:
  -c, --config <FILE>   Path to a custom config file
  -t, --theme <THEME>   Override the color theme (default | dracula | nord | gruvbox)
  -v, --verbose         Enable debug logging (written to a log file)
  -h, --help            Print help
  -V, --version         Print version

Configuration

Config files live in the native OS config directory:

OS Path
Linux ~/.config/omnyssh/ (or $XDG_CONFIG_HOME/omnyssh/)
macOS ~/Library/Application Support/omnyssh/
Windows %APPDATA%\omnyssh\
Termux (Android) ~/.config/omnyssh/

On macOS the path contains a space, so quote it in the shell: ls ~/Library/'Application Support'/omnyssh/

File Purpose
config.toml App settings, theme, keybindings
hosts.toml Managed host list
snippets.toml Saved commands
omnyssh.log.YYYY-MM-DD Daily rolling log file

The original ~/.ssh/config is never modified — hosts are imported read-only at startup.

Example: config.toml

[general]
refresh_interval = 30          # seconds between metric refreshes
default_shell = "/bin/bash"
ssh_command = "ssh"            # path to system SSH binary
max_concurrent_connections = 10

[ui]
theme = "default"              # default | dracula | nord | gruvbox

[keybindings]
quit         = "q"
search       = "/"
connect      = "Enter"
dashboard    = "F1"
file_manager = "F2"
snippets     = "F3"
next_screen  = "Tab"           # cycle dashboard → files → snippets → terminal
next_tab     = "Tab"           # next terminal tab (or pane focus when split)

[update]
check_on_startup = true        # check GitHub Releases for a newer version on startup
skip_version = ""              # a version to skip; set when you choose "Skip this version"

Example: hosts.toml

[[hosts]]
name = "web-prod-1"
hostname = "192.168.1.10"
user = "deploy"
port = 22
identity_file = "~/.ssh/id_ed25519"
tags = ["production", "web"]
notes = "Main web server. Nginx + Node.js"

[[hosts]]
name = "db-master"
hostname = "10.0.0.50"
user = "admin"
port = 2222
tags = ["production", "database"]
notes = "PostgreSQL 16. Don't restart without warning #backend"

Example: snippets.toml

[[snippets]]
name = "Docker: restart all"
command = "cd /opt/app && docker compose down && docker compose up -d"
scope = "global"
tags = ["docker"]

[[snippets]]
name = "Restart service"
command = "sudo systemctl restart {{service_name}}"
scope = "global"
params = ["service_name"]

Themes

Theme Description
default Neutral blue/cyan — works with any terminal palette
dracula Purple, pink, green — Dracula
nord Arctic blues and teals — Nord
gruvbox Warm amber and orange — Gruvbox

Set the theme in config.toml, or pass --theme once — it is written back to config.toml and persists on the next run.


Development Roadmap

Version Stage Description
0.0.1 0 Project skeleton — TUI shell with placeholder screens
0.1.0 1 Host list, SSH connect, fuzzy search — MVP
0.2.0 2 Live metrics dashboard
0.3.0 3 Snippets & quick-execute
0.4.0 4 SFTP file manager
0.5.0 5 Multi-session tabs & split-view
1.0.4 6 Polish, themes, configurable keybindings — current

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for development setup, code conventions, and the PR checklist.

The repository is a cargo workspace: the frontend-agnostic engine lives in crates/omnyssh-core, and the TUI application (binary omny) lives in crates/omnyssh.


License

Apache 2.0 — see LICENSE.