Skip to main content

Daytrace

Daytrace is a privacy-first desktop utility that turns a person's day into a searchable text journal. Screen, microphone, keyboard activity, and system context are independent opt-ins. Captured media is processed ephemerally and discarded; the durable record contains text and structured metadata only.

This repository now includes a headless ActivityWatch summary prototype. The broader cross-platform capture application remains in the product and architecture planning phase.

ActivityWatch summary prototype

The first executable prototype is a Python CLI that reads a selected day from an already-running ActivityWatch instance and produces deterministic Markdown. It does not copy raw events or call an LLM.

Prerequisites: install and run ActivityWatch, then install uv. On Windows:

winget install --id=astral-sh.uv -e

From a source checkout:

git switch codex/activitywatch-integration-research
uv sync
uv run daytrace activitywatch --date 2026-09-10 --output summary.md

Filter the report to records containing a project name:

uv run daytrace activitywatch --date 2026-09-10 --project daytrace --output summary.md

The resulting summary.md contains an overview, a chronological timeline, and application totals. A day with no matching activity is still a successful report and contains No matching activity.

After the package is published, the equivalent one-off command will be:

uvx daytrace activitywatch --date 2026-09-10 --output summary.md

Python callers—including a future second-brain integration—can use the same deterministic renderer directly:

from datetime import date

from daytrace.activitywatch import summarize_day

markdown = summarize_day(date(2026, 9, 10), project="daytrace")

Daytrace reads ActivityWatch through http://127.0.0.1:5600 by default. It does not retain images, audio, video, full browser URLs, or a second copy of ActivityWatch events. Use --server for another ActivityWatch endpoint and --timezone for an explicit IANA timezone such as America/Los_Angeles.

Product decisions

  • Local-first: the database and processing stay on the user's computer unless the user explicitly configures a cloud provider or export destination.
  • All capture sources start off and require separate, informed consent.
  • Tauri 2 and Rust are the recommended desktop stack, with a small React/Vite interface that normally stays hidden behind a tray icon.
  • Accessibility text is preferred over screenshots. OCR is a fallback, and image buffers are destroyed after extraction.
  • Microphone audio is held only in bounded memory, segmented with voice activity detection, transcribed, and discarded.
  • Keyboard capture defaults to activity signals only, not key content. An advanced typed-text mode is a later, separately consented feature with password and deny-list suppression.
  • SQLite, B-tree time dimensions, and FTS5 provide the hierarchical timeline and full-text search. Captured media and vector embeddings are not stored.
  • The first release supports BYOK and local providers. A hosted inference gateway can later fund the project without locking users into the service.

Plan

Proposed repository shape

apps/
  desktop/                 Tauri window, tray, onboarding, settings
crates/
  daytrace-core/           orchestration, policies, domain events
  daytrace-capture/        platform-neutral capture traits
  daytrace-platform-*/     macOS, Windows, and Linux adapters
  daytrace-extract/        accessibility, OCR, VAD, transcription
  daytrace-store/          SQLite migrations, FTS, retention
  daytrace-summary/        segmentation and provider-neutral summaries
  daytrace-sync/           deterministic export and GitHub sync
  daytrace-secrets/        OS credential-store abstraction
extensions/
  browser/                 optional Chromium/Firefox tab metadata bridge
docs/

Target outcome

The v1 release is a signed, auto-updating macOS, Windows, and Linux desktop app that can run for an eight-hour day without retaining raw media, recover cleanly from sleep and device changes, search a local journal, and create an editable end-of-day summary. See the implementation plan for measurable release gates.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

daytrace-0.1.0.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

daytrace-0.1.0-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file daytrace-0.1.0.tar.gz.

File metadata

  • Download URL: daytrace-0.1.0.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for daytrace-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cc810dbe8b92ae947bcb0e3d8d2be11bea310469a8ce7edfeabe2761dea42461
MD5 076ace00b1368e4ee342dd4f42776fc4
BLAKE2b-256 31387f69e554afbf8e3a964f519aef07a3f0fe112c5953ae28076cc61d3bd555

See more details on using hashes here.

File details

Details for the file daytrace-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: daytrace-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for daytrace-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6247b4c0bd3a8bde534412160c2b6d996033f50bc7c769d89a9d42da0f2fba78
MD5 e0ffcd0c06d78edd1d944b14a138d23e
BLAKE2b-256 84a11422e606117b1925e32d41dd565c52cd69338d14f19a55158d025f1a8c7c

See more details on using hashes here.

Release history Release notifications | RSS feed

0.4.0

2 files

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page