A privacy-first browser extension that automatically tracks your online activity. All data stays local, no cloud, no account required.
- Background Session Tracking – Monitors active tabs and captures time spent per domain and page
- Local-First Storage – All data stored in IndexedDB; nothing synced to the cloud
- Privacy by Design – No account, no authentication, no external requests
- Time Analytics – View daily and hourly trends with time spent per site
- Zero Telemetry – Complete data ownership and privacy
- Node.js 18+ and Bun package manager
- A modern Chromium-based browser (Chrome, Edge, Brave, etc.)
-
Clone the repository:
git clone https://github.com/nuttycc/LuminTime.git cd LuminTime -
Install dependencies:
bun install
-
Start the development server:
bun run dev
-
Load the extension in your browser:
- Open
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked" and select the
.output/chrome-mv3folder
- Open
src/
├── entrypoints/ # Extension entry points (background, popup)
├── components/ # Vue 3 components
├── composables/ # Vue composables (hooks)
├── db/ # Database layer (Dexie models, services)
├── utils/ # Utility functions
└── styles/ # Global styles
- WXT – Modern web extension framework with HMR support
- Vue 3 – Progressive JavaScript framework
- Tailwind CSS 4 – Utility-first CSS
- DaisyUI 5 – Tailwind components library
- Vitest – Unit test framework
- VueUse – Composition utilities for Vue
- Es-Toolkit – Modern JavaScript utilities
- Session Tracking – Background script monitors active tabs via Browser Tabs API, detects window focus, and idle state changes
- Time Recording – Captures time spent on each domain and page, split by midnight boundaries
- Data Storage – Records are stored in three layers: raw history logs, site aggregates, and page details
- Analytics Dashboard – Popup displays total time, daily/hourly trends, and top sites ranked by duration
- Privacy First – All processing happens locally; zero cloud requests or external dependencies
MIT License
For issues, feature requests, or questions, please open an issue on GitHub.


