This is an educational keylogger project originally inspired by Shaun Halverson’s tutorial and expanded to include:
- AES-based encryption using Python’s
cryptographylibrary - A Tkinter-based GUI control panel
- Start/Stop logging controls
- Encrypted log storage
- Log viewer with search, filter, and sorting
- Option to combine typing into readable words/sentences
- Export decrypted logs to text files
⚠️ Disclaimer:
This project is for learning purposes only.
Do not use keyloggers for malicious or unauthorized activities. Always obtain explicit consent before running monitoring software on any system.
- Encrypted Logging – All keystrokes and active window titles are stored in
.encfiles. - GUI Control Panel – Start/stop logging, browse logs, search, filter, and sort results.
- Search & Filter – Quickly find specific entries and filter by event type (
APP,KEY, etc.). - Sorting – Click column headers to sort by time, type, or detail.
- Combine Typing – Group individual keystrokes into complete words/sentences.
- Export Decrypted Logs – Save a decrypted copy of any log file.
keylogger/ ├─ startup.py ├─ modules/ │ ├─ gui_ctk.py │ ├─ keylogger.py │ └─ crypto.py ├─ logs/ ├─ requirements.txt └─ README.md
- Python 3.10+
- Windows/macOS/Linux
- Linux GUI needs Tk runtime: sudo apt-get install -y python3-tk
git clone https://github.com//keylogger.git cd keylogger
python -m venv .venv
source .venv/bin/activate
.venv\Scripts\activate
python -m pip install --upgrade pip pip install -r requirements.txt
sudo apt-get update && sudo apt-get install -y python3-tk
python startup.py
Original tutorial for basic keylogging: 🔗 Shaun Halverson - Create a Keylogger in Python (YouTube)
This project extends that tutorial with encryption, GUI, and enhanced log management.
Parts of the design, feature enhancements, and debugging process were developed with assistance from OpenAI’s ChatGPT. AI was used to:
- Suggest and refine the encryption and decryption flow
- Design the Tkinter GUI and event handling
- Implement search, filter, and sorting features
- Improve code readability and structure