ideas.
August 17, 2026 3 min read desktopb2bproductivityprivacy

Rebuild your timesheet from your own activity trail

A local-only desktop app that reconstructs a billable-hours timesheet from window titles, git history, and calendar events you already generated.

The idea

A desktop app that watches what you actually did today — active window titles, browser tabs, git commits, calendar events, sent mail subjects — and turns that trail into a draft timesheet at 5pm. It clusters the day into blocks, guesses which client or matter each block belongs to, and presents them as editable rows. You correct a few labels, hit approve, and it pushes entries to Harvest, Clio, or a CSV. Everything stays on the machine; the raw activity log never leaves.

Why build this

Anyone who bills in six-minute increments loses real money to reconstruction. Lawyers, agency contractors, accountants, and consultants routinely rebuild Tuesday's hours on Friday from memory and calendar guesswork, and the industry-standard shrinkage is somewhere between 10 and 20 percent of billable time simply never captured. The existing fix is a timer widget you must remember to start, which is exactly the thing people fail at when the day gets busy.

Passive trackers exist, but the ones aimed at this market are employer-installed surveillance: they stream screenshots and keystroke counts to an admin dashboard. That's a non-starter for a solo attorney or a contractor who owns their own laptop. The gap is a tracker whose entire value proposition is that the data is yours, sitting in a SQLite file you can delete. Local models are now good enough to do the labeling step without a server, which is what makes the privacy claim credible rather than a promise.

Stack sketch

  • Shell: Tauri 2 — Rust core, small binary, and the OS-level permission prompts read as a native app rather than a browser.
  • Collectors (Rust): active-win-pos-rs polling foreground window title and app every 15 seconds; gitoxide walking repos under configured roots for commits and branch checkouts; direct reads of Chrome/Firefox History and places.sqlite; calendar via ICS subscription or Microsoft Graph for Outlook shops.
  • Storage: local SQLite with FTS5 over titles, plus SQLCipher if you want the encryption story. One file, user-visible path, one-click export and wipe.
  • Segmentation: plain heuristics first — merge adjacent samples under a 5-minute idle gap into blocks, drop blocks under 3 minutes.
  • Labeling: Ollama running Qwen3 or Llama 3.3 8B locally, prompted with the user's matter list plus a few labeled examples, returning a matter code and a one-line narrative per block. Cache by title hash so the same window title never gets re-inferred.
  • Export: Harvest and Clio REST APIs, plus CSV. Both are simple token auth.

Scope for v1

In: one platform (macOS first — the window-title API is the least painful), window and git collectors, manual matter list, local clustering, an approve-and-edit review screen, CSV export.

Out: mobile, team rollups, admin views, automatic matter discovery, screenshots of any kind, cloud sync. Also out: real-time UI. The app should be invisible until 5pm — a menubar icon and nothing else.

Where it could go

The obvious second act is narrative quality. Timesheet lines get read by clients, and "reviewed contract" is worth less than "reviewed and redlined Section 7 indemnity language, Acme MSA." The activity trail contains enough detail to write the better version, and that alone justifies the price for a lot of firms.

After that, look at the estimation side. Once you have a year of labeled blocks, you know what a given matter type actually costs in hours, which turns into fixed-fee quoting and scope-creep alerts — "this engagement is at 140 percent of the median for its type." That's a much stickier product than data entry, and it's only reachable if you've been collecting honest data all along.

Watch out for

The privacy story is the product, so a single default that phones home kills it — no telemetry, no crash reports containing titles, no opt-out cloud backup. Also budget real time for matter-code accuracy: a labeler that's wrong 30 percent of the time costs more attention than it saves, and users will judge it in the first week.