Keyboard and GUI automation on Linux (X11)

automation, hotkey, expansion, expander, phrase, desktop-application, desktop-automation, gtk3, help-wanted, pyqt5, pyqt5-desktop-application, python, python3
pip install autokey==0.96.0



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-py3 fully before installing!

For detailed installation instructions, please visit the Installation page. in our wiki.

Zero-installation Method

AutoKey can also be used directly from the cloned repository. This is useful, e.g., for trying out a new version without removing a current installation.

  1. Start the Autokey daemon
cd lib
python3 -m autokey.gtkui
# or for KDE
python3 -m autokey.qtui
  1. Start the Autokey UI (if desired) by appending the --configure or -c command line switch to the end of the command.

The commands accept CLI switches just like the regular installation, so python3 -m autokey.qtui -lc works as expected.


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.

Running the unit tests

The unit test suite has two additional requirements:

Running the test suite is integrated into The tests can be run by executing python3 test from the repository root directory.


The changelog is located Here.


GNU GPL v3. See the LICENSE file alongside this README for a plain text copy of the license text.