From 486a5c99902a4e097d937a6c594b1298a56dbebd Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 29 Sep 2026 16:03:52 +0000 Subject: [PATCH 1/7] posts: ActivityWatch Research Edition for other researchers --- ...26-09-30-activitywatch-research-edition.md | 50 +++++++++++++++++++ img/research-edition-data-flow.svg | 35 +++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 _posts/2026-09-30-activitywatch-research-edition.md create mode 100644 img/research-edition-data-flow.svg diff --git a/_posts/2026-09-30-activitywatch-research-edition.md b/_posts/2026-09-30-activitywatch-research-edition.md new file mode 100644 index 000000000..2454d629d --- /dev/null +++ b/_posts/2026-09-30-activitywatch-research-edition.md @@ -0,0 +1,50 @@ +--- +layout: post +title: "ActivityWatch Research Edition: a variant for your study" +date: 2026-09-30 12:00 +0200 +author: "Bob" +author_twitter: "TimeToBuildBob" +--- + +If you run a study that needs to know how participants spend their time on a computer, but should not be handed their window titles and URLs, there is now an ActivityWatch build for that: the **Research Edition**. Making a variant for your study is mostly a matter of supplying a category map, so if you are a researcher, [get in touch](#get-in-touch) and we can work out what fits. + +## Where it came from + +Researchers want *categorized* time, not raw activity: "this much on communication, news and work tools", without the research team ever seeing which page or document that was. The Research Edition grew out of academic studies that wanted exactly this, the current one at Lund University, and it follows an approach an earlier academic team had tried in a public fork of ActivityWatch. + +## What it does + +The Research Edition is a separate build of ActivityWatch with a privacy filter switched on. As of the latest build, [v0.14.0b5-research](https://github.com/ActivityWatch/activitywatch/releases/tag/v0.14.0b5-research) (a prerelease, for Windows, macOS and Linux): + +- The window watcher classifies each browser window into a **study category**, using the URL where available and the window title otherwise, then **discards the title and URL** before anything is written to disk. Anything the map does not match becomes `excluded`. +- Non-browser windows lose their titles too. +- Time away from the computer is recorded, like in regular ActivityWatch. +- Data stays on the participant's computer. At the end of the study they export one JSON file from the dashboard and upload it to the study team. The export also strips the computer's name. There is no live telemetry and no study server to run. + +
+ Diagram: the window watcher sees app name, title and URL; the research filter maps them to a study category and discards titles and URLs; the local database keeps category, app name, time and duration; the participant exports a JSON file with the computer name removed and uploads it to the study team. +

What the Research Edition keeps, and where the filtering happens.

+
+ +Two honest caveats. In the current build, **app names are still recorded** (Microsoft Excel stays "Microsoft Excel"); it is the titles, URLs and document names that go. The filter can also replace app names with categories through a config option, so a variant that needs that is a configuration choice, not new code. And the filter is only as good as the category map, which is why the map belongs to the study. + +It also keeps participants' own data separate from the study's. The Research Edition has its own app identity, its own data folder and its own port (5667 instead of 5600), so a participant who already uses ActivityWatch can run both side by side without mixing the two. That lets an ethics approval say "study data is kept apart from the participant's own", and it can be checked, not just promised. + +## Making a variant for your study + +The design is meant to be picked up by the next researcher without starting from scratch. A variant is mostly: + +1. **Your category map**: which sites and apps map to which of your categories, and everything else excluded. This is the part only you can define. +2. **A build**: the release pipeline already produces Research Edition installers, so a study build is a tagged release with a stable download link you can cite in a methods section. +3. **A participant guide and export step** to match your protocol. We have a working one to start from. + +New studies tend to want what the previous one wanted: categorized time, no raw titles or URLs, an easy export, and eventually mobile. The design is aimed at passing ethics review, but your committee decides that for your study, so bring its requirements and we can adjust the build. + +## Mobile + +- **Android**: the Android app has a `research` build flavor with its own app id and port, so it can be installed next to the regular app without touching its data. This covers the separation only. The category filter you get on desktop is not on Android yet, so an Android Research Edition is in progress, not shipped. +- **iPhone and iPad**: there is no iOS app. Instead, [aw-import-screentime](https://github.com/ActivityWatch/aw-import-screentime) imports Apple's Screen Time data into ActivityWatch. It works for any participant who also uses a Mac, with "Share Across Devices" turned on for both devices under the same Apple account, because Screen Time syncs between them. It needs Full Disk Access on the Mac. It is a standalone tool today, and the study filter does not apply to that data path yet. + +## Get in touch + +If you are planning a study and want to talk through what a variant would look like, contact Erik Bjäreholt, the ActivityWatch maintainer, at [erik@bjareho.lt](mailto:erik@bjareho.lt) (also on his [GitHub profile](https://github.com/ErikBjare)). Tell us which categories you need, which platforms your participants use, and what your ethics process requires. diff --git a/img/research-edition-data-flow.svg b/img/research-edition-data-flow.svg new file mode 100644 index 000000000..74f106192 --- /dev/null +++ b/img/research-edition-data-flow.svg @@ -0,0 +1,35 @@ + + How the ActivityWatch Research Edition handles data + On the participant's computer, the window watcher sees app names, window titles and URLs. A research filter classifies them into study categories and discards titles and URLs before anything is stored. The local database keeps app name, category, time and duration. The participant exports it as JSON with the computer name removed and uploads it to the study team. + + + Participant's computer (nothing leaves it until export) + + Window watcher + sees app name, + window title, URL + + Research filter + study-defined category + map picks a category; + titles and URLs + are discarded + + Local database + category, app name, + start time, duration, + away-from-computer + (port 5667, own folder) + + + + export + + Study team + JSON file uploaded + by the participant, + computer name + removed + No live telemetry and no study server: the participant decides when to export and upload. + The category map is the study's; a new study swaps in its own. + From 97a57688fa60803be38dbcc3391ec6c11da6a12e Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 29 Sep 2026 16:21:03 +0000 Subject: [PATCH 2/7] posts: link Research Edition docs from the post --- _posts/2026-09-30-activitywatch-research-edition.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/_posts/2026-09-30-activitywatch-research-edition.md b/_posts/2026-09-30-activitywatch-research-edition.md index 2454d629d..daf57422e 100644 --- a/_posts/2026-09-30-activitywatch-research-edition.md +++ b/_posts/2026-09-30-activitywatch-research-edition.md @@ -6,7 +6,7 @@ author: "Bob" author_twitter: "TimeToBuildBob" --- -If you run a study that needs to know how participants spend their time on a computer, but should not be handed their window titles and URLs, there is now an ActivityWatch build for that: the **Research Edition**. Making a variant for your study is mostly a matter of supplying a category map, so if you are a researcher, [get in touch](#get-in-touch) and we can work out what fits. +If you run a study that needs to know how participants spend their time on a computer, but should not be handed their window titles and URLs, there is now an ActivityWatch build for that: the **Research Edition**. Making a variant for your study is mostly a matter of supplying a category map, so if you are a researcher, [get in touch](#get-in-touch) and we can work out what fits. **[Read the docs](https://docs.activitywatch.net/en/latest/research/research-edition.html)** for the full details. ## Where it came from @@ -26,6 +26,8 @@ The Research Edition is a separate build of ActivityWatch with a privacy filter

What the Research Edition keeps, and where the filtering happens.

+The [Research Edition docs page](https://docs.activitywatch.net/en/latest/research/research-edition.html) has the complete list of what is and is not stored. + Two honest caveats. In the current build, **app names are still recorded** (Microsoft Excel stays "Microsoft Excel"); it is the titles, URLs and document names that go. The filter can also replace app names with categories through a config option, so a variant that needs that is a configuration choice, not new code. And the filter is only as good as the category map, which is why the map belongs to the study. It also keeps participants' own data separate from the study's. The Research Edition has its own app identity, its own data folder and its own port (5667 instead of 5600), so a participant who already uses ActivityWatch can run both side by side without mixing the two. That lets an ethics approval say "study data is kept apart from the participant's own", and it can be checked, not just promised. @@ -36,7 +38,7 @@ The design is meant to be picked up by the next researcher without starting from 1. **Your category map**: which sites and apps map to which of your categories, and everything else excluded. This is the part only you can define. 2. **A build**: the release pipeline already produces Research Edition installers, so a study build is a tagged release with a stable download link you can cite in a methods section. -3. **A participant guide and export step** to match your protocol. We have a working one to start from. +3. **A participant guide and export step** to match your protocol. The docs have [participant instructions](https://docs.activitywatch.net/en/latest/research/participant-instructions.html) (and an [Android version](https://docs.activitywatch.net/en/latest/research/participant-instructions-android.html)) you can link to or adapt. New studies tend to want what the previous one wanted: categorized time, no raw titles or URLs, an easy export, and eventually mobile. The design is aimed at passing ethics review, but your committee decides that for your study, so bring its requirements and we can adjust the build. @@ -47,4 +49,4 @@ New studies tend to want what the previous one wanted: categorized time, no raw ## Get in touch -If you are planning a study and want to talk through what a variant would look like, contact Erik Bjäreholt, the ActivityWatch maintainer, at [erik@bjareho.lt](mailto:erik@bjareho.lt) (also on his [GitHub profile](https://github.com/ErikBjare)). Tell us which categories you need, which platforms your participants use, and what your ethics process requires. +If you are planning a study and want to talk through what a variant would look like, contact Erik Bjäreholt, the ActivityWatch maintainer, at [erik@bjareho.lt](mailto:erik@bjareho.lt) (also on his [GitHub profile](https://github.com/ErikBjare)). The [Research Edition docs](https://docs.activitywatch.net/en/latest/research/research-edition.html) describe what a variant consists of. Tell us which categories you need, which platforms your participants use, and what your ethics process requires. From 0580fd724e5d82f18175882087601376dea006b0 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 29 Sep 2026 16:22:54 +0000 Subject: [PATCH 3/7] posts: date Research Edition before the 00:30 UTC scheduled build 12:00 +0200 is 10:00 UTC, after the daily cron, so a merge before that timestamp would stay unpublished until the October 1 build. Midnight CEST (00:00 +0200 = 22:00 UTC Sep 29) keeps the calendar date and is included in the Sep 30 00:30 UTC job. Git-Session-Id: a7ca1e74-811c-5f2b-b6b5-9a510395e907 --- _posts/2026-09-30-activitywatch-research-edition.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2026-09-30-activitywatch-research-edition.md b/_posts/2026-09-30-activitywatch-research-edition.md index daf57422e..f1bbef97a 100644 --- a/_posts/2026-09-30-activitywatch-research-edition.md +++ b/_posts/2026-09-30-activitywatch-research-edition.md @@ -1,7 +1,7 @@ --- layout: post title: "ActivityWatch Research Edition: a variant for your study" -date: 2026-09-30 12:00 +0200 +date: 2026-09-30 00:00 +0200 author: "Bob" author_twitter: "TimeToBuildBob" --- From 3ffd4b9796c25936674cf4ae59746bf5e79b0e3a Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 29 Sep 2026 16:24:07 +0000 Subject: [PATCH 4/7] posts: research edition: data size, clarify Android build is unreleased --- _posts/2026-09-30-activitywatch-research-edition.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/_posts/2026-09-30-activitywatch-research-edition.md b/_posts/2026-09-30-activitywatch-research-edition.md index f1bbef97a..28b88d972 100644 --- a/_posts/2026-09-30-activitywatch-research-edition.md +++ b/_posts/2026-09-30-activitywatch-research-edition.md @@ -32,13 +32,17 @@ Two honest caveats. In the current build, **app names are still recorded** (Micr It also keeps participants' own data separate from the study's. The Research Edition has its own app identity, its own data folder and its own port (5667 instead of 5600), so a participant who already uses ActivityWatch can run both side by side without mixing the two. That lets an ethics approval say "study data is kept apart from the participant's own", and it can be checked, not just promised. +## How much data + +Small: roughly 1-5 MB per participant per week of collection, as an estimate. It is one JSON file, exported by the participant. + ## Making a variant for your study The design is meant to be picked up by the next researcher without starting from scratch. A variant is mostly: 1. **Your category map**: which sites and apps map to which of your categories, and everything else excluded. This is the part only you can define. 2. **A build**: the release pipeline already produces Research Edition installers, so a study build is a tagged release with a stable download link you can cite in a methods section. -3. **A participant guide and export step** to match your protocol. The docs have [participant instructions](https://docs.activitywatch.net/en/latest/research/participant-instructions.html) (and an [Android version](https://docs.activitywatch.net/en/latest/research/participant-instructions-android.html)) you can link to or adapt. +3. **A participant guide and export step** to match your protocol. The docs have [participant instructions](https://docs.activitywatch.net/en/latest/research/participant-instructions.html) you can link to or adapt. An Android version exists for the Android build, which is not released yet. New studies tend to want what the previous one wanted: categorized time, no raw titles or URLs, an easy export, and eventually mobile. The design is aimed at passing ethics review, but your committee decides that for your study, so bring its requirements and we can adjust the build. From 7a107d64d3162dc832fcd639778ff0f75342afc3 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 29 Sep 2026 19:03:21 +0000 Subject: [PATCH 5/7] posts: research edition: reword ethics sentence, scope guarantee to window watcher, qualify size estimate --- _posts/2026-09-30-activitywatch-research-edition.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2026-09-30-activitywatch-research-edition.md b/_posts/2026-09-30-activitywatch-research-edition.md index 28b88d972..3ffe1f462 100644 --- a/_posts/2026-09-30-activitywatch-research-edition.md +++ b/_posts/2026-09-30-activitywatch-research-edition.md @@ -28,13 +28,13 @@ The Research Edition is a separate build of ActivityWatch with a privacy filter The [Research Edition docs page](https://docs.activitywatch.net/en/latest/research/research-edition.html) has the complete list of what is and is not stored. -Two honest caveats. In the current build, **app names are still recorded** (Microsoft Excel stays "Microsoft Excel"); it is the titles, URLs and document names that go. The filter can also replace app names with categories through a config option, so a variant that needs that is a configuration choice, not new code. And the filter is only as good as the category map, which is why the map belongs to the study. +Two honest caveats. In the current build, **app names are still recorded** (Microsoft Excel stays "Microsoft Excel"); it is the titles, URLs and document names that go. The filter can also replace app names with categories through a config option, so a variant that needs that is a configuration choice, not new code. The filter is only as good as the category map, which is why the map belongs to the study. And it covers the bundled window watcher: if a participant connects other watchers to the Research Edition, their data ends up in the same export, so studies should tell participants not to. It also keeps participants' own data separate from the study's. The Research Edition has its own app identity, its own data folder and its own port (5667 instead of 5600), so a participant who already uses ActivityWatch can run both side by side without mixing the two. That lets an ethics approval say "study data is kept apart from the participant's own", and it can be checked, not just promised. ## How much data -Small: roughly 1-5 MB per participant per week of collection, as an estimate. It is one JSON file, exported by the participant. +Small: for a default install, roughly 1-5 MB per participant per week of collection, as an estimate. It is one JSON file, exported by the participant. Extra watchers add more, so if you need a firm number for a data-protection review, measure a pilot week. ## Making a variant for your study @@ -44,7 +44,7 @@ The design is meant to be picked up by the next researcher without starting from 2. **A build**: the release pipeline already produces Research Edition installers, so a study build is a tagged release with a stable download link you can cite in a methods section. 3. **A participant guide and export step** to match your protocol. The docs have [participant instructions](https://docs.activitywatch.net/en/latest/research/participant-instructions.html) you can link to or adapt. An Android version exists for the Android build, which is not released yet. -New studies tend to want what the previous one wanted: categorized time, no raw titles or URLs, an easy export, and eventually mobile. The design is aimed at passing ethics review, but your committee decides that for your study, so bring its requirements and we can adjust the build. +New studies tend to want what the previous one wanted: categorized time, no raw titles or URLs, an easy export, and eventually mobile. Ethics committees decide for themselves, but the design is built around data minimisation: titles and URLs never reach storage, nothing is sent live, and the participant exports a single file they can inspect. Bring your committee's requirements and we can adjust the build to them. ## Mobile From 9ceaefe7cde0603a09da7ec225c28c38c93e85d8 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 29 Sep 2026 19:05:58 +0000 Subject: [PATCH 6/7] posts: research edition: note guide covers Windows and macOS --- _posts/2026-09-30-activitywatch-research-edition.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2026-09-30-activitywatch-research-edition.md b/_posts/2026-09-30-activitywatch-research-edition.md index 3ffe1f462..c7075f1d2 100644 --- a/_posts/2026-09-30-activitywatch-research-edition.md +++ b/_posts/2026-09-30-activitywatch-research-edition.md @@ -42,7 +42,7 @@ The design is meant to be picked up by the next researcher without starting from 1. **Your category map**: which sites and apps map to which of your categories, and everything else excluded. This is the part only you can define. 2. **A build**: the release pipeline already produces Research Edition installers, so a study build is a tagged release with a stable download link you can cite in a methods section. -3. **A participant guide and export step** to match your protocol. The docs have [participant instructions](https://docs.activitywatch.net/en/latest/research/participant-instructions.html) you can link to or adapt. An Android version exists for the Android build, which is not released yet. +3. **A participant guide and export step** to match your protocol. The docs have [participant instructions](https://docs.activitywatch.net/en/latest/research/participant-instructions.html) you can link to or adapt. They cover Windows and macOS; a Linux version can be written if a study needs one. An Android version exists for the Android build, which is not released yet. New studies tend to want what the previous one wanted: categorized time, no raw titles or URLs, an easy export, and eventually mobile. Ethics committees decide for themselves, but the design is built around data minimisation: titles and URLs never reach storage, nothing is sent live, and the participant exports a single file they can inspect. Bring your committee's requirements and we can adjust the build to them. From 110bba818a62fb0e87255328de526d138f62af01 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 29 Sep 2026 22:44:10 +0000 Subject: [PATCH 7/7] posts: research edition: scope storage claim to bundled window watcher Git-Session-Id: 99a72932-d9a5-57e6-9dc0-2cea4d64bd4c --- _posts/2026-09-30-activitywatch-research-edition.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2026-09-30-activitywatch-research-edition.md b/_posts/2026-09-30-activitywatch-research-edition.md index c7075f1d2..2c9fbe59a 100644 --- a/_posts/2026-09-30-activitywatch-research-edition.md +++ b/_posts/2026-09-30-activitywatch-research-edition.md @@ -44,7 +44,7 @@ The design is meant to be picked up by the next researcher without starting from 2. **A build**: the release pipeline already produces Research Edition installers, so a study build is a tagged release with a stable download link you can cite in a methods section. 3. **A participant guide and export step** to match your protocol. The docs have [participant instructions](https://docs.activitywatch.net/en/latest/research/participant-instructions.html) you can link to or adapt. They cover Windows and macOS; a Linux version can be written if a study needs one. An Android version exists for the Android build, which is not released yet. -New studies tend to want what the previous one wanted: categorized time, no raw titles or URLs, an easy export, and eventually mobile. Ethics committees decide for themselves, but the design is built around data minimisation: titles and URLs never reach storage, nothing is sent live, and the participant exports a single file they can inspect. Bring your committee's requirements and we can adjust the build to them. +New studies tend to want what the previous one wanted: categorized time, no raw titles or URLs, an easy export, and eventually mobile. Ethics committees decide for themselves, but the design is built around data minimisation: the bundled window watcher drops titles and URLs before storage, nothing is sent live, and the participant exports a single file they can inspect. Bring your committee's requirements and we can adjust the build to them. ## Mobile