The desktop work tracker
Know what shipped. Not who's at the keyboard.
A first-class desktop app that captures real work across projects — so reports reflect what happened, not what got typed into a Friday status update. Privacy isn't a setting here. It's the design.
macOS · Windows · Linux — capture off until you turn it on
SpiralDeck — DesktopScreenshots on · next in ~6m
SPD-241 · In progress
Encrypted blob upload pipeline
01:48:22
this session
Observability, not surveillance
Real work, captured honestly
Self-reported status is guesswork. Keystroke loggers are spyware. SpiralDeck takes a third path — anonymized signals that attribute time to work, with the worker in control of what's seen.
What it captures
Task-level work log
Start, end, hours and status transitions — the timeline of what was worked on.
Activity counts
Aggregated keyboard / mouse activity — a number, never the keystrokes behind it.
Active app & window title
Which app is in focus and its window title, to attribute time to the right work.
Browser tab title & domain
Tab title and the domain — never URL paths, query strings or form data.
Opt-in screenshots
Frames only when explicitly enabled for that user or project. Off by default.
What it never collects
Not configurable. Not behind an enterprise flag. The capture engine has no code path to read any of this:
Screenshots, done right
Visible, randomized, and opt-in
When a project needs visual proof of work, screenshots are captured at randomized 5–10 minute intervals — never on a predictable clock, never silently. Off by default, configured per-project or per-user by the manager, and always paired with a clear on-screen indicator.
- Off by default — explicitly enabled per user or project
- Randomized 5–10 min intervals, not a fixed timer
- Tray indicator whenever a frame may be taken
- Encrypted at rest with per-tenant envelope keys
Screenshot capture
Randomized · 5–10 min
Activity signals
Anonymized counts + titles
Review before manager sees
User approves their own captures
note ·Enabling capture applies going forward only — historical sessions can't be captured retroactively.
Consent and transparency
The worker is in control
Workforce monitoring earns trust or it fails. Every default here favors the person being measured — because a tracker people resent is a tracker people circumvent.
Off by default
Capture is opt-in. Screenshots are configured per-project, or per-user by the project manager — never on silently.
Always visible
A tray indicator and in-app banner show capture state at all times. No hidden recording, ever.
You see it first
Users can review their own captured data before a manager can — configurable per workspace.
No retroactive capture
Admins cannot reach back and enable capture on historical sessions. The past stays untouched.
Idle means paused
No input, no capture. The engine pauses on idle so breaks never count as monitored time.
Online-only by design
No offline cache of sensitive data on the device. Nothing sensitive sits on a stolen laptop.
Secure by architecture
The app is untrusted — on purpose
We assume the desktop app can be tampered with or its device stolen. The server, not the client, is the authority on every byte that flows in.
Untrusted client
The desktop app holds no long-lived secrets. The server validates and rate-limits every upload.
mTLS + signed tokens
The capture engine ↔ server channel uses mTLS with per-install certs and short-lived, workspace-scoped upload tokens.
Encrypted at rest
Screenshots and activity blobs are encrypted with per-tenant envelope keys, stored apart from their metadata.
Audited toggles
Every capture toggle and data export is written to an immutable audit log — who, what, when.
It closes the loop
Capture becomes insight
The desktop app isn't a silo. What it records flows back into the work itself — turning into time logs you confirm and grounding every report in what actually happened.
Time logs without the timesheet
The work the tracker records becomes draft time entries the user confirms in a click — minutes, not Friday-afternoon reconstruction.
Reports from reality
Velocity, cycle time and burndown computed from real activity — so the numbers in your PM views reflect what was done, not what was claimed.
Native on every desk
One app, three platforms
A Flutter shell with native OS hooks, built for the machines your team actually uses.
See the real picture of your work.
Capture is off until you turn it on — and even then, the worker sees everything first. Start free, no per-seat pricing, no surveillance theatre.