SourceForge has been redesigned. Learn more.


Anonymous nanotube

Please support this project.

What users are saying:

  • I had a problem with people using my computer without permission, now I know when, who, and what they were doing.
  • This neat little tool will come in handy to any parent that wants to supervise the children's activity on the computer.


PyKeylogger is a free open source keylogger written in the python programming language, available under the terms of the GNU General Public License. I threw it together one day after not being able to find a simple and trustworthy (as measured by the availability of source code) keylogger for windows, and it sort of snowballed from there. It is currently available for Windows (NT/2000 and up), and Linux (using Xlib, so won't work on the console).

It is primarily designed for personal backup purposes, rather than stealth keylogging. Thus, it does not make explicit attempts to hide its presence from the operating system or the user. That said, the only way it is visible is that the process name shows up in the task list, so it is not immediately apparent that there is a keylogger on the system. However, since it also makes periodic writes to disk, and since it openly hooks well-known windows APIs (SetWindowsHookEx), any keylogger detector worth its salt will be able to sniff it out. (The fact that there are almost no anti-malware detectors worth their salt is a completely separate issue.) So basically, it doesn't exactly advertise itself, but doesn't hide itself either.

The main goal is to create a "universal backup solution" for everything you type. We have all at one time or another accidentally closed that word or notepad file without saving. We have all lost form data on the web after it failed to submit properly. Not even mentioning the ever-present threat of computer crash. PyKeylogger logs everything you type, so you can recover the text of anything you type in any application. Simple and elegant, don't you think? :)

Since PyKeylogger is available as a simple python source file (well, a few simple source files), there are no trust issues with using it - you can just look at the source yourself and make sure that it does exactly what you need it to, and nothing more. (Especially not sending your info to someone else without your knowledge.) If you think you can trust me, and/or if you are not interested in getting all those packages to run the source file (see instructions), there is also a binary distribution available for windows.

If you think that you can contribute to the project in any way, feel free to jump in.

Major Features

  • Log all keystrokes to disk, to a delimited data file
  • Automatically archive logfiles to dated zips
  • Automatic log rotation
  • Automatically send zipped log archives to specified email address[es] (works with any SMTP server, including GMail and Yahoo Mail secure SMTP servers)
  • Automatically upload zipped log archives to a specified FTP server.
  • Takes a partial screenshot, centered at the location of every mouse click.
  • Takes a full screenshot at fixed time intervals, if the computer is not idle.
  • Automatically flush write buffer to disk, to minimize data loss in the event of a crash
  • Very customizable, through configuration with a .ini text file
  • GUI (graphical) control panel for settings and actions (this is now the recommended way to change settings)
  • Password protection of control panel
  • Passwords are obfuscated in the configuration file, to prevent casual snooping
  • Automatically delete log files older than specified age

Planned Features

For a detailed list of planned changes, see the PyKeylogger ToDo List.


A number of libraries are used by PyKeylogger, and their license terms are listed here for your convenience.





Where can I ask more questions?

How can I help out?

Check out our Community Portal for ideas and suggestions on how you can help PyKeylogger.


Wiki: Community_Portal
Wiki: Download_Instructions
Wiki: Frequently_Asked_Questions
Wiki: Installation_Instructions
Wiki: PyKeylogger_Donations
Wiki: PyKeylogger_ToDo_List
Wiki: Usage_Instructions