Cross-Platform
One cross-platform terminal. Linux, Windows and BSD.
The same shortcuts work identically on Linux and Windows, and the FreeBSD and NetBSD builds share them. No mental context-switching, no muscle-memory retraining when you switch machines. macOS is in progress.
Windows
quirks resolvedOne clipboard, one pair of keys
Ctrl+Shift+C copies, Ctrl+Shift+V pastes — the same two shortcuts on every platform, so nothing to relearn when you switch machines. Alt+key still passes straight through to the shell, so an AI CLI running in the pane keeps its own bindings.
The prompt's directory, tracked correctly
Under ConPTY, Windows reports the wrong working directory for a running shell. CPT asks the shell to report its own over OSC 7 and follows the chain only through shells — so the Git-for-Windows launcher hop still resolves, but a helper an AI CLI spawns cannot drag your pane off to C:\Windows. When nothing arrives, the whole chain is recorded in diagnostics.
Ctrl+C interrupts
Windows hands a shell an “ignore Ctrl+C” flag it then passes to everything it starts, so the key reached the program and did nothing. CPT clears it before spawning the shell — Ctrl+C stops a running command instead of waiting it out.
Any shell you want
Name the shell in Settings → Terminal — powershell.exe, pwsh, cmd.exe, bash, or wsl.exe. PowerShell and Git bash are both instrumented for directory reporting out of the box; the choice applies to new terminals.
No console window
Built with the Windows GUI subsystem. No flashing black console window on launch, no separate terminal hiding behind your workspace.
Linux
quirks resolvedAppImage works on modern distros
Modern Fedora and Ubuntu ship FUSE 3 only, which breaks standard AppImages. Cross Platform Terminal ships with the type2 runtime that supports both FUSE 2 and FUSE 3 - it just runs.
Atomic updates
The in-app updater replaces the binary atomically via rename(2) while the app is running. The next launch picks up the new binary - no package manager, no sudo.
Shell from $SHELL
New terminals inherit $SHELL automatically. Override it per-session in Settings → Terminal → Shell, or leave it unset and it follows your environment.
See the full shortcut table
shortcuts.json