Skip to content

Repository files navigation

Activity Tracker

Platform: Windows Tauri v2 React 19 TypeScript License: MIT

Privacy-first Windows activity and productivity tracker.

Activity Tracker answers the question "where did my day actually go?" — from fully local, content-free data. It watches the foreground window and application usage in real time, counts keystrokes and mouse clicks without ever recording their content, estimates power draw, detects deep-work sessions, gamifies focus, and guards against distraction. Everything stays on your machine.

Your data belongs to you: no keystroke content, no screenshots, no telemetry, no cloud sync.

The Pulse dashboard — focus score, screen time, focus flow chart and app usage Timeline — focus calendar and per-app usage grid Activity — daily focus bars, input stats and GitHub-style focus calendar

Table of Contents

Features

  • Privacy-first by design — data lives in a local SQLite database at C:\ProgramData\ActivityTracker (shared across Windows user profiles), never in the cloud.
  • Real-time tracking — foreground window/app monitoring, global keystroke and click counts, mouse distance, idle detection with a configurable threshold.
  • Historical analysis — date-range filters (Today, Yesterday, This Week, Previous Week, This Month), chronological log, app-wise aggregation, and a GitHub-style 52-week focus calendar.
  • The Pulse — a high-level daily overview: focus score, screen time, deep-work sessions, peak hour, top app, and deltas vs. yesterday.
  • Focus Flow — a continuous 24-hour timeline of focus intensity with strict interval alignment.
  • Deep Work Sessions — contiguous focus blocks (≥ 25 min) with duration, dominant app, and interruptions.
  • Two reading modesdata (numbers-led) or editorial (a serif prose narrative of your day). Same queries, same numbers, different presentation.
  • Energy Vampire — honest power-draw estimates per app (wattage bands × time), clearly labeled as estimates, not hardware measurements.
  • Gamification — XP, levels, streaks, and six achievements (Early Bird, Night Owl, Deep Diver, Consistency King, Month Marathon, Century Club) with native notifications on unlock.
  • Distraction Guard — per-app daily time limits; one native notification per day, an in-app alert, and an amber tray icon when a limit is crossed.
  • Smart branding — process names are cleaned automatically (visual_studio_code.exeVisual Studio Code), with support for common acronyms.
  • Machine-wide settings — launch on startup, start minimized to tray, idle threshold, app blacklist, per-app Focus/Distraction/Ignore classification, sensitive-title redaction, data retention (30/90/180 days or forever).
  • Data export — full history as JSON or CSV via the native save dialog.
  • Premium UI — Plus Jakarta Sans typography, glassmorphism, spotlight hover effects, dark/light/system themes, and smooth transitions.

Tech Stack

Layer Technology
Shell Tauri v2 (WebView2)
Backend Rust + rusqlite, native Win32 polling (GetForegroundWindow / GetLastInputInfo)
Frontend React 19 + TypeScript + Vite
State TanStack Query
Styling Tailwind CSS v4 + custom design system (vanilla CSS)
Charts Recharts
Database SQLite (bundled, via rusqlite)
Tests Vitest + React Testing Library

Architecture

Domain-driven, feature-first layout — data access is centralized in React Query hooks that mirror the Rust backend's structs, so the TypeScript types and the SQLite schema never drift far apart.

src/
├── api/             # Tauri backend bindings
├── components/      # UI components (dashboard, insights, tools, wellbeing, ui, shared)
├── constants/       # Design tokens, animations, config
├── context/         # React Context (theme, etc.)
├── hooks/           # Custom React hooks (+ queries/ for data fetching)
├── pages/           # Route components (Dashboard, Timeline, Activity, Power, Tools, Settings)
├── types/           # Shared TypeScript definitions
└── utils/           # Helper functions (formatters, validation)

Getting Started

Prerequisites

Installation

git clone https://github.com/unfoldingdimensions/Activity_Tracker.git
cd Activity_Tracker
npm install

Run in development mode

npm run tauri dev

Test, lint and build

npm test          # run the test suite (Vitest)
npm run lint      # ESLint
npm run build     # type-check + production frontend build
npm run tauri build   # full desktop installer

Privacy

This application:

  1. Does not log keystroke content — only frequency counts.
  2. Does not capture screenshots or window contents.
  3. Contains no tracking pixels, telemetry, or cloud sync.
  4. Stores everything in a local activity.db under C:\ProgramData\ActivityTracker on Windows.
  5. Can redact window titles at record time — sensitive keywords you configure (e.g. password, bank) are masked before anything is stored.
  6. Lets you blacklist apps entirely and export or delete your data at any time.

Contributing

Questions and bug reports are welcome via GitHub Issues. Pull requests are reviewed and appreciated — please make sure npm test and npm run lint pass before submitting.

License

MIT © 2026 unfoldingdimensions


Built for focused developers.

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages