AutoKey, a desktop automation utility for Linux and X11. Previously known as "autokey-py3/autokey"
Clone or download
Failed to load latest commit information.
.github Update May 3, 2017
config Removed KXMLGUI config file, because it is not used anymore. Jun 3, 2018
debian Release version 0.95.2, containing the latest fixes. Jul 16, 2018
doc Replaced tuples with NamedTuple in scripting function return values. May 22, 2018
lib/autokey Release version 0.95.2, containing the latest fixes. Jul 16, 2018
test Fixed multiple imports per line in tests. Apr 9, 2018
.gitignore Ignore PyCharm IDE files Apr 9, 2018
ACKNOWLEDGMENTS * Implement configuration conversion to new format Sep 11, 2011
CHANGELOG.rst Release version 0.95.2, containing the latest fixes. Jul 16, 2018
INSTALL Update install instructions Apr 21, 2012
LICENSE Create LICENSE Jan 13, 2017 * Use json for persistence instead of pickle Apr 9, 2010
PKG-INFO Update version and changelog May 15, 2012
README.rst Update README.rst Jun 25, 2018
TODO Don't display the Interface tab in the preferences dialog if there is… Dec 1, 2011
autokey-run Ported autokey-run from the legacy optparse module to the new Python … Nov 5, 2017
autokey-shell Fix imports in autokey-shell, which were broken. Jul 16, 2018
autokey.spec Removed mentions of PyKDE and removed files from various places. Jun 3, 2018 Fix API generation script and update API source file for KDE version Mar 1, 2012
new_features.rst AutoKey has become the official AutoKey Dec 30, 2017 Updated dependencies and README for PyQt5. Jun 4, 2018



Join the chat at Ask and answer questions on StackOverflow


AutoKey, a desktop automation utility for Linux and X11, formerly hosted at OldAutoKey. Updated to run on Python 3.

Important: This is an X11 application, and as such will not function 100% on distributions that default to using Wayland instead of Xorg.


Please remove previous installations of both AutoKey and AutoKey fully before installing!


Python: 3.5

Python modules (common):

  • dbus-python
  • pyinotify
  • python-xlib

GTK frontend only:

  • GObject Introspection
  • PyGTK
  • GtkSourceView
  • libappindicator

QT frontend only:

  • PyQt5
    • SVG module, if not already bundled
    • QScintilla2 module, if not already bundled
  • pyrcc5 command line tool (Optional installation time dependency, only used when installing or updating from the git source tree using If not present, a fallback that causes a slightly slower application start will be used.)

Install via pip

pip will automatically resolve and install dependencies, but dbus-python requires the dbus headers be present on your system. These are usually installed through your package manager, and usually are named dbus-devel or libdbus-dev or similar.

pip3 install autokey
# or, if you want the latest from this repository,
pip3 install --user git+

The "--user" option for pip may be added to install for the current user only.


There is a repository available for Ubuntu 18.04 LTS (and compatible derivatives, such as Kubuntu):

sudo add-apt-repository ppa:sporkwitch/autokey
sudo apt update
sudo apt install autokey-gtk
# Or alternatively, to install the Qt5 based GUI:
sudo apt install autokey-qt

Distro package not provided? Create your own package for Debian-based distros using files under debian/ . Check out the Packaging wiki page for details.

Arch Linux

Available in the AUR. Unfortunately, Arch has removed the kdebindings-python package, so only the GTK frontend is usable for now.


Available via layman.

layman -a y2kbadbug
emerge --sync
emerge -av autokey


Avaiable from Fedora 27 onwards.

sudo dnf install autokey-gtk
# or for kde
sudo dnf install autokey-kde


Documentation for new features. For older features, please refer to the original AutoKey's scripting API, wiki, and Stack Overflow.

Examples of AutoKey scripts can be found by searching GitHub and reading AutoKey's wiki.


Please do not request support on the issue tracker. Instead, head over to the autokey-users Google Groups forum, StackOverflow, on IRC (#autokey on Freenode), or Gitter web-based chat.

We'd appreciate it if you take a look at Problem reporting guide before posting. By providing as much information as you can, you'll have a much better chance of getting a good answer in less time.

Bug reports and Pull Requests

Bug reports and PRs are welcome. Please use the GitHub Issue Tracker for bug reports. When reporting a suspected bug, please test against latest git HEAD and make sure to include as much information as possible to expedite troubleshooting and resolution. For example,

  • required: How to reproduce the issue you are experiencing
  • Python tracebacks, if any
  • Verbose logging information obtained by starting the frontend (autokey-gtk or autokey-qt) from terminal with the --verbose option.