Helpful Tracking Assistant Using Keyboard Maestro

Hi all,

As a developer, I need to keep track of the time that I spend on various projects for clients.

I have a whole database system already set up to keep track of this. The problem is sometimes I jump around and do various things and then have trouble later trying to remember what time was spent for each particular client.

So I needed away to look at the previous working hours to be able to construct my client Billing.

related apps like this...

But I figured there must be a way to do lots of this right here in KM.

Thanks to everybody's help here at keyboard maestro forum, I have this very simple yet powerful little script that does the trick for me, thanks to you - all in the background.

What it does, is create a log file every (x) minutes for whatever is my current open application and current Application title. So the log file might look something like:


{"date":"06/18/21 12-01-00 PM", "App": "Safari", "Title": "”},
{"date":"06/18/21 12-02-00 PM", "App": "Firefox", "Title": "”},
{"date":"06/18/21 12-03-00 PM", "App": "TextEdit", "Title": "Client Letter.txt”},
{"date":"06/18/21 12-14-00 PM", "App": "System Preferences", "Title": "Accessibility”},
{"date":"06/18/21 12-15-00 PM", "App": "Code", "Title": "index.js — node”},


Notice each json object is followed by a comma - that way you could easily manually wrap many of these the brackets and end up with a large json array like,
{"date":"06/18/21 12-01-00 PM", "App": "Safari", "Title": "”},
{"date":"06/18/21 12-02-00 PM", "App": "Firefox", "Title": "”}

{"date":"%ICUDateTime%MM/dd/yy h-mm-ss a%", "App": "%Application%1%", "Title": "%FrontWindowName%”},


  • separated by the pipe character..

06/18/21 12-01-00 PM|Safari|
06/18/21 12-02-00 PM|TextEdit|Client Letter.txt

%ICUDateTime%MM/dd/yy h-mm-ss a%|%Application%1%|%FrontWindowName%



At this point you could do whatever you would like with this data including updating databases / excel or whatever.

In my case, I simply need this as an occasional reference to fill-in non-documented time slots manually.

So, whenever I forgot to fill-in my client times, I can open this simple text file and have a look at the applications used during those time periods.

This first thread to get this going was here:

Thanks for all the help on this great useful forum!


Sounds like a useful Macro.
Would you like to share it for others to use?

If so, upload to a new topic in the "Macro Library" sub-forum category.

See How to upload your macro. Instructions for uploading to an existing post are just below the main instruction.
You may also find this Macro useful: MACRO: Upload KM Macro to New or Existing Topic @KM [Pub]

Hi JMichaelTX,

Sure I will upload it soon. And Thanks for All the HELP!!!

Hi JMichaelTX,

Sorry for the delay getting this macro posted. I wanted to update it a bit before posting and just got that done.

Thanks for your help getting this all set up. Please let me know if you have any comments on this.