from pynput import keyboard
audrey.feldroy.com
The experimental notebooks of Audrey M. Roy Greenfeld. This website and all its notebooks are open-source at github.com/audreyfeldroy/audrey.feldroy.com
# This Notebook Is Also a Keylogger
by Audrey M. Roy Greenfeld | Sat, Feb 8, 2025
Here I play with using Pynput as a system level keylogger, from within my Jupyter notebook version of this.
Print Key Presses and Releases
def on_press(key): try: print(key.char, end='', flush=True) except AttributeError: print(key, end='', flush=True)
def on_release(key): print(f"↑{key.char if hasattr(key, 'char') else key}", end='', flush=True) if key == keyboard.Key.esc: return False # Stop listener
Yeah, I implemented them differently for variety, since this is all just for fun. The second feels nicer.
Listen (Non-Blocking)
listener = keyboard.Listener(on_press=on_press, on_release=on_release) listener.start()
© 2024-2025 Audrey M. Roy Greenfeld