Hi All.
I am sure others are doing this, but just thought I would offer a smart clipboard history logger using KM.
It will basically act when the clipboard changes, save the clipboard contents to a text file. Each time it will check the current date matches a known date in a text file (I know this could be better using a variable but it works!). If the date is not the same, it will save the current log with todays day, and start a new text file for the clipboard contents.
Again, I am fairly new to KM, so I know there wil be more elegant solutions, but this may help someone!
RM - Save daily clipboard contents to a file.kmmacros (5.1 KB)
Have you tried Keyboard Maestro Native Clipboard History Switcher?
Anyway, if you really want to keep a log of your clipboard, a good idea is to throw in some kind of divider, like a specific character or a short string (like ~~~ ), so you can easily see where one copied item ends and the next one starts. Also, I'd add a condition so that it will not log if certain apps/windows/URLs are in front (like your password manager).
Hi @JuanWayri
I need to read up on the Clipboard History Switcher you speak of! I dont understand the use case for a switcher for this, so I know I need to study some more.
Regarding the excluded apps, yes, I actually did that too, and I was inserting ***** instead of the text, but i was getting mutliple entries into the history file when i copied from 1Password, or Passwords.
Adding dividers is a good idea! I will certainly do that ![]()
Thanks again
Oh, I see what you mean, the basic Clipboard history. The word Switcher made me overthink what this is.
Yes, I do use that all the time, I just want a record of my daily use of the clipboard for future needs and requirements!
A few suggestions:
Date format
The %LongDate% format is human-readable but can be problematic for file sorting and scripting, so I prefer something like:
%ICUDateTime%yyyy-MM-dd - EEEE%
↓
2025-08-31 - Sunday
Check if Clipboard has text
I'd add a condition to check if the clipboard is not empty before writing or appending to the file. This helps prevent many blank lines in your log file.

great ideas! Thanks @JuanWayri ![]()