You are browsing as a guest. Sign up (or log in) to start making projects!

KeyGlow CLI Tool

  • 5 Devlogs
  • 11 Total hours

I am building a simple CLI tool called KeyGlow, with a heatmap and counting of keys pressed on your (yes your keyboard if you are interested enough to install it) ʕ•ᴥ•ʔ

Ship #1 Pending review

KeyGlow is finally shipped! (The text there will be the same as the one in latest DevLog)
Hello everyone, I hope you are all doing great!

After a lot of coding, debugging, testing and polishing, KeyGlow is finally ready to be released.

This project started as a simple idea: create a fun keyboard statistics tool that allows people to understand their keyboard usage without becoming a keylogger.

The final development phase ʕ•ᴥ•ʔ
The last stage of development was focused mostly on polishing the project and preparing everything for release.

At this point, instead of adding more features, I decided to focus on reliability and making sure the existing features worked properly.

Some of the final improvements included:

Fixing edge cases
Improving database handling
Adding corrupted JSON detection
Adding invalid database format detection
Adding save error handling
Improving reset behavior
Adding automatic folder creation
Testing installation in clean environments
A big part of software development is not only creating new features, but making sure other people can actually use what you built.

Making KeyGlow feel complete ʕ•ᴥ•ʔ
During the final hours of development, I focused on improving the overall experience.

Some smaller additions made KeyGlow feel much more like a complete application:

ASCII KeyGlow logo
keyglow logo
keyglow info
keyglow joke
Better CLI experience
Improved documentation
Installation demo
Project screenshots
From a local project to a real package ʕ•ᴥ•ʔ
One of the biggest milestones was turning KeyGlow from a project running only on my machine into a real Python package.

The project went from:

“A tool that works only for me”

to:

pip install keyglow
And I am glad I managed to release it, as I have never done such thing before.

AI Usage ʕ•ᴥ•ʔ
I need to admit, that I used AI for this project, however, biggest part of it was done fully by myself.
I used AI to learn about Typer library commands, and tables from Richer library, I also used it a little bit to validate the process of monitoring the keys, all that to ensure the project is indeed safe to deploy.

Final Thoughts ʕ•ᴥ•ʔ
It is a small project built around a simple idea: showing people interesting statistics about something they use every single day - their keyboard.
But building it was a great experience.
The project went through the full process:

Idea
Development
Testing
Documentation
Packaging
Release
That’s quite a long devlog, isn’t it ʕ•ᴥ•ʔ
I really hope you will like it and review it positively 🤍

  • 5 devlogs
  • 11h
Try project → See source code →
Open comments for this post

1h 42m 26s logged

KeyGlow is finally shipping 🤍

Hello everyone, I hope you are all doing great!

After a lot of coding, debugging, testing and polishing, KeyGlow is finally ready to be released.

This project started as a simple idea: create a fun keyboard statistics tool that allows people to understand their keyboard usage without becoming a keylogger.

The final development phase ʕ•ᴥ•ʔ

The last stage of development was focused mostly on polishing the project and preparing everything for release.

At this point, instead of adding more features, I decided to focus on reliability and making sure the existing features worked properly.

Some of the final improvements included:

  • Fixing edge cases
  • Improving database handling
  • Adding corrupted JSON detection
  • Adding invalid database format detection
  • Adding save error handling
  • Improving reset behavior
  • Adding automatic folder creation
  • Testing installation in clean environments

A big part of software development is not only creating new features, but making sure other people can actually use what you built.

Making KeyGlow feel complete ʕ•ᴥ•ʔ

During the final hours of development, I focused on improving the overall experience.

Some smaller additions made KeyGlow feel much more like a complete application:

  • ASCII KeyGlow logo
  • keyglow logo
  • keyglow info
  • keyglow joke
  • Better CLI experience
  • Improved documentation
  • Installation demo
  • Project screenshots

From a local project to a real package ʕ•ᴥ•ʔ

One of the biggest milestones was turning KeyGlow from a project running only on my machine into a real Python package.

The project went from:

“A tool that works only for me”

to:

pip install keyglow

And I am glad I managed to release it, as I have never done such thing before.

AI Usage ʕ•ᴥ•ʔ

I need to admit, that I used AI for this project, however, biggest part of it was done fully by myself.
I used AI to learn about Typer library commands, and tables from Richer library, I also used it a little bit to validate the process of monitoring the keys, all that to ensure the project is indeed safe to deploy.

Final Thoughts ʕ•ᴥ•ʔ

It is a small project built around a simple idea: showing people interesting statistics about something they use every single day - their keyboard.
But building it was a great experience.
The project went through the full process:

  • Idea
  • Development
  • Testing
  • Documentation
  • Packaging
  • Release

That’s quite a long devlog, isn’t it ʕ•ᴥ•ʔ
I really hope you will like it and review it positively 🤍

0
0
12
Open comments for this post

2h 47m 22s logged

Hello everyone 🤍

I hope you’re all doing great!

Just a little development update on KeyGlow.

Over the past few days I’ve been working on polishing the project instead of constantly adding new features. My goal from the very beginning has been to make KeyGlow feel like a real, reliable CLI tool rather than just another weekend prototype.

For anyone who hasn’t seen it before, KeyGlow is a privacy-first keyboard usage analyzer. It generates keyboard usage statistics and a simple heatmap while never storing what you type. No typed text, no passwords, no key sequences - only anonymous key frequency counters stored locally on your own machine.

Since the last update, quite a lot has changed:

• I added real-time keyboard monitoring.
• I implemented automatic saving while monitoring.
• Added keyboard and mouse inactivity detection with configurable timeout.
• Added the ability to disable automatic shutdown when desired.
• Improved local storage by moving everything into a dedicated ~/KeyGlow/ directory.
• Added JSON, CSV and TXT export support.
• Added an information command displaying database size, stored keys, total presses and other useful details.
• Added confirmation before deleting collected data, along with a –force / -f option for power users.
• Improved error handling for corrupted databases and invalid data.
• Added automatic creation of missing storage/export directories.
• Cleaned up dozens of small edge cases and improved the overall stability of the application.
• Wrote a complete README and documentation.
• Added a completely unnecessary but absolutely essential keyglow joke command because every CLI deserves at least a little personality.

At this point, most of my work isn’t about adding new features anymore (though it is tempting not gonna lie)-it’s about making sure the tool behaves correctly in every situation. That means testing fresh installations, handling invalid input gracefully, making the CLI feel polished, and improving the overall user experience.

The project is now very close to its first public release.

Before I publish it, there are only a few things left to finish:

  • Debug a few remaining pieces of code.
  • Update the KeyGlow ASCII logo.
  • Package everything properly.
  • Publish the project on PyPI.

Once that’s done, anyone will be able to install it with a simple:
“pip install keyglow”
I’m genuinely excited to finally share this project. It started as a small idea and slowly grew into something that feels like a proper open-source tool. There’s still plenty of room for future improvements, but I’m really happy with where it is today.

Thank you to everyone following the development so far. I can’t wait to release KeyGlow and hear what people think! 🤍

0
0
55
Open comments for this post

1h 5m 13s logged

Devlog #3
Hello there again, what’s up?

I managed to add KeyGlow inactivity detector 🤍

It basically detects whether you move your mouse or write anything with a keyboard, and if you don’t it disables keys monitoring.
I added custom timeout in minutes.

How cool is that ʕ•ᴥ•ʔ

0
0
3
Open comments for this post

2h 28m 44s logged

Devlog #2
What’s up, I hope you all are doing great 🤍

Still working on my KeyGlow ʕ•ᴥ•ʔ
I want to perfect it as much as I can.
Recently, I added a privacy model, and inactivity detector which I will talk about in the next devlog!

Here are some difficulties that I encountered:

  • Mouse inactivity tracking, that involved checking movement, scroll and clicks.
  • Explaining clearly to everyone what is my “privacy model”

I did those things with ease:

  • Writing new commands overall, I already learned how to do it fast and efficiently.

Stay tuned for more if you like CLI Tools like this one ʕ•ᴥ•ʔ

0
0
8
Open comments for this post

2h 51m 13s logged

Subtle Foreshadowing 👀🤍

I just finished the basics of my CLI Tool.
Proud to say I did it mostly by myself ʕ•ᴥ•ʔ
This will probably be kind of epic after release, though I still need to work a lot.

Things I menaged to do easily:

  • Reading data from file, loading it into a “buffer”
  • Coloring TUI
  • Making tables and ASCII Art (just needed to search for docs)

Things I struggled with so far:

  • The core mechanic such as receiving data from keyboard
  • Converting that data into something easy to work with and making it file-attachable, and also human readable.

We all love CLI, riiiiight?

0
0
15

Followers

Loading…