Skip to main content

Devtrackr

Automatic work activity tracker for macOS — tracks your IDEs, meetings, and browser usage all day, then drops a polished Excel report on your desk at 6 PM with an AI-written summary of your day.

PyPI version Python License: GPL v3 Buy Me a Coffee


What it does

  • Tracks time in VS Code, Rider, IntelliJ, Visual Studio, Jupyter, Xcode and more
  • Detects meetings in Teams, Zoom, Webex, Skype, Google Meet, Slack huddles
  • Knows which project you're in by reading the IDE window title
  • Skips idle time — if you step away, it stops counting
  • Reads your git commits and links them to the project you worked on
  • Generates a daily Excel report at a time you choose (default 6 PM, Mon–Fri)
  • AI narrative summary via a local Ollama model — 100% private, no cloud

Requirements

  • macOS (uses AppleScript and launchd)
  • Python 3.9+
  • Ollama installed locally (optional, for AI summary)

Install

pip install devtrackr

Quick start

devtrackr init

That's it. The wizard asks five questions, then installs and starts the tracker automatically.

──────────────────────────────────────────────────
  Welcome to Devtrackr!
──────────────────────────────────────────────────

[1/5] Where are your git repos? (comma-separated paths)
      > ~/repos, ~/work/client-projects

[2/5] Where should daily reports be saved?
      > ~/Documents/WorkReports

[3/5] What time to generate the daily report? (24h)
      > 18

[4/5] Do you want an AI summary in your daily report?
      (requires Ollama installed) [Y/n]: Y

[5/5] Which Ollama model should generate the summary? [llama3.2:3b]:
        1. llama3.2:3b

✅ Config saved → ~/.devtrackr/config.toml
✅ Background tracker started
✅ Daily reports scheduled at 18:00 Mon–Fri
✅ Reports will be saved to: ~/Documents/WorkReports

Commands

Command Description
devtrackr init First-time setup wizard
devtrackr status Show running status and last recorded activity
devtrackr report Generate today's report right now
devtrackr report --date 2026-05-15 Generate report for a specific date
devtrackr start Start the background tracker
devtrackr stop Stop the background tracker
devtrackr config show View current configuration
devtrackr config add-repo ~/path Add a git repo folder to scan
devtrackr config set-report-time 17 Change report time
devtrackr config set-model mistral:7b Change AI model

Excel report

Each daily report contains four sheets:

Sheet Contents
Summary Total hours, meeting hours, coding hours; per-app/project breakdown
By Project Hours per project sorted by time spent
Git Activity Commits you made today, per repo
AI Summary A 3–5 sentence narrative of your day written by Ollama

Configuration

Config lives at ~/.devtrackr/config.toml. Edit it any time, or use the devtrackr config commands:

[paths]
repos_dirs  = ["~/repos", "~/work"]   # scan multiple repo roots
reports_dir = "~/Documents/WorkReports"
db_path     = "~/.devtrackr/logs.db"

[tracker]
poll_interval  = 10    # seconds between samples
idle_threshold = 300   # seconds idle before pausing
report_hour    = 18    # 24h — report fires Mon–Fri at this hour

[ai]
ollama_enabled = true
ollama_model   = "llama3.2:3b"
ollama_url     = "http://localhost:11434"

After editing, restart the tracker:

devtrackr stop && devtrackr start

Apps tracked

IDEs — VS Code, Visual Studio, Rider, IntelliJ IDEA, PyCharm, WebStorm, GoLand, Xcode, Jupyter (in browser)

Meetings — Microsoft Teams, Zoom, Webex, Skype, Google Meet, Slack (huddles), Discord (voice channels)

Browsers — Chrome, Firefox, Safari, Edge, Arc, Brave, Opera, Vivaldi

Terminal — Terminal, iTerm2, Warp, Hyper, Kitty, Ghostty


Privacy

Everything stays on your Mac:

  • Activity data → ~/.devtrackr/logs.db (SQLite, only you can read it)
  • Reports → your chosen folder
  • AI summary → processed by Ollama running locally, nothing sent to the cloud

Contributing

Pull requests are welcome! Please open an issue first to discuss what you'd like to change.

git clone https://github.com/adeleye-art/devtrackr
cd devtrackr
pip install -e .
devtrackr init

❤️ Support this project

Devtrackr is free and open source. If it saves you time, consider buying me a coffee — it helps me keep working on it!

Buy Me A Coffee GitHub Sponsors


License

GNU GPL v3 © 2026 Adeleye Alarape

Metadata

Release files for devtrackr 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for devtrackr 0.1.3
File Size Uploaded
devtrackr-0.1.3.tar.gz 15.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for devtrackr 0.1.3
File Interpreter ABI Platform
devtrackr-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 31.7 kB

Release files / devtrackr-0.1.3.tar.gz

Download URL devtrackr-0.1.3.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
63f65b3a1ac4f1f7baab52143e7beee3a75964468ac95873b6142a1b478d4e2d
BLAKE2b-256 checksum
How to use checksums
ad1b5e6d891f87f16dd66cdd4897dd383e69548931ad6886e6cce30bdca6ec29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 16, 2026.

Transparency log

Release files / devtrackr-0.1.3-py3-none-any.whl

Download URL devtrackr-0.1.3-py3-none-any.whl
Size 15.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4384385c7391283bd5a7cd482c776735fb64b82a66a3121e768efd59be6ff212
BLAKE2b-256 checksum
How to use checksums
1c3d295b1a3ac9a2167cddbdead5f50a6557d6b128344b5251a135cdcaf85867
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release 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