Show QS: Cactus - Randomly Sample Yourself

Tags: #<Tag:0x00007f71cf165038> #<Tag:0x00007f71cf164f70>

Hello QS!

I’ve been hacking on Cactus for a while now and I think it’s finally gotten to a good state that I’m very happy to share with you all!

The idea is simple: Sample ourselves randomly throughout the day, then we aggregate these samples to understand how our time was spent.

Random sampling is used to remove any bias and to increase the odds of catching you in activities that you would not think to log normally, say tabbing over to twitter for a minute.

Random sampling can give you a much more accurate view of how time was spent as it does a much better job of capturing intent then some of the alternative methods such as passive process monitoring.

This is what a sample might looks like:

These samples would be aggregated into views for you as in the gif above.

There’s a few views in place right now:

  1. A Week View
  2. A Day View - for editing samples and seeing what you did that day.
  3. A 365 Year View - which stacks each day in the past year to give you a birds eye look at trends in your behavior

I’ve found it very useful personally, and figured it’s time to share it with you people. (If you’re concerned about data ownership and privacy, Cactus keeps all the data you collect on your machine)


Any thoughts or feedback you might have while using the app is very welcome, either directly in thread, DM or email me at .


Enjoy :slight_smile:


P.S. If this concept sounds familiar, you might be thinking of tagtime, Cactus actually was inspired from using tagtime for a few months, the lack of automated data analysis was what I wanted to fix with Cactus.


I do not completely understand. Please give an example.

Sure, once Cactus is installed, it’ll sample you randomly as you go about your work on your computer (a window will pop up asking you what your doing). Each sample allows you to enter a few tags that capture what your doing, i.e. commenting, quantified self could be two tags.

Cactus will aggregates these samples and gives you a breakdown of how you spent your day/week/year etc. Helps you spot trends in your behavior and get a better understanding of where the time goes.

1 Like

How is this better than a window tracker like ActivityWatch? does it also do that and then guess what each window does? EDIT based on sampling user

Cactus doesn’t do passive process / window monitoring. It’s just focused on random sampling. It’s closer in spirit to Experiential Sampling as used by psychiatrists. Patients were instructed to fill out a self-report form upon receiving a page / notification. In-the-moment samples are much more likely to capture the experience then after-the-fact analysis.

Passive process/window monitoring has a difficult time with capturing intent with the usual high-level categories based on site/program/window title.

For example, I’ve been doing a lot of Clarinet practice with Youtube videos lately, but that would likely been categorized under ‘entertainment’ or something in that vein, whereas I’d simply tag it as clarinet.

ActivityWatch includes the title of each window. It is possible to search for “clarinet” within them.

Have you seen mySymptom’s symptoms?

@davidrusu congratulations on offering both Windows and Mac versions of your program!

From what I can tell, experiencial sampling is hard. Especially if it’s tied to being in front of a computer. For example, I earn my living by sitting in front of a computer but there are many important parts of my life that happen away from my desk that wouldn’t be captured with your solution.

I’ve been trying PAX (it’s focused on mood improvement) which was mentioned recently elsewhere on this forum - it is in the form of a mobile app which means the notifications are able to randomly sample a wider variety of my day but it still falls short on so many levels.

I think this is a hard nut to crack and I wish you luck with it. Please keep us updated!


Let me try another example, perhaps it’s more compelling.

I actually started Cactus to track my hours for consulting, I wanted a time tracker that I didn’t need to toggle in and out of and I needed to track which tasks I was working on since the client at the time wanted more detailed timesheet to understand how much time was spent on each task.

So for that use case, I was tagging my time by the project + task I was working on. The task spans across multiple programs and windows so It is difficult to extract that information after the fact from window titles and sites I visited.

With Cactus it, the data is at the right level of abstraction by default since you choose the tags that represent what you’re working on right now.

Are you referring to ? No I haven’t heard of it. Does it do random sampling as well?

Thanks! Initially it was just Mac but I was getting requests for a windows build almost immediately when I first showed it around. I’m glad I put the time in to get that sorted out as there are a very large number of Windows users.

Yes this is a good point, mobile app is a more natural fit for this tool, but then again mobile app dev is substantially slower, and iteration speed is crippling. I went with a desktop tool as a first release just to prove out the idea for myself before investing too much time into it. A companion app would certainly be a welcome addition.

Yep mood tracking is a common use-case of experiential sampling, that one would almost definitely need an app to be of any use. Perhaps once Cactus is on mobile, it could naturally expand to mood tracking.

Thanks! and will do.

what about imputing more detailed task length from tags and titles

mysymptoms on the ggl store.

Cactus will derive the time you spent on a task from the samples it takes.

For example you can see the aggregate time I spent on my computer on Saturday: The samples with common tags are aggregated together to give you a quick view of how your time was spent.

I’m sorry, I can’t seem to find it, could you share a link?