Show HN: Dayflow – A git log for your day (github.com)

480 points by jerryliu12 ↗ HN
Hi HN! I've been building Dayflow, a macOS app that automatically tracks what you're actually working on (not just which apps you have open).

Here's what it does:

- It creates a semantic timeline of your day;

- It does it by understanding the content on your screen (with local or cloud VLMs);

- This allows you to see exactly where your time went without any manual logging.

Traditional time trackers tell you "3 hours in Chrome" which is not very helpful. Dayflow actually understands if you're reading documentation, debugging code, or scrolling HN. Instead of "Chrome: 3 hours", you get "Reviewed PR comments: 45min", "Read HN thread about Rust: 20min", "Debugged auth flow: 1.5hr".

I was an early Rewind user but rarely used the retrieval feature. I built Dayflow because I saw other interesting uses for screen data. I find that it helps me stay on track while working - I check it every few hours and make sure I’m spending my time the way I intended - if I’m not, I try to course correct.

Here’s what you need to know about privacy:

- Run 100% locally using qwen2.5-vl-3b (~4GB model)

- No cloud uploads, no account

- Full source available under MIT license (https://github.com/JerryZLiu/Dayflow)

- Optional: BYO Gemini API key for better quality (stored in Keychain, with free-tier workaround to prevent training on your data)

The tech stack is pretty simple, SwiftUI with a local sqlite DB. Uses native macOS apis for efficient screen captures. Since most people who run LLMs locally already have their tool of choice (Ollama, LLMStudio, etc.), I decided to not embed an LLM into Dayflow.

By far the biggest challenge was adapting from SOTA vision models like Gemini 2.5 Pro to small, local models. My constraints were that it had to take up <4GB of ram and have vision capabilities. I had to do a lot of evals to figure out that Qwen2.5VL-3B was the best balance of size and quality, but there was still a sizable tradeoff in quality that I had to accept. I also got creative with sampling rates and prompt chunking to deal with the 100x smaller context window. Processing a 15 minute segment takes ~32 local LLM calls vs 2 Gemini calls!

Here’s what I’m working on next:

Distillation: Using Gemini's high-quality outputs as training data to teach a local model the patterns it needs, hopefully closing the quality gap.

Custom dashboards where you can track answers to any question like "How long did I spend on HN?" or "Hours until my first deep work session of the day

I'd love to hear your thoughts, especially if you've struggled with productivity tracking or have ideas for what you'd want from a tool like this.

71 comments

[ 3.0 ms ] story [ 86.3 ms ] thread
wait... isnt this pretty much what Microsoft was doing with Recall?
Is it possible to include wearables as a data sources?

i.e. apple watch for sleep, running, activity levels? it could really give a 360 view of your life

I'd only ever consider doing it with a local model, but this looks really cool!
Nice work, does this work with local (100% offline) models assuming you have decent hardware and are serving them up with llama.cpp or similar?
Really nice! I currently use ActivityWatch for tracking tasks on PC.

Some things I would like to be able to do with software like this:

- Identify the 'spark' of a distraction. For example, opening my email inbox to read a specific email also shows me many unrelated emails. These can easily be the cause of a 5-15 minute distraction. This information is often actionable. I installed browser plugins to hide my youtube suggested videos and my distractions went down. I made sure to close all unused windows to avoid catching a glimpse of unrelated work.

- Identify repeated tasks, and the cadence of those tasks. Do I manually make an invoice once a week for a particular edge case? Is the process basically identical every time. Could this be automated?

- How was I feeling before, during and after a task. (This is a very broad and intentionally not well-defined question, but I think it has the most promise for improving procrastination and task initiation).

You should sell this to Lawyers and other professionals who bill per hour to reconstruct their billables for the day without missing anything. They would pay big money for something that recovered forgotten(unbilled) work throughout the day.
I'm a litigation legal admin - I have been for 25-30 years. I instantly brought this up to an associate, telling them, "Maybe not now, but before you retire, this'll be the norm in the industry."

She had been complaining the day before about having to reconstruct a huge bunch of little 0.1 entries involving e-mails to various individuals in cases. If it could be done automatically, through a local LLM? chef's kiss

Trust me, law is definitely where you want to land this thing.

In all honesty, I have absolutely no negotiating power or decision-making authority for my firm, but it's a big one -- if that's a direction you want to go, can't guaranty I can swing enough weight, but I probably could find you the right people to talk to, give you an introduction.

On one hand I'm super enthusiastic about your project.

This could help battle procrastination, organize your time in a long run, bill your clients more efficiently, etc. 20 years younger, hyper productive me would kill for such product.

But then I recall when I accidently suggested TimeRescue to my boss at one time, and suddenly he was skimming though everyones daily logs to see if they're spending 100% of their times in business facing apps.

When I first heard about "covid mouse mover devices" that faked activity for remote workers I thought it was a joke. Seriously.

But I'm afraid this is the dystopian future. Employers constantly looking at your screen and getting spreadsheets with your daily effort.

Overall, very disturbing product.

Couldn't we get a low-res version of this info by tracking the active window using a cli tool? For linux, there are several options. Not sure about Mac.

Another approach is to run OCR on 1FPS screenshots. Everything runs locally without draining the battery like an LLM would.

I would imagine this could be one of the inputs along with a STT system as context to an LLM. Because in general we can speak faster than we can write/type and for me, specifically, after a point in the day typing creates a higher cognitive load than speaking.

1. "Create a reminder for reading this email at 5:00 pm" and this could infer what to do from the screen shot's description(plus a local MCP tool for calendar)

2. "Can you fetch that file form that project in that workspace and implement the pattern in the code on my vscode terminal?" It can lower cognitive fatigue of typing and clicking a bunch of place.

3. Take notes as I describe something on the screen. It could be for prompt composition e.g. get the link from my browser and the file on vscode and write code that does XYZ.

This is super rad. Love it being Open Source, and with the option to choose local models. You’re awesome, thanks!
It's somewhat related two other recent submissions,

Replace PostgreSQL with Git for your next project for git data storing. https://news.ycombinator.com/item?id=4535144 https://devcenter.upsun.com/posts/why-you-should-replace-pos...

Consumer.today day-logging single user microsite. https://consumed.today/ https://news.ycombinator.com/item?id=45351446

Cute serendipity, rule of three. Neat project too; conceptually it sounds like an amazing ability to be able to better watch ourselves. Doing it via screenshots & AI feels like a fun sense-making adventure that actually makes a lot of sense, that can maybe try to pick through & discern what the screen is doing in a lot of different scenarios.

I would not be comfortable sending my bank info passwords and all sorts of other sensitive data that I input and see on my screen to Gemini. How much is the qualitative performance difference with a local model?
Also, if your not using an enterprise edition of gemini where your data is not used for model training, your sensitive data prompts and responses is 100% available to google.
Google owns my email, browser, phone operating system, and a small amount of passwords. I assume that it has already stolen all my confidential data by now.
Your passwords should never be visible on screen anyway: They go straight from a password manager into a censored input field.
Congrats on a nice looking app that will be very useful for individuals (though potentially misused by toxic managers).

Kudos particularly for the efforts you've gone to on explaining privacy implications.

Very cool idea. When using the Gemini option, what kind of cost would be expected to be incurred? I'd be satisfied by knowing the approximate number of tokens one would expect to be consumed by processing an hour of these recordings, and which specific model is being used.
Wow this is awesome! Wish I could try this on Windows. This is genuinely one of few time tracking solutions that piqued my interest. For now, I'll stick to manual labeling activities with my custom, simple tool: https://github.com/Klaster1/timer-5
my custom simple tool is a stopwatch on a phone ¯\_(ツ)_/¯
Woah this is fab; much less cognitive load than manually using a time tracker. And I'm glad that there's a local option and a "BYO key" option for privacy!

Feel like something of this shape should have existed for a while, but this is very well executed!

Curious how this works with multi monitor setups, e.g. watching a viedeo while researching travel plans.
This is amazing - just the tool I needed; thank you so much!
Really cool!

As already seen in the comments there are lots of desires to add more data compared to just screen input.

Could be things like:

- Apple HealthKit / watch - custom apps - Phone logs

Also you stated, and true, that there is much focus needed on improving your core feature.

It might be interesting to allow some kind of API / plugin area. So that people can expand on your core feature and add the desired parts. Might in the future expand to some kind of AppStore like feature with plugins.

That would keep your work focused and allows others to make it complete in their vision, and for others.

It’s nice to forget everything you’re working on periodically and examine the pieces of what you’ve built and redecide what they mean if anything.
"Records screen at 1 FPS in 15-second chunks.“

If it’s recording 15 seconds, how often are you doing that? Once every 15m as the analysis interval is 15m?

Looks like it's recording all the time and analyzes 900 screenshots every 15 minutes? And it keeps records for 3 days.

So I'm not sure I buy the lightweight/low-impact claim.

This would be helpful also for companies? Hence, ethically point of view it would violate the employee time in screen so there would arise issues with employees rights and HR?