cass.tools / install / windows

Welcome · pick whichever fits

cass on Windows

Three install paths. The fastest one that works on every modern Windows is one paste. The Windows-native installer is on its way to "click and it installs" — signing pipeline lands this week.

One-paste install (works on every modern Windows)

From PowerShell, with WSL2 installed:

wsl bash -lc "curl -fsSL https://cass.tools/install | bash && cass-term -e cass"

WSLg renders the cass-term Vulkan window directly on your Windows desktop — same nebula and chrome as native Linux cass. If WSL isn't on your machine yet, see "First time on Windows" below for the two-line bootstrap.

Windows-native installer

Per-user install, Start Menu shortcut, adds cass to your PATH. Same NSIS pipeline that ships cass-port-setup:

⬇ cass-tui-setup-0.2.97.exe  ·  ⬇ cass.exe (portable)

Current state — being honest: this version isn't code-signed yet. SmartScreen warns ("More info" → "Run anyway"). Smart App Control on default Win11 22H2+ installs blocks unsigned binaries entirely. Once the Certum OSS code-signing cert clears (3-7 day turnaround, applied for now), the same .exe gets signed and "click → it installs" works without warnings. Until then, the one-paste above is the path that works on every Windows.

First time on Windows

If WSL isn't on your machine yet, here's the bootstrap. Two steps the first time; the one-paste above works every time after.

  1. Install WSL2. PowerShell as administrator:
    wsl --install
    Microsoft's own command, signed by Microsoft. Reboot when it asks. After reboot, Ubuntu opens automatically and asks for a username + password (Linux account inside WSL, separate from your Windows login).
  2. Run the one-paste install from any PowerShell window:
    wsl bash -lc "curl -fsSL https://cass.tools/install | bash && cass-term -e cass"
    Downloads cass, verifies SHA-256 against the published manifest, installs to ~/.local/bin/ inside WSL, launches cass-term. Script is plaintext at cass.tools/install if you want to read it first.

Roadmap to "click and install"

The bar Windows users reasonably expect is "download, double-click, installed." We're not there yet on the .exe path; here's what gets us there: Each lands here at parity with the others as it ships. None replaces any other; they're all in.

Path A · WSL2 (recommended for first-time users)

WSL2 is Microsoft's first-party Linux integration. It ships free with Windows, takes one command to install, and runs cass inside Ubuntu without the Windows-side trust questions. WSLg (built into Windows 11) handles the graphical surface for cass-term; on Windows 10 you get the TUI without the Vulkan window.

  1. Open PowerShell as administrator (right-click PowerShell → Run as administrator):
    wsl --install
    Microsoft's command. Installs the WSL2 kernel and the Ubuntu distro. Reboot when prompted.
  2. After the reboot, Ubuntu finishes setup and opens. It asks you to pick a username and password — Linux account inside WSL, separate from your Windows login.
  3. Inside Ubuntu, run the same install command Linux users run:
    curl -fsSL https://cass.tools/install | bash
    Downloads the cass binary, verifies SHA-256 against the manifest, drops it in ~/.local/bin/.
  4. Launch it:
    cass
    Or from a Windows PowerShell prompt directly: wsl cass

For graphical cass-term:

# Win11 with WSLg (default since 2021): just works
wsl cass-term -e cass

# Win10: skip cass-term, plain TUI is fine
wsl cass

Path B · SSH to a Linux box

If you already have a Linux machine on your network or a small VPS. cass runs there. Your Windows side just runs the OpenSSH client that's been shipping with Windows since 2018. No installer, no compile.

  1. On the Linux host: curl -fsSL https://cass.tools/install | bash
  2. On Windows: open PowerShell (the regular kind, not admin)
  3. One-time SSH key setup so you don't type a password every launch:
    ssh-keygen -t ed25519
    ssh-copy-id user@your-linux-host
  4. Launch: ssh user@your-linux-host -t cass

For the full graphical experience (cass-term Vulkan window, nebula backdrop), connect via Chrome Remote Desktop or VNC instead. Terminal-only TUI works fine over SSH.

Why no native cass-tui.exe

The honest answer: cass-pty uses rustix::pty, rustix::termios, and libc::fork — all of which are #[cfg(not(windows))] in their respective crates. A Windows port would need a ConPTY backend that re-implements PTY semantics on top of Windows console APIs. That's a real piece of work that would diverge from the Linux path over time. We chose to keep the PTY layer single-platform and run cass where the OS already matches its assumptions — same approach we use ourselves.

If a native Windows port matters for your use case (air-gapped environment, no Linux machine, no WSL2 budget) — open an issue or message Jake. The decision is reversible.