Skip to main content

Privacy-first keyboard usage heatmap and statistics CLI tool.

Project description

KeyGlow

License: MIT

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

KeyGlow Installation

Run:

keyglow --help

Commands

version

Show KeyGlow version.

keyglow version

privacy

Display KeyGlow privacy model.

keyglow privacy

monitor

Start keyboard monitoring.

keyglow monitor

KeyGlow Installation

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         █

KeyGlow Installation

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

KeyGlow Installation

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.0

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

keyglow-0.1.1.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

keyglow-0.1.1-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file keyglow-0.1.1.tar.gz.

File metadata

  • Download URL: keyglow-0.1.1.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for keyglow-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ab07d1918e5890f5d70387b7fea503abaf39c131a905c385318c21a0f945226f
MD5 73f842b8e23b8d3b1d298a17caa385aa
BLAKE2b-256 d7e718f3b5554279a2c3e404dc209a9c22682bdf34fc881ed0c00090b92f8fa1

See more details on using hashes here.

File details

Details for the file keyglow-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: keyglow-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for keyglow-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 31a6f2ff1be74c56ac69e0d1ef286c839ee0ac3153de2810c29adbe63d7607c2
MD5 fdc052f8fcdf57d561fab61a3982ee16
BLAKE2b-256 57582897705ad46ec1fec5374201b23c52263c7e67970f74ad8f6fc9339cd9b0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page