[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2062":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":37,"readmeContent":38,"aiSummary":39,"trendingCount":16,"starSnapshotCount":16,"syncStatus":14,"lastSyncTime":40,"discoverSource":41},2062,"omnyssh","timhartmann7\u002Fomnyssh","timhartmann7","A fast, keyboard-driven TUI for managing SSH connections, written in Rust","",null,"Rust",208,16,2,6,0,10,35,69,30,3.69,"Apache License 2.0",false,"main",true,[27,28,29,30,31,32,33,34,35,36],"cli","dev-ops","ratatui","rust","sftp","ssh","ssh-client","ssh-manager","terminal","tui","2026-06-12 02:00:36","\u003Cdiv align=\"center\">\n\n# OmnySSH\n\n### TUI SSH dashboard & server manager — manage all your servers from a single terminal window\n\n[![Crates.io](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Fomnyssh.svg)](https:\u002F\u002Fcrates.io\u002Fcrates\u002Fomnyssh)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache--2.0-blue.svg)](LICENSE)\n[![Downloads](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fd\u002Fomnyssh.svg)](https:\u002F\u002Fcrates.io\u002Fcrates\u002Fomnyssh)\n[![Build Status](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Ftimhartmann7\u002Fomnyssh\u002Fci.yml?branch=main)](https:\u002F\u002Fgithub.com\u002Ftimhartmann7\u002Fomnyssh\u002Factions)\n\n![Demo](assets\u002Fdemo.gif)\n\n**[Features](#features)** •\n**[Installation](#installation)** •\n**[Quick Start](#quick-start)** •\n**[Documentation](#documentation)** •\n**[Contributing](#contributing)**\n\n\u003C\u002Fdiv>\n\n---\n\n## Why OmnySSH?\n\nManaging 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.\n\n**Stop switching between tools. Start managing smarter.**\n\n| Traditional Workflow | With OmnySSH |\n|---------------------|--------------|\n| Open 10 terminal tabs for 10 servers | Single dashboard with all servers visible |\n| `ssh user@192.168.1.10` → `top` → note CPU | Live CPU\u002FRAM\u002FDisk metrics on cards |\n| `scp -r local\u002F user@host:\u002Fremote\u002F` | Drag-and-drop file manager (local ↔ remote) |\n| Paste the same deploy command everywhere | Save as snippet, broadcast to all hosts |\n| `tmux` for multi-session SSH | Built-in tabs + split-view terminal |\n\n---\n\n## Features\n\n### 📊 **Live Metrics Dashboard**\nServer cards with real-time CPU, RAM, and disk usage. Color-coded thresholds (green → yellow → red) make it easy to spot issues at a glance.\n\n### 📁 **Visual File Manager**\nSplit-panel SFTP browser (local ↔ remote) with progress bars, multi-selection, and intuitive keyboard shortcuts. No more memorizing `scp` syntax.\n\n### ⚡ **Command Snippets**\nSave frequently-used commands and execute them on any server with one keypress. Broadcast a command to multiple hosts simultaneously.\n\n### 🖥️ **Multi-Session Terminal**\nPTY tabs and split-view for working on several servers at once. Switch between hosts without leaving the app.\n\n### 🔍 **Fuzzy Search**\nFind any host or snippet instantly. Type a few letters, get instant results.\n\n### 🎨 **4 Built-in Themes**\nChoose from **Default**, **Dracula**, **Nord**, or **Gruvbox**. Switch themes on the fly with `--theme`.\n\n### ⌨️ **Configurable Keybindings**\nRemap global shortcuts in one TOML file. Make OmnySSH work the way you work.\n\n### 🌍 **Cross-Platform**\nLinux, macOS, Windows. Single static binary, no runtime dependencies.\n\n---\n\n## Comparison\n\n| Feature | OmnySSH | plain SSH | Termius | tmux + ssh |\n|---------|---------|-----------|---------|------------|\n| **TUI interface** | ✅ | ❌ | ✅ (GUI) | ✅ |\n| **Live metrics dashboard** | ✅ | ❌ | ✅ | ❌ |\n| **Visual file manager (SFTP)** | ✅ | ❌ | ✅ | ❌ |\n| **Command snippets** | ✅ | ❌ | ✅ | ❌ |\n| **Multi-session tabs** | ✅ | ❌ | ✅ | ✅ |\n| **Fuzzy search** | ✅ | ❌ | ✅ | ❌ |\n| **Configurable themes** | ✅ | ❌ | ✅ | ⚠️ |\n| **Open source** | ✅ | ✅ | ❌ | ✅ |\n| **Free** | ✅ | ✅ | 💰 | ✅ |\n| **Runs in terminal** | ✅ | ✅ | ❌ | ✅ |\n| **Single binary** | ✅ | ✅ | ❌ | ❌ |\n\n---\n\n## Installation\n\n### ⚡ Quick Install (Recommended)\n\n**One command to install on Linux\u002FmacOS:**\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Ftimhartmann7\u002Fomnyssh\u002Fmain\u002Finstall.sh | sh\n```\n\nThis script auto-detects your OS and architecture, downloads the latest release, and installs it to your PATH.\n\n---\n\n### 🍺 Homebrew (macOS\u002FLinux)\n\n```bash\nbrew install timhartmann7\u002Ftap\u002Fomnyssh\n```\n\n---\n\n### 📦 Pre-built Binaries\n\nDownload from the [**Releases**](https:\u002F\u002Fgithub.com\u002Ftimhartmann7\u002Fomnyssh\u002Freleases) page:\n\n| Platform | Archive |\n|----------|---------|\n| Linux x86_64 | `omny-x86_64-unknown-linux-gnu.tar.gz` |\n| Linux ARM64 | `omny-aarch64-unknown-linux-gnu.tar.gz` |\n| macOS Intel | `omny-x86_64-apple-darwin.tar.gz` |\n| macOS Apple Silicon | `omny-aarch64-apple-darwin.tar.gz` |\n| Windows x86_64 | `omny-x86_64-pc-windows-msvc.zip` |\n\nExtract and move the binary to your PATH:\n\n```bash\ntar -xzf omny-*.tar.gz\nsudo mv omny \u002Fusr\u002Flocal\u002Fbin\u002F\n```\n\n---\n\n### 🦀 Cargo (from crates.io)\n\n```bash\ncargo install omnyssh\n```\n\n---\n\n### 🔨 From Source\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Ftimhartmann7\u002Fomnyssh.git\ncd omnyssh\ncargo build --release\n# Binary at: .\u002Ftarget\u002Frelease\u002Fomny\n```\n\n---\n\n### ❄️ Nix (Flakes)\n\nA `flake.nix` is provided for [Nix](https:\u002F\u002Fnixos.org\u002F) users. Requires flakes\nenabled (`experimental-features = nix-command flakes` in `~\u002F.config\u002Fnix\u002Fnix.conf`).\n\n**Run without installing:**\n\n```bash\nnix run github:timhartmann7\u002Fomnyssh\nnix run github:timhartmann7\u002Fomnyssh -- --theme dracula\n```\n\n**Build a local checkout:**\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Ftimhartmann7\u002Fomnyssh.git\ncd omnyssh\nnix build              # binary at .\u002Fresult\u002Fbin\u002Fomny\n.\u002Fresult\u002Fbin\u002Fomny --version\n```\n\n**Install into your user profile:**\n\n```bash\nnix profile install github:timhartmann7\u002Fomnyssh\n```\n\n**Develop with a pinned toolchain:**\n\n```bash\nnix develop            # drops you into a shell with rustc, cargo, clippy,\n                       # rustfmt, rust-analyzer, and all build inputs ready\ncargo build\n```\n\nThe flake exposes `packages.default` (the `omny` binary plus man page),\n`apps.default` (for `nix run`), and `devShells.default`. It evaluates\ncleanly across `x86_64-linux`, `aarch64-linux`, `x86_64-darwin`, and\n`aarch64-darwin`.\n\n---\n\n## Quick Start\n\n1. **Install OmnySSH** (see above)\n\n2. **Run the app:**\n\n   ```bash\n   omny\n   ```\n\n3. **Add your first server:**\n   - Press `a` in the dashboard\n   - Enter hostname, user, and SSH key path\n   - Press `Enter` to connect\n\n4. **Try different themes:**\n\n   ```bash\n   omny --theme dracula\n   omny --theme nord\n   omny --theme gruvbox\n   ```\n\n5. **View full documentation:**\n\n   ```bash\n   man omny      # Man page with all options\n   omny --help   # Quick reference\n   ```\n\n6. **Explore features:**\n   - `1` — Dashboard (live metrics)\n   - `2` — File Manager (SFTP browser)\n   - `3` — Snippets (saved commands)\n   - `4` — Terminal (multi-session)\n   - `\u002F` — Fuzzy search\n   - `?` — Help popup\n\n---\n\n## Documentation\n\n### Man Page (Linux\u002FmacOS)\n\n```bash\nman omny\n```\n\n### Usage\n\n```\nomny [OPTIONS]\n\nOptions:\n  -c, --config \u003CFILE>   Path to a custom config file\n  -t, --theme \u003CTHEME>   Override the color theme (default | dracula | nord | gruvbox)\n  -v, --verbose         Enable debug logging (written to stderr)\n  -h, --help            Print help\n  -V, --version         Print version\n```\n\n### Configuration\n\nConfig files live in the native OS config directory:\n\n| OS | Path |\n|----|------|\n| **Linux** | `~\u002F.config\u002Fomnyssh\u002F` (or `$XDG_CONFIG_HOME\u002Fomnyssh\u002F`) |\n| **macOS** | `~\u002FLibrary\u002FApplication Support\u002Fomnyssh\u002F` |\n| **Windows** | `%APPDATA%\\omnyssh\\` |\n| **Termux (Android)** | `~\u002F.config\u002Fomnyssh\u002F` |\n\n> On macOS the path contains a space, so quote it in the shell:\n> `ls \"~\u002FLibrary\u002FApplication Support\u002Fomnyssh\u002F\"` (or use `~\u002FLibrary\u002F'Application Support'\u002Fomnyssh\u002F`).\n\n| File | Purpose |\n|------|---------|\n| `config.toml` | App settings, theme, keybindings |\n| `hosts.toml` | Managed host list |\n| `snippets.toml` | Saved commands |\n| `omnyssh.log.YYYY-MM-DD` | Daily rolling log file |\n\nThe original `~\u002F.ssh\u002Fconfig` is **never modified** — hosts are imported read-only at startup.\n\n#### Example: config.toml\n\n```toml\n[general]\nrefresh_interval = 30          # seconds between metric refreshes\ndefault_shell = \"\u002Fbin\u002Fbash\"\nssh_command = \"ssh\"            # path to system SSH binary\nmax_concurrent_connections = 10\n\n[ui]\ntheme = \"default\"              # default | dracula | nord | gruvbox\nshow_ip = true\nshow_uptime = true\ncard_layout = \"grid\"           # grid | list\nborder_style = \"rounded\"       # rounded | plain | double\n\n[keybindings]\nquit         = \"q\"\nsearch       = \"\u002F\"\nconnect      = \"Enter\"\ndashboard    = \"1\"\nfile_manager = \"2\"\nsnippets     = \"3\"\n```\n\n#### Example: hosts.toml\n\n```toml\n[[hosts]]\nname = \"web-prod-1\"\nhostname = \"192.168.1.10\"\nuser = \"deploy\"\nport = 22\nidentity_file = \"~\u002F.ssh\u002Fid_ed25519\"\ntags = [\"production\", \"web\"]\nnotes = \"Main web server. Nginx + Node.js\"\n\n[[hosts]]\nname = \"db-master\"\nhostname = \"10.0.0.50\"\nuser = \"admin\"\nport = 2222\ntags = [\"production\", \"database\"]\nnotes = \"PostgreSQL 16. Don't restart without warning #backend\"\n```\n\n#### Example: snippets.toml\n\n```toml\n[[snippets]]\nname = \"Docker: restart all\"\ncommand = \"cd \u002Fopt\u002Fapp && docker compose down && docker compose up -d\"\nscope = \"global\"\ntags = [\"docker\"]\n\n[[snippets]]\nname = \"Restart service\"\ncommand = \"sudo systemctl restart {{service_name}}\"\nscope = \"global\"\nparams = [\"service_name\"]\n```\n\n### Themes\n\n| Theme | Description |\n|-------|-------------|\n| `default` | Neutral blue\u002Fcyan — works with any terminal palette |\n| `dracula` | Purple, pink, green — [Dracula](https:\u002F\u002Fdraculatheme.com\u002F) |\n| `nord` | Arctic blues and teals — [Nord](https:\u002F\u002Fwww.nordtheme.com\u002F) |\n| `gruvbox` | Warm amber and orange — [Gruvbox](https:\u002F\u002Fgithub.com\u002Fmorhetz\u002Fgruvbox) |\n\nSet the theme permanently in `config.toml` or temporarily via the `--theme` flag.\n\n---\n\n## Development Roadmap\n\n| Version | Stage | Description |\n|---------|-------|-------------|\n| `0.0.1` | 0 | Project skeleton — TUI shell with placeholder screens |\n| `0.1.0` | 1 | Host list, SSH connect, fuzzy search — MVP |\n| `0.2.0` | 2 | Live metrics dashboard |\n| `0.3.0` | 3 | Snippets & quick-execute |\n| `0.4.0` | 4 | SFTP file manager |\n| `0.5.0` | 5 | Multi-session tabs & split-view |\n| **`1.0.0`** | **6** | **Polish, themes, configurable keybindings — current** ✅ |\n\n---\n\n## Contributing\n\nContributions are welcome! Please read [**CONTRIBUTING.md**](CONTRIBUTING.md) for development setup, code conventions, and the PR checklist.\n\n---\n\n## License\n\nApache 2.0 — see [**LICENSE**](LICENSE).\n\n---\n\n\u003Cdiv align=\"center\">\n\n### ⭐ Star this repo if you find it useful!\n\n[Report Bug](https:\u002F\u002Fgithub.com\u002Ftimhartmann7\u002Fomnyssh\u002Fissues) •\n[Request Feature](https:\u002F\u002Fgithub.com\u002Ftimhartmann7\u002Fomnyssh\u002Fissues) •\n[Discussions](https:\u002F\u002Fgithub.com\u002Ftimhartmann7\u002Fomnyssh\u002Fdiscussions)\n\n\u003C\u002Fdiv>\n","OmnySSH 是一个基于 Rust 开发的快速键盘驱动终端用户界面（TUI），用于管理和监控 SSH 连接。其核心功能包括实时服务器性能指标显示、直观的文件管理器支持本地与远程之间的拖拽操作、命令片段保存及一键执行、多会话终端处理等，旨在通过单一终端窗口简化对多个服务器的操作。特别适合需要频繁访问和管理多台远程服务器的开发者或运维人员使用，在提高工作效率的同时减少了在不同工具间切换的成本。","2026-06-11 02:47:50","CREATED_QUERY"]