# Patina Local-first time tracking for Windows desktop work. English · [简体中文](README.zh-CN.md) ![Platform](https://img.shields.io/badge/platform-Windows-4f6f8f) ![Built with Tauri](https://img.shields.io/badge/built%20with-Tauri%20v2-4f7f8f) ![Local first](https://img.shields.io/badge/data-local--first-5f7f68) [![License](https://img.shields.io/badge/license-MIT-6f647a)](LICENSE) [![Downloads](https://img.shields.io/github/downloads/Ceceliaee/patina/total?label=downloads&color=b07a3a)](https://github.com/Ceceliaee/patina/releases) [![Latest downloads](https://img.shields.io/github/downloads/Ceceliaee/patina/latest/total?label=latest&color=8f6f4f)](https://github.com/Ceceliaee/patina/releases/latest) [![GitHub stars](https://img.shields.io/github/stars/Ceceliaee/patina?style=social)](https://github.com/Ceceliaee/patina/stargazers)

Patina records foreground app usage as local, quiet, and trustworthy personal desktop time records.

Patina dashboard

## Why Patina - Records foreground apps automatically, without manually starting or stopping timers. - Handles idle, lock, sleep, and abnormal-exit boundaries to keep records more trustworthy. - Keeps data local by default, with no account, cloud sync, or server dependency. - Lets you manage app names, categories, colors, stats exclusions, and window title capture. - Provides lightweight local tools such as reminders, timers, and Pomodoro. - Keeps the interface restrained, clear, and low-interruption for long-term daily use. ## Download Download and install the latest Patina:

Download the latest Patina release

[Patina Web Sync](https://github.com/Ceceliaee/patina-web-sync) adds specific webpage details to browser activity. Install it as needed:

Install Patina Web Sync from the Chrome Web Store Install Patina Web Sync from Firefox Add-ons Install Patina Web Sync from Microsoft Edge Add-ons

## Core Features ### Automatic Tracking - Automatically records the current foreground app and turns activity into time records. - Detects idle, lock, and sleep states to reduce invalid time in statistics. - Handles record boundaries after long-away periods and abnormal exits, reducing accidentally merged time. - Reduces missed effective activity in low-interaction scenarios such as videos, meetings, courses, and livestreams. ### Review And Analysis - Review effective activity, app rankings, and category distribution in today's overview. - Use the timeline to review activity by date and inspect app switches and window title details. - Understand long-term time distribution through trends, heatmaps, and app curves. ### Management And Control - Rename apps and adjust categories, colors, and statistics rules. - Exclude apps you do not want in statistics, or disable window title capture for specific apps. - Export local backups, restore backups, and clean up historical records. ### Lightweight Tools - Create one-off reminders and app usage limit reminders. - Use stopwatch, countdown, and Pomodoro for active focus tasks. - Tool state stays local and does not replace automatic tracking records. ## Interface Preview
History Data
History page Data page
Classification Tools
Classification page Tools page
Settings About
Settings page About page
## Reliability And Privacy Time tracking has long-term value only when the records are trustworthy. Patina focuses on these boundaries: - **Foreground app recognition**: records the window and app that are actually in the foreground, reducing temporary-window and system noise. - **Idle handling**: idle time does not continue counting as effective activity. - **State boundaries**: handles record boundaries after lock, sleep, resume, long-away periods, and abnormal exits. - **Effective-duration stats**: rankings, distributions, and totals use effective activity time, not just open spans. - **Title capture control**: window title capture can be disabled per app to reduce unnecessary sensitive information retention. - **Local data control**: core data stays local, and backups, restores, and history cleanup are initiated by the user. ## Current Scope Patina currently focuses on personal local time records: - Windows 10/11 desktop use - Personal local data storage and control - Automatic tracking, review, classification, and backup or restore - Lightweight local tools It is not currently aimed at team collaboration, account systems, cloud sync, multi-platform sync, or heavy AI insights. ## Build From Source ### Requirements - [Rust](https://www.rust-lang.org/tools/install) - [Node.js](https://nodejs.org/) 18+ ### Install Dependencies ```bash git clone https://github.com/Ceceliaee/patina.git cd patina npm install ``` ### Run In Development ```bash npm run tauri dev ``` ### Build Installer ```bash npm run tauri build ``` Installers are generated under: ```text src-tauri/target/release/bundle/ ``` ## Tech Stack - Desktop shell: Tauri v2 - Backend: Rust - Frontend: React + Vite + TypeScript - Styling: Tailwind CSS - Animation: Framer Motion - Charts: Recharts - Database: SQLite via `@tauri-apps/plugin-sql` - Windows integration: `windows` crate ## Contributing If you want to contribute, understand the product direction, or review architecture boundaries, start with [`CONTRIBUTING.md`](CONTRIBUTING.md#english). ## Feedback Use GitHub Issues for bugs and feedback that needs follow-up, or scan the QR code to join the QQ channel for everyday conversation:
GitHub Issues

Patina QQ channel QR code
## Support Patina is a personal, local-first open-source project. If it has been useful in your daily life or work, you can support ongoing maintenance in whichever way is convenient:
Buy me a coffee

WeChat reward code
Sponsorship helps sustain maintenance, but it does not affect feature priority, issue handling, the roadmap, or the product direction. ## Star History Star History Chart ## License [MIT](LICENSE)