A VS Code–style, multi-cluster SSH workspace. The connection is the workspace — selecting an SSH connection in the left rail sets the context for the entire window (the file explorer, the editor, and every terminal), and each connection remembers its own layout. Switching clusters is a click, not a new window.
Clusterdeck is a fork of Wave Terminal reshaped from a free-floating block terminal into a fixed IDE layout for working across many clusters in a single window. macOS-first.
The three vertical zones — connections rail, file explorer, and editor + terminals — all bound to the active SSH connection. (static image · full mockup)
A mockup per feature (animated versions in
clusterdeck-features.html):
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- Shell connections rail — a vertical, collapsible workspace switcher with status
dots and
⌘1–⌘nhotkeys; each connection is a saved workspace. - Connection = workspace — new terminals, the editor, and the explorer default to the active workspace connection. An individual terminal can override its connection without changing the explorer, editor, or other terminals.
- Full-height file explorer — a VS Code–style tree over SFTP with an open-editors list, git decorations, and single-click open.
- Routed editor — clicking a file opens it in one designated Monaco editor pane (with editor tabs), never in-place or as a new floating block. Autosaves on idle; switching or closing a file flushes any pending edit to disk before it leaves scope.
- Per-connection layout — the explorer/editor/terminal arrangement persists per connection and restores when you switch back.
It keeps Wave's durable SSH sessions, wsh command system, connection controller,
Monaco editor, terminal blocks, secret storage, and themes intact.
Clusterdeck is macOS-first (Apple Silicon). Recommended path: Homebrew.
1. Add the Clusterdeck tap (so Homebrew trusts the source):
brew tap pramodhsurya/tap2. Install the app (no admin/sudo needed):
brew install --appdir=~/Applications --cask clusterdeckDrop --appdir=~/Applications to install system-wide into /Applications (needs an admin password).
3. Open it. The cask clears the macOS quarantine flag automatically after install/upgrade, so Clusterdeck should open normally.
If macOS still blocks it on first launch: Clusterdeck isn't code-signed or notarized by Apple yet, so Gatekeeper may show "Clusterdeck" Not Opened. Clear it once, either way:
-
Right-click Clusterdeck.app in Applications → Open → Open, or
-
from the terminal:
xattr -dr com.apple.quarantine ~/Applications/Clusterdeck.app # or /Applications/Clusterdeck.app if installed system-wide
Only do this for a build from clusterdeck's own
tap /
releases — it bypasses a real macOS security
check, so only trust it for a source you trust. Full notice and details in INSTALL.md.
brew update # refresh the tap (Homebrew only re-fetches taps on update)
brew upgrade --cask clusterdeckIf it's still not on the latest version, force a fresh pull of the tap:
brew untap pramodhsurya/tap
brew tap pramodhsurya/tap
brew reinstall --cask clusterdeckOr build from the repo:
git clone https://github.com/Pramodhsurya/clusterdeck.git clusterdeck && cd clusterdeck
task init # install deps (needs node, go, go-task)
task package -- --mac dir --arm64 # build make/mac-arm64/Clusterdeck.app
cp -R make/mac-arm64/Clusterdeck.app ~/Applications/ && \
xattr -dr com.apple.quarantine ~/Applications/Clusterdeck.app
open ~/Applications/Clusterdeck.appOr run from source with hot-reload: task dev. Full details — requirements, dev workflow,
upgrading, Gatekeeper notes — are in INSTALL.md.
Clusterdeck is a derivative work of Wave Terminal by Command Line Inc., and would not exist without it. Wave is a fantastic open-source terminal — please check it out, and consider sponsoring the upstream project.
- Upstream: https://github.com/wavetermdev/waveterm
- License: Apache License 2.0 — the upstream
LICENSEis preserved.NOTICEretains the upstream Command Line Inc. attribution and adds the Clusterdeck derivative-work notice. - What we changed: every substantive modification is recorded in
CHANGES.md, per Apache-2.0 §4(b). Third-party dependency licenses are listed inACKNOWLEDGEMENTS.md.
Clusterdeck is an independent project. It is not affiliated with, sponsored by, or endorsed by Command Line Inc. "Wave" and "Wave Terminal" are names of the upstream project and are used here only to credit and identify it.
Usage telemetry and its diagnostic ping are off by default. Clusterdeck records no
telemetry events before opt-in and hard-disables the inherited Wave updater. See
PRIVACY.md for event-schema links, transition and ping payloads,
controls, local cleanup behavior, recipients, and operator separation. Upgrade the app
through Homebrew or a verified artifact from this repo's
Releases page.
Clusterdeck is distributed under the Apache License 2.0 — the same license as Wave
Terminal. See LICENSE for the full text and NOTICE for
attribution. Apache-2.0 permits private and commercial use; this fork keeps the upstream
attribution the license requires, which is what makes commercializing it safe.






