<- back to Projects
Image of Nedko's face

Key Counter

A simple keylogger with a keyboard heatmap visualization

Repository: https://github.com/NedkoChulev/key-counter

Project lifespan: 2025-04-28 - 2025-04-28

Python HTML JS CSS GitHub Actions

Key Contributions

  • Built a custom Python keylogger

  • Output stored as JSON

  • Visualized via an SVG-based heatmap

  • Automated builds using GitHub Actions

Case study

As part of my preparation for building a custom hand-wired keyboard, I wanted to analyze my typing patterns to better inform the layout and design. Most existing keyloggers were either overkill or posed privacy concerns - so I created my own.

The result is a minimal key counter written in Python, which tracks each key press and writes the data to a JSON file. It also serves a local HTML-based visualization, where a custom SVG layout (built in Inkscape) is color-coded based on usage frequency. The colors are dynamically applied using CSS derived from each key’s count.

I used GitHub Actions to automate the creation of a standalone Windows executable, making the tool portable and easy to use.


This project helped me surface otherwise invisible keyboard usage patterns, which directly informed how I plan to design my future custom layout.