Skip to content

taskclf

taskclf icon

A local-first, privacy-preserving classifier that infers your task type (coding, writing, meetings, etc.) from computer activity signals.

Privacy first

No raw keystrokes or window titles are stored — only aggregate rates and hashed identifiers. Everything runs on your machine.

Who is this for? Developers and power users who want automated, private time tracking without sending data to a third-party service.

Quick start

uv sync
uv run taskclf --help

See the Getting Started guide for full setup, or try the synthetic data demo to run the full pipeline without ActivityWatch.

Key concepts

Concept Summary
Buckets Activity aggregated into 60 s windows — Time & Buckets
8 core labels Build, Debug, Review, Write, ReadResearch, Communicate, Meet, BreakIdle — Task Labels
Privacy by design No raw content is ever stored — Privacy Model
Custom taxonomy Map core labels to your own categories without retraining — Custom Taxonomy

Guides

API Reference

Auto-generated from source docstrings. Use the API Reference tab for the full listing, or jump to a group:

Group Description
Core Types, schemas, storage, validation, and observability
Adapters ActivityWatch data import
Features Feature extraction from raw events
Labels Label storage, projection, and active labeling
Training Dataset construction, model training, and evaluation
Inference Prediction, calibration, smoothing, and monitoring
Reports Daily summaries and export
UI Web dashboard and system tray app
CLI Command-line interface