How timhartmann7/omnyssh works
OmnySSH is a multi-frontend SSH server manager: a desktop GUI and maintained terminal UI use a shared Rust core. Users manage hosts, inspect server health, open SSH terminals, transfer files, run snippets, and configure keys and tunnels. The README documents additional search, streamer mode, themes, and updates. The graph reflects those documented capabilities; several backend links use enclosing source directories because their implementation was not sampled.
Main entry points: commands GUI commands · main.rs Terminal app · screens GUI screens · session.rs SSH sessions
Components 24
User frontends
- Desktop app
crates/omnyssh-gui/src/main.rs - Terminal app
crates/omnyssh/src/main.rs
Desktop interface
- GUI screens
crates/omnyssh-gui/ui/src/lib/screens - GUI IPC
crates/omnyssh-gui/ui/src/lib/ipc - GUI commands
crates/omnyssh-gui/src/commands - Event bridge
crates/omnyssh-gui/src/bridge.rs - Host/session search
crates/omnyssh-gui/ui/src/lib/components/CommandPalette.svelte - Streamer mode
crates/omnyssh-gui/ui/src/lib/stores/settings.ts
Shared SSH core
- Health dashboard
crates/omnyssh-core/src/ssh - SSH sessions
crates/omnyssh-core/src/ssh/session.rs - PTY terminal
crates/omnyssh-core/src/ssh/pty.rs - SFTP transfers
crates/omnyssh-core/src/ssh/sftp.rs - Command snippets
crates/omnyssh-core/src/config/snippets.rs - SSH key setup
crates/omnyssh-core/src/ssh/key_setup.rs - SSH tunnels
crates/omnyssh-core/src/ssh/tunnel.rs - Service discovery
crates/omnyssh-core/src/ssh/discovery.rs - In-app updates
crates/omnyssh-core/src/update.rs
Hosts and settings
- Host management
crates/omnyssh-core/src/config/mod.rs - SSH config import
crates/omnyssh-core/src/config/ssh_config.rs - App preferences
crates/omnyssh-core/src/config/app_config.rs
Other components
- User
- SSH servers
- Local filesystem
- GitHub releases
Connections 30
- User → Desktop app: uses
- User → Terminal app: uses
- Desktop app → GUI screens: boots
- GUI screens → GUI IPC: invokes
- GUI IPC → GUI commands: dispatches
- GUI commands → Event bridge: emits events
- Event bridge → GUI screens: routes events
- GUI commands → Host management: manages hosts
- GUI commands → SSH sessions: starts sessions
- GUI commands → SFTP transfers: controls transfers
- GUI commands → Command snippets: runs snippets
- GUI commands → SSH key setup: starts setup
- GUI commands → SSH tunnels: manages tunnels
- Terminal app → Host management: loads hosts
- Terminal app → SSH sessions: uses sessions
- Terminal app → App preferences: loads preferences
- Host management → SSH config import: imports entries
- Host management → App preferences: persists hosts
- SSH sessions → SSH servers: connects
- PTY terminal → SSH sessions: opens PTY
- SFTP transfers → SSH sessions: opens subsystem
- SSH key setup → SSH servers: configures access
- Health dashboard → SSH servers: probes metrics
- Service discovery → SSH servers: detects services
- SFTP transfers → Local filesystem: reads/writes
- Host/session search → GUI screens: navigates
- Streamer mode → GUI screens: masks addresses
- In-app updates → GitHub releases: checks/downloads
- Desktop app → In-app updates: checks updates
- Terminal app → In-app updates: checks updates