Cloudmesh SSH Manager is a specialized Linux desktop application designed to streamline remote server management. It parses your local SSH configuration, allows you to curate a sidebar of frequently used hosts, and launches managed terminal sessions with real-time status tracking.
- SSH Config Integration: Automatically parses
~/.ssh/configto identify available remote hosts. - Host Management: A dedicated settings screen with live search and checkboxes to select which hosts appear in your active sidebar.
- Terminal Orchestration: Launches
gnome-terminalsessions for selected hosts usingxdotoolfor window management and focus. - Session Tracking: Monitors active processes to show real-time "Online/Offline" status via PID and Window ID tracking.
- Custom Labeling: Rename active sessions with nicknames for easier identification during multi-server workflows.
- Persistence: Saves your selected host preferences to
~/.config/ssh_manager/selected_hosts.json.
To run this application on Linux, you need the following dependencies installed:
- Flutter SDK: Install Flutter
- Gnome Terminal: The default terminal emulator used for sessions.
- xdotool: Used for window focus and management.
sudo apt install xdotool
- Build Essentials:
sudo apt install ninja-build utf8proc-dev libgtk-3-dev
This project uses the Flutter CLI for lifecycle management. Below are the primary commands for maintaining and building Cloudmesh SSH Manager.
Before running the app for the first time, or after modifying pubspec.yaml, run:
- Install Dependencies:
flutter pub get
- Check for Updates:
flutter pub outdated
The application is optimized for the Linux Desktop environment.
| Target | Command | Description |
|---|---|---|
| Debug | flutter run -d linux |
Runs the app with Hot Reload enabled. |
| Release | flutter build linux --release |
Creates an optimized binary in build/linux/. |
| Analyze | flutter analyze |
Checks the Dart source code for errors or linter warnings. |
If you encounter Invalid depfile errors or native C++ sync issues, use these cleanup commands:
- Clean Build Cache:
flutter clean
- Verify Integrity:
Run the local check script to verify
~/.ssh/configand native window titles:chmod +x check_files.sh ./check_files.sh
| Path | Purpose |
|---|---|
lib/main.dart |
Application entry and global theme configuration. |
lib/models/ |
Logic for SSH process management and xdotool window tracking. |
lib/screens/ |
UI for the Host Selector (Sidebar) and Settings (Search/Config). |
linux/ |
Native C++ wrapper for GTK window initialization. |
~/.config/ssh_manager/ |
Local storage for your persistent host selections. |
When modifying files in the linux/ directory (such as my_application.cc to change the window title), a standard Hot Restart is insufficient. You must perform a clean build for changes to take effect in the binary:
flutter clean && flutter run -d linux