{"slug": "i-built-an-zero-touch-or-automatic-ai-time-tracker-because-i-was-too-lazy-to-my", "title": "I Built an zero touch or automatic AI Time Tracker Because I Was Too Lazy to Track My Time 💀", "summary": "A developer built Time Tracker AI 2.0, an open-source Windows time-tracking application that automatically records application and browser activity without manual timers. The tool polls the active window roughly once per second, detects idle periods from keyboard and mouse activity, attributes browser usage to specific domains across Chrome, Edge, Brave, Opera, Vivaldi and Firefox without a browser extension, and classifies activity using a rule-based pipeline with optional Gemma-model assistance. It was submitted to the Hacktoberfest Open-Source AI Challenge.", "body_md": "*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady](https://dev.to/challenges/hacktoberfest-week3-2026-10-19).*\n\nRecently, I was reading *The Now Habit*, a book about overcoming procrastination. It discussed something surprisingly simple: **track where your time goes before trying to change how you spend it.**\n\nMakes sense, right? So I decided to start tracking my time on paper, following one of the examples in the book.\n\nAnd then I did what any dedicated procrastinator would do.\n\nI procrastinated on tracking my procrastination. 💀\n\nThink about it. I was trying to stop wasting time, but the very first step required me to remember to write things down every time I switched tasks. Open a notebook, write down the task, note the time, remember to stop the timer, start another one…\n\nBro, I needed a project manager just to manage the process of managing my time.\n\nSo naturally, instead of doing the sensible thing and simply writing things down, **I spent my time building an entire application to do it for me.** 😂\n\nMeet **Time Tracker AI 2.0** — an automatic, AI-powered Windows time tracker built around one rule:\n\n**Zero steps to record your time. Your computer does the tracking; you do your thing.**\n\nIt quietly observes what I'm doing on my computer, records activity, identifies applications and websites, classifies tasks, builds a timeline, calculates productivity metrics, and alerts me when my actions don't match my plans.\n\nNo manually starting timers. No reconstructing my entire day from memory at midnight. No spreadsheet that I enthusiastically create and abandon three days later.\n\nThe tracking engine continuously monitors my active Windows application, window title, activity duration, and idle periods in the background.\n\nAutomatically records application usage without requiring manual timers.\n\nDetects idle periods based on keyboard and mouse activity, without recording the actual keys I type.\n\nTracks when applications change and merges consecutive observations into longer activity records.\n\nSupports starting, pausing, resuming, and stopping tracking.\n\nProtects against duplicate tracking processes and includes recovery mechanisms for interrupted observations.\n\nThe raw observation loop runs at approximately one-second intervals. The application combines those observations into useful records rather than presenting every second as a separate task.\n\nAn application name alone doesn't tell me much. Spending an hour in Chrome could mean studying Python, watching chess videos, browsing Reddit, or falling into a YouTube rabbit hole.\n\nTime Tracker AI tracks browser activity and attributes it to individual websites.\n\nIt supports Chrome, Edge, Brave, Opera, Opera GX, Vivaldi, and Firefox through Windows accessibility automation and fallback title parsing.\n\nIt can associate browser activity with website domains and page titles without requiring a dedicated browser extension. Captured URLs are sanitized to remove query parameters and fragments.\n\nThe objective is to understand not just which application I opened, but what I was actually doing inside it.\n\nRaw activity records aren't very useful until they have context.\n\nThe application uses a rule-based classification pipeline first. It checks manual corrections, URL rules, website domains, application names, and window-title patterns in priority order.\n\nFor more ambiguous activity, optional AI-assisted classification using the Gemma model family can provide richer descriptions and categories.\n\nThe result is a structured activity record rather than a long list of cryptic executable names.\n\nI can also create custom categories and rules, adjust how applications and websites are classified, and correct mistakes directly from the timeline.\n\nThe system includes built-in categories for coding and development, research and learning, communication, utilities and system activity, entertainment, social browsing, uncategorized activity, and idle gaps.\n\nSometimes an application title doesn't tell the whole story.\n\nThe project includes an optional vision-analysis path for ambiguous windows. When the configured Ollama vision service is available, screenshots can be analyzed to provide additional context about the activity.\n\nA sensitive-application blacklist suppresses screenshot processing for configured windows and applications, including password managers, authentication tools, banking-related windows, and other sensitive contexts.\n\nThe vision functionality is optional. Core time recording doesn't require an AI vision model to be running.\n\nRecording thousands of observations is easy. Turning them into a readable story of the day is the harder part.\n\nThe interactive timeline groups related observations into sessions and helps distinguish between different kinds of activity.\n\nIt includes:\n\nManual corrections are saved so that corrected classifications can take precedence over automatic classifications when the timeline is loaded again.\n\nThis is where all that tracking becomes useful.\n\nThe dashboard provides an overview of focused work, productive work, distraction time, and daily goal progress, including comparisons against the previous day.\n\nThe analytics section lets me investigate my activity across today, yesterday, the last seven days, the last 30 days, this week, this month, and custom date ranges.\n\nInstead of guessing whether I spent the day productively, I can inspect the data and see where my time actually went.\n\nTracking what happened is only half the problem. I also need to compare it with what I intended to do.\n\nThe time-blocking system lets me schedule a task, specify its start time and duration, and assign a target category.\n\nI can:\n\nThe important distinction is that a planned task and a recorded task aren't treated as the same thing. The tracker can compare what I intended to do with what actually happened.\n\nThis is one of my favourite features because it helps close the gap between making a plan and following it.\n\nTime Tracker AI can generate native Windows notifications for:\n\nThe notifications support relevant actions, such as starting a focus session, snoozing an alert, skipping a block, opening the planner, reviewing activity, or switching tasks.\n\nIt also includes configurable notification preferences, idle thresholds, notification sounds, quiet hours, and a notification history.\n\nThe notification logic includes grace periods, cooldowns, and suppression rules to reduce unnecessary alerts.\n\nIf I return after being away for a long time, the application can offer a recovery prompt so I can manually add activity that wasn't recorded. It doesn't need to pretend it knows exactly what happened while I was gone.\n\nThe aim is accountability without turning my desktop into a notification factory.\n\nThe project includes an AI Coach for questions about my day.\n\nIt supports structured queries about productivity summaries, distractions, focus, goals, time blocks, and activity breakdowns. These common questions can be answered using metrics obtained directly from the local database.\n\nFor more open-ended questions, the application can use an available Ollama language model, with verified activity metrics supplied as context.\n\nIf the model isn't available, supported requests can return a deterministic summary of the available data instead.\n\nThe purpose isn't to let a chatbot invent productivity statistics. It's to make the information already collected easier to understand and act on.\n\nThe coach also has suggested prompts and navigation actions that can take me directly to relevant parts of the application.\n\nI don't want to keep opening my dashboard just to check my active session.\n\nThe floating mini-widget stays on top of other windows and provides a compact view of my tracking status.\n\nIt displays the active task, elapsed session time, and daily progress. It supports expanded and compact layouts, tracking controls, task editing, and saved window positioning.\n\nThat means I can keep it visible while coding, browsing documentation, or working in a terminal without constantly switching away from what I'm doing.\n\nThe application also includes the less glamorous features that make a real tool usable.\n\nI didn't want the final product to be just another development server that needed to be opened in a browser.\n\nThe project combines a Python backend, a React and TypeScript interface, FastAPI, SQLite, and PyWebView into a dedicated Windows desktop application.\n\nIt includes a custom desktop title bar, minimize and maximize controls, window management, a single-instance mechanism, and lifecycle handling for closing the application while tracking is active.\n\nThe project also has Windows packaging and installer scripts, desktop and Start Menu shortcuts, an uninstaller, and support for opening the application through notification actions.\n\nThe intended experience is a proper desktop application rather than a website I have to remember to open.\n\n**Demo video:** [https://youtu.be/XNiH-a5P9Zg?si=oiFGwKcNzyiUlEWK](https://dev.tourl)\n\n**GitHub repository:** [Time Tracker AI 2.0](https://github.com/pan103769/time-tracker_ai-2.0)\n\nThe project is built primarily with Python, React, TypeScript, FastAPI, SQLite, and PyWebView.\n\nThe architecture separates the Windows tracking engine from the API, database, AI-assisted interpretation, and desktop interface. The tracking engine collects observations, the database stores them, the backend calculates metrics and handles classification, and the frontend presents the results.\n\nI use **Ollama-compatible models, including the Gemma model family**, for optional AI-powered activity interpretation and related features. The project also contains a Llama 3.2 configuration for open-ended AI Coach queries.\n\nThe Gemma-related paths support text interpretation, optional vision analysis, and natural-language productivity summaries, depending on their configuration and availability.\n\nI deliberately kept deterministic logic at the centre of the application. Recording an observation, calculating a duration, checking a scheduled time block, or aggregating a report doesn't inherently require an LLM.\n\nAI is used where interpretation can add value. Rules and database calculations handle the tasks that are better suited to deterministic logic.\n\nThis hybrid design also means that losing access to a model doesn't have to stop the core tracker.\n\nI'm a student, and I don't have an unlimited budget for building software.\n\nI want to experiment with AI, build real projects, and keep iterating. But sending every classification and analysis request to an expensive closed API can make experimentation costly, particularly for a product that runs continuously.\n\nOpen-weight models give me more flexibility.\n\nWith an appropriate local model and compatible hardware, I can run inference without paying a per-token fee to a hosted API. I can experiment with different models, control the configuration, and decide which operations actually benefit from AI.\n\nCloud-hosted model options are useful too, but they can require network access and may have different costs or authentication requirements. The important part is being able to choose how each feature is implemented.\n\nOpen models also let me learn by exploring how inference fits into a real application instead of treating an AI API as a magic box.\n\nFor someone building independently on a student budget, that freedom matters. It lowers the cost of experimentation and makes it easier to turn an idea into something practical.\n\nThe Lazy Payoff\n\nThe biggest payoff is that I no longer have to remember to start and stop timers every time I switch tasks. Earlier, I'd start a timer, move to another task, and completely forget to stop the original one. Suddenly, my two-hour coding session somehow lasted six hours. My time tracking was tracking fiction. 💀\n\nNow I can sit down to code, research a topic, or watch a tutorial, and the tracker records the activity in the background. Later, I can inspect the timeline, review my productivity, find interruptions, export the data, and compare my actual behaviour against the schedule I made.\n\nAnd when I plan to spend an hour studying but drift into unrelated activity, the application can help me notice that mismatch before the end of the day.\n\nIt's not going to magically cure my procrastination. Unfortunately, no amount of Python can guarantee that I won't find a new way to waste three hours.\n\nBut it removes one excuse: I can't procrastinate on tracking my time when the tracking happens automatically.\n\nI started this project because I wanted to build a habit from The Now Habit. Somewhere along the way, that simple attempt turned into a much larger experiment in Windows automation, data analysis, AI, and product development.\n\nThe project is still evolving, but that is the idea behind Time Tracker AI 2.0: make tracking effortless, make the data useful, and make it easier to notice when my actions don't match my intentions.\n\nAnd hopefully, spend less time building increasingly elaborate systems to help me stop wasting time.\n\nAlthough, looking at this project, I may need to build a tracker for the time I spend building trackers. 💀\n\nPrize Categories\n\nBest Use of Gemma\n\nThe project uses the Gemma model family for optional AI-powered activity interpretation and related analysis paths. Rather than sending every observation to an AI model, I combine model-assisted interpretation with deterministic tracking, classification rules, and local analytics.\n\nThat hybrid approach lets AI add context where it's useful while keeping core tracking and reporting functional without constant model inference.\n\nBest Use of GitHub Copilot\n\nGitHub Copilot helped me understand unfamiliar code, explore implementation ideas, debug errors, and refine features while building this project as a student. \n\nIt made development faster and helped me learn along the way, but testing and fixing things when they broke was still on me! 🚀\n\nGitHub Copilot helped me throughout the process of turning this idea into a working application.\n\nAs a student, I'm still learning how to design and maintain larger software projects. Building a system that combines Windows APIs, background processes, a database, a backend, a React interface, AI integrations, and desktop packaging meant dealing with plenty of unfamiliar code and concepts.\n\nCopilot helped me think through implementation approaches, understand existing code, explore unfamiliar functions, and translate ideas into concrete code changes. It was also useful when working through errors, refining implementations, and understanding how different parts of the application fit together.\n\nOne of the biggest benefits was being able to investigate why something worked instead of blindly copying a solution. Understanding why matters when multiple components need to communicate reliably.\n\nAI-assisted development wasn't a magic button, either. Suggestions still needed to be inspected, tested, and debugged. Sometimes a fix introduced a new issue, or the initial diagnosis turned out to be wrong. That meant iterating: understand the problem, explore a solution, implement it, and verify the result.\n\nFor me, Copilot was less about generating an entire application with one prompt and more about accelerating the development and learning process. It helped me work through unfamiliar technical challenges while learning about software architecture, debugging, integration, and product development along the way.\n\n**The biggest lesson was that AI assistance is most useful when it helps you understand and improve your work, not when you stop questioning its output.**", "url": "https://wpnews.pro/news/i-built-an-zero-touch-or-automatic-ai-time-tracker-because-i-was-too-lazy-to-my", "canonical_source": "https://dev.to/ayuzz10p/i-built-an-zero-touch-or-automatic-ai-time-tracker-because-i-was-too-lazy-to-track-my-time-8ka", "published_at": "2026-10-26 06:05:10+00:00", "updated_at": "2026-10-26 06:12:52.309364+00:00", "lang": "en", "topics": ["ai-tools", "ai-products", "developer-tools", "artificial-intelligence"], "entities": ["Time Tracker AI 2.0", "Gemma", "Chrome", "Firefox", "Hacktoberfest", "Windows"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-built-an-zero-touch-or-automatic-ai-time-tracker-because-i-was-too-lazy-to-my", "markdown": "https://wpnews.pro/news/i-built-an-zero-touch-or-automatic-ai-time-tracker-because-i-was-too-lazy-to-my.md", "text": "https://wpnews.pro/news/i-built-an-zero-touch-or-automatic-ai-time-tracker-because-i-was-too-lazy-to-my.txt", "jsonld": "https://wpnews.pro/news/i-built-an-zero-touch-or-automatic-ai-time-tracker-because-i-was-too-lazy-to-my.jsonld"}}