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

推荐订阅源

小众软件
小众软件
C
Check Point Blog
Vercel News
Vercel News
Y
Y Combinator Blog
G
Google Developers Blog
P
Proofpoint News Feed
WordPress大学
WordPress大学
MongoDB | Blog
MongoDB | Blog
博客园 - 司徒正美
Last Week in AI
Last Week in AI
博客园 - 【当耐特】
N
Netflix TechBlog - Medium
L
LangChain Blog
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
博客园_首页
B
Blog RSS Feed
The Cloudflare Blog
MyScale Blog
MyScale Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Security Blog
Microsoft Security Blog

Show HN

Show HN: AI agents for UK GDAD PCF roles and their skills The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal). Release v0.1.2.1 · kouhxp/yapsnap GitHub - noopolis/moltnet: Self-hostable chat network for AI agents. Pre-built bridges for Claude Code, Codex, and the Claws. Rooms, DMs, history. No Slack bots, no Matrix, no glue code.
GitHub - timhartmann7/omnyssh: A fast, keyboard-driven TU...
hartmann7 · 2026-06-13 · via 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.