Privacy-first keyboard usage heatmap and statistics CLI tool.
Project description
KeyGlow
Privacy-first keyboard usage heatmap and statistics CLI tool.
KeyGlow is a lightweight command-line application that tracks keyboard usage statistics, generates keyboard heatmaps, and helps you understand your typing habits.
Unlike keyloggers, KeyGlow does not record what you type (typing sequences)
It only stores anonymous key frequency counters:
{
"A": 245,
"SPACE": 1200,
"ENTER": 83
}
It does not save typed text, passwords, or key sequences. Only keyboard usage statistics.
Features
- Keyboard usage heatmap
- Real-time keyboard monitoring
- Keyboard and mouse inactivity detection
- Keyboard statistics
- Total key press counter
- JSON / CSV / TXT exports
- Local only data storage in ~/KeyGlow/ directory.
- Automated Saving
- Automatic inactivity shutdown after certain time passed in a parameter
Installation
Requirements
- Python 3.10+
- pip
Install keyglow:
pip install keyglow
Run:
keyglow --help
Commands
version
Show KeyGlow version.
keyglow version
privacy
Display KeyGlow privacy model.
keyglow privacy
monitor
Start keyboard monitoring.
keyglow monitor
Keyglow tracks keyboard and mouse inactivity.
Default inactivity timeout:
10 minutes
Change timeout:
keyglow monitor --timeout 30
Disable automatic shutdown:
keyglow monitor --timeout 0
stats
Show keyboard statistics.
keyglow stats
Example:
KeyGlow Keyboard Statistics
Key Presses Usage
SPACE 5420 ██████████
E 3120 ███████
ENTER 430 █
map
Display keyboard primitive heatmap. Displayed keyboard may not recreate your keyboard's alignment the same way, but it does contain most of commonly used keys.
keyglow map
total
Show total recorded key presses.
keyglow total
Example:
KeyGlow Total Key Presses
Total Presses: 125,340
export
Export collected statistics.
JSON:
keyglow export json
CSV:
keyglow export csv
TXT:
keyglow export txt
Exports are stored in:
~/KeyGlow/Exports/
reset
Delete all collected statistics. (It does not delete exported files though)
keyglow reset
KeyGlow asks for confirmation before deleting data.
man
Display the KeyGlow manual.
keyglow man
joke
Display a random (really funny trust me) joke about keyboard.
keyglow joke
info
Show informations about the version, amount of stored keys, total key presses, storage file size and path to export folder.
keyglow info
logo
Show a KeyGlow logo.
keyglow logo
Privacy Model
KeyGlow was designed with privacy as a priority.
Collected
Only anonymous key frequency counters.
Example:
{
"A": 500,
"CTRL": 120,
"SPACE": 900
}
Never Collected
- Typed text sequences
- Passwords
- Sentences
- Data stored in Clipboard
- Websites
- Apps
Data Storage
KeyGlow stores all the data locally.
Main database:
~/KeyGlow/keyglow_data.json
Exports:
~/Keyglow/Exports/
No cloud synchronization, no external servers, no network needed
Supported Keys
Letters
A-Z
Numbers
0-9
Function Keys
F1-F12
Special Keys
- ESC
- TAB
- ENTER
- BACKSPACE
- CAPSLOCK
- SPACE
Modifiers
- SHIFT
- CTRL
- ALT
- SYSTEM
Navigation
- UP
- DOWN
- LEFT
- RIGHT
Technologies
KeyGlow is built with:
- Python
- Typer
- Rich
- Pynput
Files:
keyglow/
- main.py
- monitor.py
- storage.py
- export.py
- map.py
- keyboard.py
- data.py
- joke.py
- logo.py
Development
Clone repo:
git clone https://github.com/aerissdev-dotcom/KeyGlow.git
Install dependencies:
pip install -r requirements.txt
Run:
python main.py --help
License
MIT License
Author
aeriss-dev
GitHub:
https://github.com/aerissdev-dotcom
Version
0.1.2
Testing and developing OS:
KeyGlow was fully tested and developed on macOS. The author does not guarantee this tool will work on other operating systems.
OS Compatibility
macOS
KeyGlow requires Accessibility permission.
System Settings: Privacy & Security -> Accessibility
Add your Terminal application.
Windows
No additional permissions are normally required.
Linux
Works best on X11 sessions. Wayland sessions may require additional configuration due to system restrictions.
Conclusion
It's a free, silly little tool that might brighten someone's day, and for some specific people, give interesting statistics.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file keyglow-0.1.2.tar.gz.
File metadata
- Download URL: keyglow-0.1.2.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59740fca597e3f2fabaf1caac7491e20a6de5774d5783ecb955f7336592f22ff
|
|
| MD5 |
1c5fe4130d9233e47de9b9f6e3e3992c
|
|
| BLAKE2b-256 |
0543f50c4ef15c9a675c52a0709ea69434f25b823c06908e5db6aa9cfa68d492
|
File details
Details for the file keyglow-0.1.2-py3-none-any.whl.
File metadata
- Download URL: keyglow-0.1.2-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86cb7e9f820c590348ed050bf455888af022b3f66a6d82648248aec29979b2dd
|
|
| MD5 |
72354a701380d3d3c4283832c8209474
|
|
| BLAKE2b-256 |
a8f2ff05e6613a4bcfeba218a1952ee74c11e63921f749a5e2eccbd94f5eb283
|