Download
Terminal Deck 0.1.2 for macOS 12 or newer on Apple Silicon, and for Windows 10 or newer on x64. Neither build is signed, which adds one step the first time you open it.
Both buttons resolve to whatever the newest release is at the moment you click, so
neither can quietly hand you an old build. Today that means
terminaldeck-0.1.2-arm64.dmg for macOS and
terminaldeck-0.1.2-x64-setup.exe for Windows, which also has a
portable executable that runs without
installing. The checksums and every earlier build are on the
releases page.
Requirements
Exactly these. Nothing else is assumed about your machine.
- macOS 12 or newer, Apple silicon
- One arm64 disk image. There is no Intel build: macOS 27 dropped Intel Macs entirely, and an Intel slice could not be tested on any machine here.
- Windows 10 or newer, x64
- An installer and a portable executable. There is no ARM build: Windows on ARM runs the x64 one under emulation, not natively. The installer has now been run on Windows 11 (10.0.26200) x64: it installs, and the app launches. 0.1.2 cannot start a session there — it reports every agent CLI as missing even when they are installed, and New Session fails. Both faults are fixed on a branch and neither fix is in a release yet, so this download is worth having only if you want to watch it start. Linux has no target configured at all.
- An agent CLI
- At least one of Claude Code, Codex CLI or Gemini CLI — installed and already signed in. Terminal Deck does not install them, and it never asks you for a login or an API key: the agent signs you in itself, in the terminal.
- git
- Only for the git panel. Everything else works without it.
- The gh CLI
-
Only for the GitHub panel, which runs your own authenticated
gh.brew install ghon macOS,winget install GitHub.clion Windows, if you want it. - Node 22 or newer
- Only to build from source. A downloaded build has no Node requirement.
On first launch the app checks what is actually on your machine and, if no agent is usable, shows you what it found rather than an empty window. Settings → Setup repeats that check at any time and prints the literal probe it ran, so a missing tool tells you the command as well as the conclusion.
Installing on macOS
-
Download and open the disk image
Take the macOS build above —
terminaldeck-0.1.2-arm64.dmg— and open it. Inside isTerminal Deck.app. It is an Electron app, so the unpacked bundle is around 300 MB. -
Move it to Applications
Drag
Terminal Deck.appinto/Applications. Running it from~/Downloadsworks, but Applications is where macOS expects it and where you will find it again. -
Open it the first time with right-click → Open
Right-click (or Control-click) the app, choose Open, and then click Open again in the dialog that appears. After that first launch, double-clicking works normally and you never see the dialog again.
Double-clicking it the first time will fail with a message about an unidentified developer, or about the app being damaged. Nothing is damaged — see below for why.
-
If macOS refuses anyway
Recent macOS versions sometimes will not offer the Open button at all. Open System Settings → Privacy & Security, scroll to the security section, and click Open Anyway next to the message naming Terminal Deck. That button appears only after you have tried to open the app once.
Why an unsigned build needs that step
Signing an app requires a paid Apple Developer identity, and notarising it requires
uploading each build to Apple. This build has neither — identity: null is
set in the packaging config, deliberately and visibly. macOS attaches a quarantine
flag to anything downloaded from the internet, and Gatekeeper refuses to launch a
quarantined app that is not signed and notarised.
Right-click → Open is Apple’s own override: it shows the same warning with an Open button, and accepting it records your decision for that specific app. It is not a workaround for a broken build; it is the documented way to say “I know where this came from”. If you would rather not take that on trust, build from source below — then the binary is one you produced on your own machine, and no quarantine flag is ever set.
Installing on Windows
Windows 10 or newer, x64. The installer and SmartScreen steps below have been walked through on Windows 11 x64; the app installs and opens. What it cannot do yet once it is open is in Requirements above — read that before you spend 108 MB on it.
-
Run the installer
terminaldeck-0.1.2-x64-setup.exeasks where to put the app and installs it for your account only, so it does not need an administrator password.terminaldeck-0.1.2-x64-portable.exeis the same build as a single file that runs without installing anything — take that one if you would rather not write to Program Files at all. -
Click past SmartScreen
Windows shows a blue Windows protected your PC panel with only a Don’t run button visible. Click More info, then Run anyway. The portable executable is warned about the same way, every time you move it to a new machine.
-
Bring your own agent CLI
Same as on macOS: Terminal Deck runs Claude Code, Codex CLI or Gemini CLI, and installs none of them. Install and sign in to at least one first, or the first launch has nothing to show you.
Why SmartScreen warns
Signing a Windows build needs a code-signing certificate issued by a commercial authority against a verified identity, renewed yearly. This build has none, so SmartScreen has no publisher to name and no signature to look up a reputation for, and it hides the run button behind More info rather than refusing outright. That is Microsoft’s own override, the same shape as the right-click step on macOS: it is how you say you know where the file came from.
The one check you can make yourself is the checksum.
SHA256SUMS.txt on the releases page lists the SHA-256 of every file in
the release; Get-FileHash in PowerShell prints the one you downloaded.
If you would rather not take any of it on trust, build from source below.
Building from source
The repository is the whole product. Node 22 or newer, and about two minutes.
Run it in development
git clone https://github.com/asadev/terminaldeck.git
cd terminaldeck
npm install
npm run dev
npm run dev starts Electron with a hot-reloading interface. Main-process
changes need a restart; interface changes do not.
Package a real .app
npm run pack:mac # unpackaged .app, fastest to smoke-test
npm run dist:mac # the disk image: dmg + zip, arm64
pack:mac leaves release/mac-arm64/Terminal Deck.app;
dist:mac writes the .dmg and .zip into
release/. Both run npm run build first.
Because you built it locally it carries no quarantine flag, so it opens on a
double-click with no Gatekeeper step at all.
Do not run npm run build while npm run dev is
serving.
They share the out/ directory, and the build overwrites what dev is
running out from under it. Stop dev first.
Checks
npm test # vitest
npm run typecheck # both tsconfigs
What this build does not do
Worth knowing before you install rather than after.
- Updating in place is macOS only. The mac build checks the release feed, and Settings → About offers the new version, downloads it, verifies its SHA-512 and swaps the app — nothing installs without you asking for it. That path has been run end to end on macOS, up to the relaunch. On Windows the check is wired to electron-updater's installer and has never been exercised, and the portable executable is a loose file nothing can replace for you: on either, treat a new version as a fresh download from this page.
- Neither build is signed — no Apple notarisation, no Windows code-signing certificate — which is the whole reason for the right-click step and the SmartScreen panel above.
- The Windows build launches but cannot yet run a session. It is produced natively in CI, and it has now been installed and opened on Windows 11 x64 — which is how two faults that make 0.1.2 unusable there were found: agent CLIs are all reported missing, and New Session fails. Fixes are open on a pull request, unreleased. Fourteen test files still fail on Windows. Linux has no target configured.
- Session sharing, translations and split panes are not built yet. The first two are absent entirely; split panes have layout code in the repository that nothing in the app renders, so the chords for it do nothing.
- Cost, chat and session search read Claude Code transcripts. Codex and Gemini sessions run perfectly well; those three panels simply have nothing to read for them.