← Back to projects
macOS 15+ · Apple silicon · Open source

Constellation

Keep SSH, RDP, and VNC sessions for your remote machines together in one native macOS workspace.

Signed and notarized DMG from the latest GitHub release, or install with Homebrew: brew install --cask wolfftech/tap/constellation. Requires macOS 15 or later on Apple silicon.

Local shell, SSH, RDP, and VNC sessions in one native macOS app.

Constellation saves your remote machines and opens each session in a tab. It uses libghostty for SSH, FreeRDP for RDP, and RoyalVNCKit for VNC.

Note: Constellation does not create a VPN or relay traffic. Connect to your LAN, VPN, or Tailscale network before starting a session, or point an RDP profile at your organization's Remote Desktop Gateway.

What it does

  • Saves multiple addresses and connection profiles for each machine
  • Opens sessions in tabs and restores the tabs from your previous workspace
  • Moves a tab into a window of its own, and merges windows back into one
  • Opens the current Mac's login shell from the built-in This Mac sidebar entry
  • Runs SSH sessions in a Metal-rendered terminal that uses your existing OpenSSH configuration, keys, and agent
  • Supports custom terminal fonts, themes, and Ghostty configuration
  • Runs RDP sessions with NLA, HiDPI rendering, shared clipboard text, and a trust store for accepted certificates
  • Reaches RDP machines behind a Remote Desktop Gateway, with the desktop's account or a separate gateway account
  • Connects to Azure Virtual Desktop in Azure and Azure US Government: sign in with your work account to pick a desktop from your workspace, or import its connection file
  • Opens VNC sessions in Constellation or Apple's Screen Sharing app
  • Stores credentials in the macOS Keychain

Installation

Constellation requires an Apple silicon Mac running macOS 15 or later.

Homebrew

Install Constellation from the Wolff.Tech Homebrew tap:

brew install --cask wolfftech/tap/constellation

Manual download

  1. Download the signed .dmg from GitHub Releases, or build from source.
  2. Open the disk image and drag Constellation to /Applications.
  3. Launch Constellation from /Applications and add a machine.

Updates

Constellation uses Sparkle to check GitHub Releases for updates. Choose Constellation → Check for Updates…, or enable automatic checks in Settings → Updates.

In-app updates work only after you copy Constellation to /Applications. macOS translocates apps launched from a disk image or ~/Downloads, so Sparkle cannot update them in place.

Build from source

Install Xcode 26 or later, then run:

brew install cmake xcodegen
xcodebuild -downloadComponent MetalToolchain
git clone --recurse-submodules https://github.com/WolffTech/constellation.git
cd constellation
Scripts/build-libghostty.sh
Scripts/build-freerdp.sh
xcodegen generate
open Constellation.xcodeproj

The build scripts download the pinned Zig, OpenSSL and cJSON versions, then compile the pinned Ghostty and FreeRDP versions.

Forks that distribute their own builds must replace SUFeedURL and SUPublicEDKey in project.yml. Otherwise, those builds will check Constellation's official update feed and trust its release signatures.

License

Constellation is free software licensed under GPL-3.0-only. Third-party attributions are listed in THIRD_PARTY_NOTICES.md, and details about the source archive included with each release are in SOURCE.md.