Getting paid with ActivityWatch

A common use of time trackers like ActivityWatch it to track the time worked and then use that as reports for invoicing/billing/employee monitoring. We’ve previously discussed how this isn’t a target feature for ActivityWatch (), since we want ActivityWatch to be user-first, and not something your employer tells you to use.

However, ActivityWatch now has grant funds to spend (yay!), and personally I have other projects where I’d love to be able to tell people: “If you work on this, I’ll pay you for your time. Just send me the matching ActivityWatch events when you’re done!”

This should be pretty easy to implement, as it’d only require the creation of a category and then an export/report of all events in such a category. (see the related issue on Implementing reporting)

Some issues:

  • Related (but not project-specific) events would not be included.
    • Example: while working on ActivityWatch I had to look up something on StackOverflow, which will match my ‘ActivityWatch’ category.
    • Solution: Small gaps in the data (say <15min) will be counted towards the time. Not perfect, but a decent approximation.
  • How should the exported events look? How can they be read?
    • Maybe just export a CSV, as that is easier to import into a spreadsheet for analysis. This would be useful for other applications as well, and export to CSV has been requested before: Excel export function

The easiest thing would just be to implement this as a script that uses aw-client. Not very user-friendly, but would be good enough as an MVP. (DONE: Getting paid with ActivityWatch)


not to hijack but I think this might be related. A potential avenue for monetization my be federated machine learning, as in training models based on user activity with all training being local and no ability of the upstream application to see or infer user data. users could be paid based off their contribution to the overall model.

a layer for integrating with openmined is a way to achieve this.

I have been kinda using this way for a while.
Added AW plugins on both Jetbrains Rider and VsCode, then filtering by project per month.

Isn’t the best way to do this but works for me.

Having a proper tool to do it would be great.


I made some progress on this today by writing this script:

It basically takes a regex pattern, filters events using them, then floods with a break_time (to ensure short segments of uncategorized time/breaks get included).

It’s not perfect, but it’s a start! (and the results look pretty good)

There’s now a basic section in the about this: master /

If you’ve worked >10h on ActivityWatch, send us the matching events and we’ll get you paid!

1 Like

use ActivityWatch to track your work time on ActivityWatch

pretty meta, love it!

1 Like