Install
Choose your platform from your personal download page, install the app and activate your licence. Downloads unlock after you start the trial.
What you need
| Requirement | Detail |
|---|---|
| macOS | 12.0 or newer. This is the bundle’s minimumSystemVersion, so an older Mac will not open the app at all. |
| Chip | Apple Silicon or Intel. Version 3.7.6 includes both architectures. |
| An agent CLI | At least one, already installed. DeckSpace runs the CLIs on your PATH — it installs none of them. See below. |
| git | The system git. The Review room and worktrees shell out to it rather than linking a git library. |
| tmux | Optional. Needed only for panes that survive quitting the app, and for remote panes over ssh. Nothing else depends on it. |
| A card | The 7-day trial is card-gated. There is no free tier and no unlicensed grace period in the app. |
The download is gated behind the trial
There is no anonymous download link. download.php requires an order parameter, and refuses with HTTP 403 when it is missing or does not check out. You get one by starting the trial.
- Start the 7-day trial on the product page. It goes to Stripe Checkout; the card is required and the subscription converts on day 7 unless you cancel.
- Stripe returns you to a personal thanks page carrying your order id. That page holds both the download button and your licence key.
- Open the platform chooser from your personal thanks page. It retains your order and lists the builds available on the server. Choose macOS, Windows or Linux.
- Download
DeckSpace.dmg. The filename is deliberately unversioned so the same link keeps working across releases — the version lives in the app, not in the URL.
The server re-checks the order with Stripe on every download. It authorizes when the checkout was one of ours (a subscription), and either the invoice is paid or the subscription is trialing, active or past_due. A trial checkout is not “paid” — nothing has been charged yet — which is exactly why the trial-aware check exists.
Use resend.php. Enter the email you subscribed with and it re-sends your personal link plus your licence key. It answers the same way whether or not that email has an order, so it will never confirm to a stranger that you are a customer — and it is rate-limited to five requests per hour per network.
Installing the app
- Open the
.dmgand drag DeckSpace to Applications. - Open it from Applications.
- The first launch opens the main window. On later launches started by the login item it stays in the menu bar instead.
The Mac build is signed with a Developer ID Application certificate under the hardened runtime, the app is notarized during the build, and the disk image is submitted and stapled separately. A correctly stapled disk image opens with no Gatekeeper warning.
Should macOS say it cannot verify the developer, right-click DeckSpace → Open → Open. You need this once. An unstapled disk image looks perfectly fine on the machine that built it and only shows the warning to a customer, which is why the fallback is documented rather than assumed unnecessary.
Activating your licence
Installing does not unlock anything. DeckSpace is subscription-only and the gate is around the whole app, not individual features: with no valid licence and activation for this device, you get the activation screen and nothing else.
- Open Settings → Plan & license.
- Paste the key from your thanks page or your email.
- Click Activate.
| Fact | Detail |
|---|---|
| Machines per licence | Your plan determines the device allowance. Settings shows the signed allowance returned by the activation server; the same licence works across supported operating systems. |
| Key lifetime | Permanent. The key is an identity, not an expiry date — it stays the same across renewals and reinstalls. |
| What actually expires | The device activation token. When the subscription lapses the server stops renewing it and the app shows “subscription ended” rather than “invalid key”. |
| Working offline | Up to 30 days on a valid token, capped at your paid period plus 7 days of grace. Being briefly offline does not lock you out. |
| Freeing a seat | Remove in Settings → Plan & license deactivates this device and returns the seat. |
If the trial ends unpaid or you cancel, the app locks at the end of the paid period. Your data stays on disk untouched; renewing with the same key restores access.
What macOS will ask for
Nothing is requested at install time. Each permission is asked for the first time you use the feature that needs it, and every one of them is optional — panes, agents, the board and the review gate need none of them.
| Permission | Asked for when |
|---|---|
| Microphone | Dictation, or the always-on voice assistant. |
| Automation (Apple Events) | Voice actions that drive other apps — opening menus, quitting an app, running AppleScript. |
| Screen Recording | The Screenshot tool, and letting the voice assistant look at your screen. |
| Accessibility and Input Monitoring | Pasting dictated text into another app, and global hotkeys. Grant these in System Settings; without them the transcript is left on the clipboard instead. |
| Files and Folders | Only if you run the optional filing-system scan during onboarding. Folders macOS blocks are listed by name so you can grant and re-scan. |
What DeckSpace does not install
It ships no model and no agent CLI. It detects the ones already on your login shell’s PATH and runs them in panes. If you have installed none, the app opens and every agent shows as unavailable.
Detection runs from Settings → AI providers, and only when you click Scan — never automatically at startup. The scan checks the known command names on your PATH and asks each one for its version. It installs nothing, changes nothing, and sends nothing off the machine.
Eleven CLIs are recognised (a twelfth entry, gemini, is kept only so old workspaces still resolve — that CLI was retired on 2026-06-18 and launches are sent to Antigravity instead). The app shows a copyable install command for each one it cannot find:
| Agent CLI | Command it looks for | Install hint the app shows |
|---|---|---|
| Claude Code | claude | npm i -g @anthropic-ai/claude-code |
| Codex | codex | npm i -g @openai/codex |
| Aider | aider | python -m pip install aider-install && aider-install |
| Antigravity | agy | curl -fsSL https://antigravity.google/cli/install.sh | bash |
| OpenCode | opencode | npm i -g opencode-ai |
| Cursor Agent | cursor-agent | curl https://cursor.com/install -fsS | bash |
| Droid | droid | curl -fsSL https://app.factory.ai/cli | sh |
| Copilot CLI | copilot | npm i -g @github/copilot |
| Grok CLI | grok | curl -fsSL https://x.ai/cli/install.sh | bash |
| Amp | amp | npm i -g @sourcegraph/amp |
| Qwen Code | qwen | npm i -g @qwen-code/qwen-code |
An app launched from the Dock inherits a minimal PATH, which is the usual reason a GUI wrapper cannot find a CLI installed through nvm, asdf, mise or Homebrew. DeckSpace works around it by asking your login shell for its real PATH once at startup (capped at 1.5 seconds so a hung shell cannot block the first pane) and merging in ~/.local/bin, ~/.cargo/bin, ~/.bun/bin, ~/.npm-global/bin, ~/.deno/bin, ~/.volta/bin, the mise shims, /opt/homebrew/bin and /usr/local/bin. If your CLI is somewhere else, register it as a custom agent with an absolute path.
Where DeckSpace keeps things
On macOS, the app data directory is ~/Library/Application Support/ai.opxera.deckspace/. Windows and Linux use their native application data directories. Project files, agent CLI configuration and login items can live outside this folder:
| Path | What it holds |
|---|---|
opxspace.db | SQLite: the board, swarm messages, background jobs, indexes. Survives restarts. |
entitlement.json | Your licence key and this device’s activation token. |
ai-settings.json | Provider settings and API keys. |
sessions/ | Per-workspace layout snapshots — panes, working directories, theme — so a workspace reopens as you left it. |
models/ggml-*.bin | Speech models, downloaded on demand when you turn dictation on. Not part of the installer. |
tts-cache/ | Generated speech audio, size-capped and pruned oldest-first. |
global-memory/.opxmemory/ | The machine-wide memory vault. Per-workspace memory lives in the repo instead. |
skills/, providers/, custom-agents.json | Your global skills, custom providers and custom agent CLIs. |
Two things land in your repositories rather than here, and both are visible files you can read and delete: .opxmemory/ (that workspace’s memory notes, plain markdown) and .deckspace/ (skills and providers you chose to save with the repo). To remove the app on macOS, quit it and move the application to Trash. Keep the support folder if you want to retain settings and history; back it up before deleting it.
Windows and Linux
From 3.7.0 DeckSpace ships on all three platforms. Continuous integration now uploads the Windows and Linux installers instead of discarding them, and the download page serves the right file for the visitor’s OS. What still differs between platforms is listed below — those differences are real, and worth reading before you install.
| Platform | State | Installer |
|---|---|---|
| macOS 12+ | shipping signed, notarized, universal | DeckSpace.dmg |
| Windows 10/11 | shipping installer + MSI — not code-signed yet | DeckSpace-Windows-Setup.exe, DeckSpace-Windows.msi |
| Linux | shipping AppImage supports in-app updates; deb/rpm require a new package | .AppImage, .deb, .rpm |
Windows: the installer is not code-signed yet, and Windows will say so. You will see a blue full-screen panel reading “Windows protected your PC”. Click More info, then Run anyway. An unsigned installer can trigger SmartScreen. This is not a guarantee about the safety of a particular file; use your authenticated DeckSpace download and check its release information before continuing. The macOS build is signed and notarized by Apple and shows nothing of the kind.
Every download still goes through the order check — there is no public release link, because a public release link is an ungated download. The installers are served by download.php, which verifies the order first. Up to and including 3.6.0 the Windows and Linux artifacts were built on every tagged release and then discarded, which is why no installer existed for them; from 3.7.0 they are uploaded and served.
Desktop integration requirements vary by platform:
| Area | Linux | Windows |
|---|---|---|
| Write fence around agents | Needs bwrap installed; without it panes still open, unfenced | A restricted-token fence, reported only once a planted violation has been watched to fail on your machine. The shell command guard runs here too, in PowerShell — a destructive git typed into an agent pane is refused, the same as on macOS and Linux. It cannot run under cmd.exe, which has no way to host it, so panes there are unguarded and say so. |
| Auto-update | The AppImage updates in-app; .deb and .rpm do not, and mean downloading the new package | On the channel — banner and one click |
| Tray icon | GNOME has no tray by default; needs an AppIndicator extension | — |
| Screenshots | Needs grim/slurp, gnome-screenshot or spectacle on Wayland; maim, scrot or import on X11 | Full-screen capture from the DeckShot button; no extra capture tool required |
| Hold-to-talk | X11 uses app-owned keys. On Wayland, a configured GlobalShortcuts portal must grant the binding; the desktop name alone does not establish support. Set its key in desktop settings and choose Dictation or Assistant in DeckSpace. Voice settings shows the current grant and offers Retry desktop shortcut. | — |
| Dictation insert | Automatic insertion requires X11. On Wayland the transcript goes to the clipboard for you to paste; a portal shortcut does not grant synthetic typing. | — |
| Bundled browser-testing engine | Bundled Linux engine; a supported browser and desktop session are required. | Bundled Windows engine; a supported browser is required. |
Where the missing pieces are optional, the app runs and explains what is absent in a toast rather than failing quietly. That is the same choice the sandbox makes: it degrades rather than refusing to start, which is convenient and is also why walk-away is not equally safe everywhere.
Linux package requirements
Use a 64-bit desktop session. The .deb is tested on Debian 12 and Ubuntu 22.04; install it with your package manager so its dependencies are installed too. The .rpm is tested on Fedora 44 and requires WebKitGTK 4.1 and glibc 2.35 or newer. Other RPM distributions need a compatibility check.
The AppImage bundles WebKit but still needs the desktop GTK, audio and graphics libraries. A minimal server or container does not include these. On Ubuntu 22.04, the tested prerequisites are:
sudo apt install libgtk-3-0 libasound2 libgles2 libegl1 libgl1 libgbm1
Make the AppImage executable and open it in your desktop session. If FUSE is unavailable, run the AppImage with --appimage-extract and then open squashfs-root/AppRun, or choose the .deb or .rpm. Package installations use your package manager for updates; the AppImage supports the in-app updater.
Apple Silicon and older installs
DeckSpace 3.7.6 includes universal app, browser-testing engine and SQLite components for Apple Silicon and Intel.
After it opens
- Your first workspace — point it at a repository and get one agent doing real work.
- Panes and agent CLIs — registering a CLI the roster does not know about.
- Updating — how new versions reach you, and on which platforms they do not.
- Troubleshooting — the install failures we have actually seen.