# OrbitHub OrbitHub is a cross-platform native desktop app for managing and launching remote sessions from one place. It is implemented in C++17 with Qt6 Widgets and built with CMake. Supported target platforms: - Windows - Linux - macOS ## Current Status OrbitHub is in active development. - Milestones completed: M0-M9 - Current milestone: Milestone 10 (v1.0 Stabilization) - Latest published release: `v2026.9.16`; a `v2026.9.16.6` release is drafted with several post-`.16` fixes and is pending a macOS installer before publishing - VNC (M6) is fully built out: Raw/CopyRect/Hextile/ZRLE/Tight encodings, bidirectional clipboard sync, remote cursor shape sync, and both scale-to-fit and actual-size display modes. Standard VNC Authentication and no-auth servers (TigerVNC, x11vnc, TightVNC, etc.) work end to end. macOS's built-in Screen Sharing uses two undocumented, reverse-engineered authentication schemes that are implemented but not yet confirmed working against a real macOS server — see [docs/PROGRESS.md](docs/PROGRESS.md) for details. Progress and milestone details: - [docs/PROGRESS.md](docs/PROGRESS.md) Latest published release (installers for Windows, Linux, and macOS): - [v2026.9.16](https://git.darksingularity.org/DarkSingularity/orbithub/releases/tag/v2026.9.16) User Guide: - [docs/USER_GUIDE.md](docs/USER_GUIDE.md) (also available as a PDF attached to each release, and in-app via `Help -> User Guide`) ## Screenshots ![Profile list with folders](docs/images/screenshot-profiles.png) Profiles organized into folders, with protocol, host, and tags shown at a glance. (Sample data shown; not real hosts.) ![Active SSH terminal session](docs/images/screenshot-ssh-session.png) An interactive SSH terminal session in a tab, with the event log below. ![Active RDP session](docs/images/screenshot-rdp-session.png) An embedded RDP session in a tab. ## Implemented Features ### Profile Management - SQLite-backed profile storage - Create, edit, delete profiles - Protocol-aware profile validation (SSH/RDP/VNC) - Username is optional on any protocol's profile — if left blank, OrbitHub asks for one inline at connect time instead of requiring it up front - Profile search and sorting - Tags support - Folder/subfolder support - `List` and `Folders` profile views - Right-click profile tree actions: - New Folder - New Connection - Drag-and-drop profile moves between folders with persistence - Import/Export of the whole profile list as JSON, and one-way import from mRemoteNG connection XML files (passwords are never imported) ### Session Experience - Multi-tab session window - Auto-connect on tab open - Disconnect on tab close - Session state indicators on tabs, colored distinctly per state (connecting/connected/disconnected/failed) - A tab awaiting a username/password prompt is clearly marked — its title gets a "(Needs input)" suffix and its tab color changes — even when it isn't the tab currently in view, and the inline prompt itself uses a solid highlighted banner rather than blending into the rest of the tab - Timestamped event log with filtering and export ### SSH - Embedded interactive terminal (in-app typing) - Theme support (`Dark`, `Light`, `Solarized Dark`) - Password and private-key auth flows - Known-hosts policy support ### RDP - Embedded in-window RDP rendering surface (no external launcher) - Keyboard/mouse input forwarding - Resize handling and resolution renegotiation - Domain-aware authentication support - RDP security/performance profile options ### VNC - Embedded in-window VNC rendering surface (no external launcher) - Raw, CopyRect, Hextile, ZRLE, and Tight rectangle encodings - Bidirectional clipboard sync - Remote cursor shape sync - Scale-to-fit and actual-size (scrollable) display modes, toggled per-tab and remembered across sessions - Standard VNC Authentication and no-auth servers (TigerVNC, x11vnc, TightVNC, etc.) - No dynamic remote-desktop resizing (VNC has no real equivalent of RDP's MS-RDPEDISP) - macOS Screen Sharing's two undocumented Apple auth schemes are implemented but not yet confirmed working against a real macOS server — see [docs/PROGRESS.md](docs/PROGRESS.md) ### App UX - App icon and themed About dialog - In-app User Guide (`Help -> User Guide`), matching [docs/USER_GUIDE.md](docs/USER_GUIDE.md) - `File` menu: - New Profile - New Folder - Import Profiles... - Export Profiles... - Import from mRemoteNG... - Quit - `Help` menu: - User Guide - About OrbitHub ## Build and Run Detailed platform instructions: - [docs/BUILDING.md](docs/BUILDING.md) Quick start (Linux/macOS with Ninja): ```bash cmake -S . -B build -G Ninja cmake --build build ./build/orbithub ``` ## Packaging Detailed packaging instructions for all platforms: - [docs/BUILDING.md](docs/BUILDING.md) Linux (`.deb`): ```bash ./packaging/linux/build-deb.sh ``` Linux (Flatpak): ```bash ./packaging/flatpak/build-flatpak.sh ``` Windows (Inno Setup installer): ```powershell .\packaging\windows\build-installer.ps1 ``` macOS (`.dmg`): ```bash ./packaging/macos/build-dmg.sh ``` ## Dependencies Core dependencies: - Qt 6 (Widgets, SQL) - CMake 3.21+ - C++17 toolchain - OpenSSL (RDP/VNC transport security and Apple VNC auth) - zlib (VNC's ZRLE and Tight encodings) - libjpeg-turbo (VNC's Tight encoding's JPEG sub-mode) Protocol/runtime dependencies: - SSH client (`ssh`) available on `PATH` for SSH sessions Bundled/vendored third-party components: - KodoTerm - libvterm - FreeRDP/WinPR ## Licensing Project license: - MIT (see [LICENSE](LICENSE)) License links: - MIT License: - GNU LGPLv3: - Apache License 2.0: Important third-party license notes: - Qt6 is dynamically linked in this project build setup. - Qt6 is used under LGPLv3 terms in this project build setup. - KodoTerm and libvterm are MIT-licensed. - FreeRDP/WinPR is Apache-2.0 licensed. Repository license files: - Project: [LICENSE](LICENSE) - KodoTerm: [third_party/KodoTerm/LICENSE](third_party/KodoTerm/LICENSE) - FreeRDP: [third_party/FreeRDP/LICENSE](third_party/FreeRDP/LICENSE) See in-app `Help -> About OrbitHub` for license links and third-party inventory. ## Repository Structure - `src/` - application source code - `docs/` - build guide, spec, and progress tracking - `packaging/` - per-platform installer/package build scripts - `tests/` - CTest unit/integration tests and fixtures - `tools/` - standalone build-time tools (e.g. the User Guide PDF generator) - `third_party/` - vendored third-party dependencies - `build/` - local build output (generated) - `dist/` - packaged installer/deb/flatpak/dmg output (generated) ## Notes - Passwords are requested at connect time and are not stored in the profile database. - A profile's username is optional for every protocol; if left blank, OrbitHub asks for one inline the first time you connect that profile. - VNC support covers standard VNC Authentication and no-auth servers (e.g. TigerVNC, x11vnc, TightVNC). macOS's built-in Screen Sharing server uses two undocumented, reverse-engineered authentication schemes that are implemented but not yet confirmed working against a real macOS server (see docs/PROGRESS.md, Milestone 6).