01 CAPTURE
It looks
Vespora takes a periodic snapshot of your main display, reads the text on it, and drops the picture in the same breath. Nothing is saved.
ON-DEVICE TIME TRACKER FOR MACOS
Your day never leaves your Mac. Vespora watches what you work on, writes it down in plain language, and turns observed time into billable hours.
IN DEVELOPMENT · v0.1.0 · not on the App Store
↓ see how a day gets recorded
01 / THE PIPELINE
No timers to start. No projects to remember to switch. You work, and at the end of it there is a written day.
It looks
Vespora takes a periodic snapshot of your main display, reads the text on it, and drops the picture in the same breath. Nothing is saved.
It writes
The Mac's own built-in AI turns what it read into one plain sentence about what you were doing.
2h deep work on Image Browser, cycling between Cursor, Ghostty and the running app.
20 min on Reddit while a build ran.
Vespora's own words, on its own machine
It files
The block lands in one of your activities, gets attributed to the project it belongs to, and picks up that project’s rate.
Activities say what kind of time it was: distraction, daily use, work, deep work. Projects say what it was for, and each project carries its own rate.
02 / THE HONEST LEDGER
Most trackers round up. Vespora leaves the holes in. If it did not watch a stretch of your day, that stretch is unclaimable, and it stays that way.
Sleep is not special
Awake time with nothing observed is exactly as unclaimable as sleep. There is one rule, and it does not care why the gap is there.
Idle pauses itself
Step away and Vespora stops counting. Choose off, five minutes, fifteen, or an hour. Fifteen is the default.
One invoice per project
Pick a billing period and Vespora writes an A4 PDF for a project, with its hours, any discount, and the milestone rows you add.
03 / PRIVATE BY ARCHITECTURE
Some people cannot put their screen on someone else's server. Lawyers, clinicians, anyone working under an NDA. Vespora is designed so that question never comes up: there is no server in it.
No network code
There is no networking in the app and no permission for it. Nothing to send, nowhere to send it, no key to leak.
Screenshots are never saved
A capture is read for its text and dropped in the same moment. A release build has no way to write one to disk.
One local file
Your blocks, activities and projects live in a single database inside the app’s own container on your Mac. No screenshots in it, no captured text, no keystrokes.
No accessibility access
Vespora never reads your keyboard or your windows through the Accessibility API. To notice you stepped away it asks one number: how long since any input.
No analytics, no accounts
No sign-up, no telemetry, no crash reporter, no third-party SDKs of any kind.
Off until you say so
Capture is switched off the first time you open it, and a status pill shows whenever it is running.
Six claims, and each one is a property of the build rather than a promise about it.
04 / ARRIVING
Vespora records a day, narrates it in plain language, buckets it into your projects and writes the invoice. That much runs end to end. What is not built yet is listed here, rather than left for you to find out.
What runs today
Capture, narration, your own activities, projects with rates, and a per-project PDF invoice. The whole loop, on one machine, with the unobserved stretches left unclaimed.
What is not built yet
You cannot delete a recorded block. The only export is the PDF invoice. Both are named in the support notes instead of being left for you to discover.
How you will know
There is no waiting list here and nothing to sign up to. When Vespora runs on other people's Macs, this page will say so and the support notes will change with it.
Read the support notes for what is missing and why, and the privacy policy for where the one local file lives and how to remove it.