Beta Beta pricing: Cleat is 75% off, 49 left at this price. See how it works 75% off during the beta. Details
All builds

Pick your binary.

One C++ codebase, three platforms. No Electron, no web view, no Chromium dragged in for the ride.

Verify your download

SHA-256 checksums for this release. Compare against shasum -a 256 <file> (macOS/Linux) or Get-FileHash <file> (Windows).

Cleat-0.29-macOS-universal.dmg aa7a01f7e2b3354c3ae29bdf0b1ab0583d64a2fdb50eff6abd6b2782b87bbac3
Cleat-0.29-Linux-x86_64.AppImage aaedd514c643b457a4f0f30161ed86a1788d7663278019b9cc537d3c0a9ef960
Cleat-0.29-Linux-x86_64.deb 96c54a66dee42b058ae874fe3112c5ca66cfd5c6c3f79dfef2a39ed6dee0b81b
Cleat-0.29-Linux-x86_64.rpm 7aafd2792cddec9b20a553811aa278d82726cd0a2d3696bfd4f53bcf86d2c561
Cleat-0.29-Windows-x64-Setup.exe 2cbcf71567a9acbdf4ba8aebce1fc567a9d95181a6528ab36d8aada5e26a1a80
Cleat-0.29-Windows-x64.zip 2bdb6638d2b3e0682d8397b34efb91c7b64917600cf77e30eb7336edac033b7c
What's new

v0.29 · 2026-08-31

What's Changed

  • chore(ci): drop ci.yml's unreachable hosted macOS/Windows matrix
  • fix(#352): preview WebP inline, and HEIC/AVIF/TIFF via the OS codecs
  • feat(#167): SSH agent over Windows named pipes
  • perf(ci): cut Linux CI from 22 minutes to a warm rebuild
  • fix: focus the terminal when a connection opens
  • feat(#44): broadcast mode — type once, reach every session
  • feat(#44): multi-select connections and run a command on them
  • feat(#414): put the broadcast group in reach of the UI
  • feat(#413): snippet library — store, manager and run paths
  • feat(#413): multi-host comparison view
  • feat(#413): bind a hotkey to a snippet
  • chore(spry): adopt ReorderableList from spry v0.4.1
  • test(#353): Swarm fixtures from a live three-node cluster
  • feat(#356): Swarm types and parsers
  • feat(#357): SwarmCollector — compound exec, section split, replay
  • feat(#360): SwarmMonitor poll loop, publication and watchdog (part 1)
  • feat(#360): SwarmSession — SSH connection lifecycle (part 2, closes #360)
  • feat(#362): SwarmManager, view.swarm, and the replay flag wired up
  • feat(#355): map success and warning into the Spry token bag
  • feat(#363): the Swarm pane — health strip, service tree, detail, density
  • feat(#364): Nodes and Tasks tables, and an events feed built from snapshot diffs
  • feat(#367): alert rule model, pure evaluator and state machine
  • feat(#369): Swarm alert delivery — toasts and an inbox tab
  • feat(#368): persist alert state and rehydrate it across restarts
  • feat(#374): silences as matchers, maintenance windows, and ack that means acknowledged
  • feat(#435): persist silences and maintenance windows across restarts
  • feat(#361): manager failover with a classification that knows when not to fail over
  • feat(#365): docker events as a poll accelerator
  • feat(#366): cluster metrics and sparklines
  • feat(#370): alert delivery via webhooks
  • feat(#371): OS-native notifications for alerts
  • feat(#372): audible alerts
  • feat(#373): run a local command on an alert
  • feat(#375): alert rule editor
  • feat(#376): SwarmController, confirmation modal and read-only enforcement
  • feat(#377): audit trail — record before dispatch, and a tab to read it
  • feat(#378): convergence watch and pending-intent display
  • feat(#379): handoff into the terminal and file browser
  • feat(#358): swarm cluster definitions in connections.db
  • feat(#380): the full swarm settings schema, wired
  • feat(#380): the Swarm cluster editor
  • feat(#380): the webhook editor and the sound picker
  • feat(#354): shared draw primitives for lines, arcs and polygons
  • feat(#381): seeded default alert rules and Swarm documentation
  • Swarm modal padding, drag-to-reorder candidate managers, and icon row actions
  • feat: resizable dashboard columns, and a row detail modal
  • Swarm testing-pass fixes: control, handoff, and the crashes found along the way
  • fix(#460): connect stored alert commands to the runner, and let one be written
Full changelog
Hold · Fast.
Tried it? Keep it.