Skip to content

D3lK1ch1/AccountabilityApp

Repository files navigation

Accountability App

A privacy-first Windows desktop widget that tracks your app usage and helps you stay aware of your digital habits. All data is stored locally on your machine — no cloud, no telemetry.

Status: Releasing pre-beta (v0.1.0). Core tracking works; blocking UI and AI chatbot are on the roadmap.


Description

Accountability App is a lightweight, always-on-top desktop widget that runs quietly in your system tray and records which apps you use and for how long. It surfaces daily usage stats and session history in a draggable widget so you can see where your time is actually going.

Built with a Rust backend for system-level activity tracking and a React frontend for the widget UI, with a local SQLite database as the single source of truth.

Current Features

  • Windows app activity tracking (active window polling every 3s)
  • Session-based time tracking with crash recovery
  • Daily usage stats and most-used app summary
  • Draggable always-on-top widget with expand/collapse views
  • System tray integration
  • Global hotkey (Ctrl+Shift+A) to show/hide widget
  • First-run consent modal for privacy confirmation
  • Clear all session data at any time
  • App blocking UI (backend commands ready, UI pending)
  • AI therapist chatbot (planned)

See CHANGELOG.md for version history and upcoming work.


Built With

Layer Technology
App Framework Tauri 2
Frontend React 19 + TypeScript
State Management Zustand
Backend Rust
Database SQLite via rusqlite
Activity Tracking active-win-pos-rs
Build Tool Vite 7
Testing (Frontend) Vitest + Testing Library
Testing (Backend) Rust built-in test framework + tempfile

Getting Started

Prerequisites

You'll need the following installed on a Windows 10 or later machine:

Installation

  1. Clone the repository:

    git clone https://github.com/D3lK1ch1/AccountabilityApp.git
    cd AccountabilityApp
  2. Install frontend dependencies:

    npm install
  3. Run the app in development mode:

    npm run tauri dev

The first launch compiles the Rust backend, which can take a few minutes. Subsequent launches are much faster.

Running the Tests

The project has both frontend and backend tests. If you want to verify things are working or explore the test setup:

Frontend (Vitest):

npm test           # Run the frontend test suite once
npm run test:watch # Run in watch mode

Frontend tests live in src/__tests__/ and cover the Zustand store, formatter utilities, and the Widget component.

Backend (Rust):

cd src-tauri
cargo test         # Run the Rust unit test suite

Backend unit tests live inline at the bottom of src-tauri/src/database.rs (inside a #[cfg(test)] module) and cover session CRUD, session lifecycle updates, blocked-apps CRUD, settings CRUD, per-app usage aggregation, and total tracked time.

Building the Installer

npm run tauri build

Output lands in src-tauri/target/release

Click on accountabilityapp.exe for the app itself.


Usage

The video bellow shows how the Accountability App works, from general consent to app and tab tracking, clearing data and quitting the app:

Watch the demo video


Roadmap

High-level direction for the project. See CHANGELOG.md for version-specific planning.

  • App blocking UI (backend already supports add_blocked_app / remove_blocked_app)
  • AI therapist chatbot powered by a local LLM via Ollama
  • Encrypted SQLite database with an OS keychain-backed local key
  • Expand backend test coverage (end_crash_session, error cases)
  • Add a CI pipeline
  • macOS support (active window tracking — merged PR #1)
  • iOS support (via the Screen Time API)
  • Browser/editor extensions for tab-level tracking (database and command bridge started)

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

About

A widget app to track app/time usage and use the progress to analyze habit behavior / stop it with ad blockers for example

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors