Website profiles · Technology insights · Alternatives

autokey.github.io

No paid content found
Visit website
Profile views 1 Outbound visits 0 Normal
AutoKey 0.96.0 documentation Full homepage screenshot

At a glance

Category
Development
Language
English
Paid-content signal
No paid content foundObserved
Registered
Unknown
Hosting
FastlyInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is AutoKey?

AutoKey is a desktop automation tool for Linux that expands text abbreviations and runs scripts triggered by keyboard shortcuts. It is aimed at people who repeat the same phrases, form entries or key sequences and want to automate them locally rather than through a cloud service.

What it does

  • Abbreviations: you define a short trigger that expands into a longer piece of text as you type.
  • Scripted actions: AutoKey exposes a scripting API for keyboard and mouse control, so a hotkey can send key presses, click or move the pointer, and wait for input. The documented API includes keyboard functions such as Keyboard.send_keys() and Keyboard.wait_for_keypress(), mouse functions such as Mouse.click_relative() and Mouse.move_cursor(), and a store for keeping values between runs.
  • Reusable settings: the documentation covers how settings are organised and how to "source" them onto a new computer, which matters if you maintain the same shortcuts across machines.

Who it suits

A support agent who types the same reply opening twenty times a day, a developer pasting boilerplate snippets, or someone with a repetitive data-entry workflow are the clearest fits. The scripting API also appeals to users comfortable writing small Python-style scripts who want conditional behaviour, not just static text expansion.

The trade-off is that it is a Linux desktop tool driven by configuration and scripts: useful power comes with setup effort, and shortcuts can collide with those in other applications. If you only need a handful of static text snippets, a simpler text expander may be enough; if you need key and mouse sequences, AutoKey's API is the reason to choose it.

A practical next step is to list your five most repeated actions, then check whether each is plain text (an abbreviation) or a sequence of keys and clicks (a script). That split tells you how much of AutoKey you will actually use. The official documentation at AutoKey 0.96.0 documentation is the place to confirm current behaviour before relying on a specific function.

How do I set up AutoKey abbreviations to expand text as I type?

Abbreviations in AutoKey are set up as "Phrases" that fire when you type a short trigger string, then expand into longer text. The official documentation covers the concept under "Adding Abbreviations," and the scripting side through the Autokey API, so you can start with plain text expansion and grow into dynamic scripts later.

Basic setup

  1. Open the AutoKey main window and select the folder (or create one) where the phrase should live.
  2. Add a new Phrase and give it a name you'll recognize.
  3. In the phrase's content area, enter the text you want inserted.
  4. Set the abbreviation (the trigger) in the phrase's abbreviation field.
  5. Save, then type the abbreviation in any text field to test the expansion.

A practical first example: set the abbreviation ;sig to expand into your name, title and contact line. Choose triggers that don't collide with normal words—leading punctuation like ; or // is common because it rarely appears in prose.

Choosing between plain phrases and scripts

Use case Phrase type Trade-off
Fixed boilerplate, signatures, canned replies Plain text phrase Simplest; no logic, but no flexibility either
Inserting today's date, selected text, or clipboard content Script phrase More powerful; requires a little Python and testing
Multi-step actions (type text, press keys, click) Script using the Keyboard and Mouse APIs Handles complex workflows; harder to debug and more fragile across apps

The documentation's API reference lists Keyboard.send_keys(), Keyboard.fake_keypress() and the Key constants for scripted phrases, plus Mouse methods if a phrase needs to click or move the cursor. A concrete script use: a phrase that reads the current selection and wraps it in quotes, or one that inserts a timestamp—both are cases where plain text can't do the job.

Things worth checking

  • Trigger uniqueness: two phrases with overlapping abbreviations can produce surprising results; keep triggers distinct.
  • Application context: if an expansion only makes sense in one program, scope the folder or phrase accordingly rather than firing it everywhere.
  • Testing: try each abbreviation in a scratch document before relying on it in email or a code editor.

If you want to compare approaches, the AutoKey project pages at GitHub host the source and issue tracker, and general desktop-automation discussion often appears alongside tools like AutoHotkey (Windows-only, different scripting model). For a next step, pick your three most-repeated snippets, convert them to plain phrases first, and only move to script phrases where you need dynamic content.

How can I write a Python script in AutoKey to automate keyboard and mouse actions?

AutoKey scripts are Python programs that run inside AutoKey and call its own Keyboard and Mouse APIs to send keystrokes and control the pointer. The documentation lists the two main pieces you'll use: Keyboard methods such as send_key(), send_keys(), press_key(), release_key(), fake_keypress() and wait_for_keyevent(), and Mouse methods such as move_cursor(), click_relative(), click_absolute(), press_button(), release_button(), and scroll_up()/scroll_down(). Keys are referenced through the Key class (for example Key.ENTER, Key.TAB, Key.CONTROL, Key.F5), and mouse buttons through Mouse.Button.

A minimal pattern, based on the documented API names:

# Type text, then press Enter
keyboard.send_keys("hello world")
keyboard.send_key("<enter>")

# Hold Ctrl and tap C
keyboard.press_key("<ctrl>")
keyboard.send_key("c")
keyboard.release_key("<ctrl>")

# Move the mouse and click
mouse.move_cursor(400, 300)
mouse.click_relative(0, 0, mouse.LEFT)

Treat this as a sketch: check the exact argument order and key-string syntax in the API pages before relying on it, since the docs define each method individually.

Practical choices that affect reliability

  • send_keys() vs. fake_keypress(): send_keys() is the general way to type text or key names; fake_keypress() simulates a single key press at a lower level. Use send_keys() for normal text entry and reach for the lower-level calls when an application ignores synthesized typing.
  • send_mode: Keyboard exposes SendMode values such as KEYBOARD, CB_CTRL_V, CB_CTRL_SHIFT_V, CB_SHIFT_INSERT and SELECTION. These reflect different ways of delivering text (typing versus clipboard-based pasting), which matters in apps that block synthetic keystrokes or where pasting is faster for long text.
  • Timing: scripts that press and release modifier keys must always release them, or the desktop can be left with a stuck Ctrl or Shift. Wrap risky sequences in try/finally.
  • Coordinates: click_absolute() depends on screen position and breaks if windows move; click_relative() and move_relative() are more robust for repeatable workflows.

A concrete scenario

Suppose you paste the same block of formatted notes into a ticket system several times a day. A script could move the cursor to the notes field, paste via a clipboard send mode, then press a shortcut to submit. For a data-entry clerk working in one fixed application, absolute clicks are fine; for someone whose window layout changes between monitors, relative positioning plus keyboard shortcuts is the safer design.

As a next step, open the "Common actions" and "Introduction to Autokey" pages in the same documentation to see how scripts are attached to phrases, hotkeys, or folders, then test each API call in isolation before combining them.

How do I move my AutoKey settings and phrases to a new computer?

AutoKey documents a dedicated "source" process for moving settings to a new computer, so that is the intended path rather than copying folders by hand. The likely flow is to export or collect your existing configuration on the old machine, then import or "source" it on the new one so phrases, abbreviations and settings come across together. Because the documentation treats this as a distinct topic, check that page first for the supported method and any caveats about paths or versions.

A practical sequence

  1. On the old machine, locate the source/export option described in the docs and produce a copy of your settings.
  2. Install AutoKey on the new machine, ideally the same version family as the old one.
  3. Use the import/source step on the new machine, then test a few phrases and abbreviations.
  4. Keep the exported copy until you have confirmed everything works, since it doubles as a backup.

What to watch for

  • Phrases tied to scripts or external files: a phrase that calls a script or reads a file path may import but fail if the target does not exist on the new machine. Test those specifically.
  • Keyboard shortcuts that clash: a shortcut that was free on the old system may be taken by another application on the new one.
  • Version differences: settings written by a newer AutoKey may not load cleanly in an older release, so match versions where possible.

If the official page does not cover your case, the project's user community is the next place to ask; the documentation at AutoKey 0.96.0 documentation is the authoritative starting point for the exact menu names and steps.

How do I choose which keyboard send mode AutoKey uses when pasting text?

Choose the send mode by matching it to the target application and to what you need the pasted text to do. AutoKey's keyboard API exposes several modes through Keyboard.SendMode: KEYBOARD, CB_CTRL_V, CB_CTRL_SHIFT_V, CB_SHIFT_INSERT, and SELECTION. In practice:

  • KEYBOARD types the text as simulated keystrokes. It is the fallback when clipboard-based pasting doesn't work, but it is slower for long text and can trigger shortcuts or autocomplete in apps that react to individual keys.
  • CB_CTRL_V places the text on the clipboard and sends Ctrl+V. This is the usual choice for ordinary text fields and is fast for long phrases.
  • CB_CTRL_SHIFT_V uses the Ctrl+Shift+V paste shortcut. Reach for it in terminals and other apps where plain Ctrl+V does something else.
  • CB_SHIFT_INSERT uses Shift+Insert, a classic paste shortcut that some older or nonstandard applications honor when Ctrl+V does not.
  • SELECTION pastes through the current selection mechanism, useful in environments where clipboard shortcuts are intercepted.

A simple decision path: try CB_CTRL_V first for normal text entry; switch to CB_CTRL_SHIFT_V for terminal windows; try CB_SHIFT_INSERT if Ctrl-based paste fails in a legacy app; and use KEYBOARD only when clipboard access is unavailable or blocked, accepting that it is slower and more prone to side effects. If you are unsure, test the same phrase in the specific application you care about and watch whether the text arrives intact and whether any menus or shortcuts fire unexpectedly.

For the exact behavior of each mode and how to set it in your script, see the keyboard API reference in the AutoKey 0.96.0 documentation.

How can I use AutoKey's Store API to save values between different scripts?

AutoKey's Store API lets one script leave a value behind and another script read it later, so you can split a workflow across separate scripts without hard-coding the shared value in each one. The API exposes two scopes: per-script values and global values.

Choosing a scope

Scope Methods Use when
Script-local Store.set_value(), Store.get_value(), Store.has_key(), Store.remove_value() The value belongs to one script and should not leak into others
Global Store.set_global_value(), Store.get_global_value(), Store.remove_global_value() Several different scripts or phrases need to share the same value

The documentation lists these methods in the Store API section alongside a has_key() check, which is the practical way to test whether a value already exists before reading it.

A concrete pattern

Say you have one script that captures a project name and another that pastes it into a form. The first script writes the value with Store.set_global_value(), and the second reads it with Store.get_global_value(). Because the value is global, any other phrase or script can also read it, which is the point of choosing that scope over the script-local one.

Practical guidance

  • Check before reading. Use has_key() so a script can fall back to a default or prompt the user when nothing has been stored yet.
  • Clean up when done. Call the matching remove_* method once a value is no longer needed, so a stale entry does not surprise a later run.
  • Prefer the narrowest scope. Use script-local storage unless you specifically need to share across scripts; global keys are easy to overwrite by accident.
  • Treat stored values as simple data. They are convenient for passing strings and flags between scripts, but they are not a substitute for a real configuration file or database when you need structure or durability.

A useful next step is to open the Store API page in the AutoKey documentation and read each method's description in order, then write a two-script test: one that stores a value and one that reads and removes it.

Related questions

More questions →
How to Source AutoKey Settings on a New Computer

"Sourcing" AutoKey settings on a new computer means copying your existing AutoKey configuration — phrases, scripts, and global settings — from the old machine into the location AutoKey reads on the new one, then pointing AutoKey at that data. The AutoKey 0.96.0 documentation lists "How to 'source' settings on a new computer?" as a core introductory topic, but the page excerpt available here does not include the step-by-step procedure or the exact storage paths. The steps below reflect the general approach for transferring a desktop application's user data; verify the precise folder names against the documentation or your installed version before relying on them.

What "sourcing" involves

AutoKey stores your user data (abbreviations/phrases, scripts, and settings) in a user configuration directory, separate from the application itself. Sourcing on a new computer therefore has two parts:

  1. Copy the configuration directory from the old machine.
  2. Place it where the new installation expects it, so AutoKey loads it on startup.

Because the documentation excerpt does not state the exact directory, treat the location as something to confirm rather than assume. A practical way to find it: on the old machine, check AutoKey's settings/preferences for a stated data or configuration folder, or search your home directory for a folder named after AutoKey.

Step-by-step transfer

1. Locate the configuration on the old computer

  • Open AutoKey's settings or preferences and look for the configuration/data folder path.
  • If none is shown, search your home directory for an AutoKey-named folder (commonly under a hidden configuration directory in your home folder).
  • Note the full path before copying.

2. Copy the folder

  • Close AutoKey on the old machine first so files aren't mid-write.
  • Copy the entire configuration folder to removable media or a network location. Copy the whole folder rather than individual files, so phrases, scripts, and settings stay together.

3. Install AutoKey on the new computer

  • Install AutoKey 0.96.0 (or your matching version) first, then launch it once so it creates its default configuration location. This gives you a known target path.

4. Replace or merge the configuration

  • Close AutoKey on the new machine.
  • Put the copied folder where the new installation reads its configuration. If a default folder already exists, either replace it or merge the contents — merging preserves any new-machine defaults while adding your old data.
  • Reopen AutoKey.

5. Verify

  • Check that your phrases/abbreviations appear and that a test abbreviation expands correctly.
  • Open a script you rely on and confirm it is present.
  • Confirm global settings (hotkeys, send mode) match what you expect.

Common snags

Situation What to check
Phrases missing after transfer Folder placed in the wrong location, or only part of the folder copied
Scripts fail to run Scripts may reference paths or resources that don't exist on the new machine
Hotkeys don't trigger Global hotkey settings may conflict with the new desktop environment
Version mismatch Settings from a different AutoKey version may not load cleanly; match versions where possible

Keeping settings consistent across computers

  • Keep a single master copy of the configuration folder and update it deliberately, rather than editing on both machines independently.
  • After any major change on one machine, re-copy the folder to the other to avoid drift.
  • Note that scripts depending on absolute paths or installed programs will need those dependencies present on each machine.

For the exact folder names and any version-specific instructions, consult the "How to 'source' settings on a new computer?" section of the AutoKey 0.96.0 documentation directly, since the available excerpt does not reproduce those details.

How to Add Abbreviations in AutoKey

To add an abbreviation in AutoKey, you create a new text-type entry in a folder and assign it an abbreviation as its trigger; when you later type that abbreviation and press a word boundary key, AutoKey replaces it with the entry's content. The AutoKey 0.96.0 documentation lists "Adding Abbreviations" under Common actions, and the API reference documents the keyboard and clipboard machinery that performs the substitution. The exact menu path and dialog fields are not reproduced in the documentation excerpt, so follow the labels in your installed version.

What an abbreviation does

An abbreviation is a short trigger string tied to a longer piece of text. AutoKey watches what you type and, when the trigger is matched, substitutes the configured content. This is the same mechanism behind the "some examples" the documentation introduces on its welcome page.

Two practical consequences follow:

  • The trigger must be unambiguous. If your abbreviation is a string you also type normally, it will fire when you don't want it to. Choose something you would not otherwise type, or one that ends in a character you rarely use.
  • The match happens on typing, not on a hotkey. Unlike a script bound to a keyboard shortcut, an abbreviation needs no key combination — you just type it.

Steps to create one

  1. Open the AutoKey main window and select the folder that should hold the abbreviation. Folders keep related entries together; the documentation's "How are things organized?" section explains this structure.
  2. Create a new entry of the text type. In AutoKey, abbreviations are a kind of text entry — the content you supply is what gets inserted.
  3. Set the abbreviation field to your trigger string. This is the text AutoKey will watch for.
  4. Set the contents field to the replacement text — the phrase, signature, snippet, or code fragment you want inserted.
  5. Save the entry. The abbreviation becomes active for the folders/phrases currently enabled in AutoKey.
  6. Test it in a plain text editor: type the trigger, then a space or other word-ending key, and confirm the replacement appears.

If nothing happens, check that the phrase folder containing the entry is enabled and that AutoKey itself is running — an entry in a disabled folder will not trigger.

How the substitution is performed

The API reference shows the machinery AutoKey uses to insert text. Keyboard.send_keys() sends a string as keystrokes, while Keyboard.SendMode selects the delivery method:

Send mode What it does
KEYBOARD Types the text as individual key events
CB_CTRL_V Pastes via Ctrl+V
CB_CTRL_SHIFT_V Pastes via Ctrl+Shift+V
CB_SHIFT_INSERT Pastes via Shift+Insert
SELECTION Uses the current selection mechanism

This matters when an abbreviation misbehaves in a particular application. Some programs ignore synthetic keystrokes but accept a clipboard paste, so switching the send mode is the usual fix for an expansion that types nothing or types only part of the text. The Keyboard API also exposes fake_keypress(), press_key(), release_key(), send_key(), wait_for_keyevent(), and wait_for_keypress() for finer control, and the Key constants (for example Key.ENTER, Key.TAB, Key.BACKSPACE) let a script send the boundary key that completes a trigger.

Where abbreviations live and how matching works

Abbreviations are stored as entries inside phrase folders, and the folder structure is what the documentation's "How are things organized?" section describes. Matching is against the text you type in the focused application; the trigger fires when the typed sequence matches an active entry. Because the trigger is plain typed text, the same abbreviation can be used across applications — but it also means a trigger that collides with ordinary typing will fire unexpectedly, which is why distinctive triggers are worth the extra keystrokes.

Related actions worth knowing

The documentation groups abbreviations with other common actions, and the API reference covers the surrounding capabilities:

  • Keyboard control — Keyboard.send_keys() and the send modes above, plus the Key constants for special keys.
  • Mouse control — the Mouse API (click_absolute(), click_relative(), move_cursor(), select_area(), wait_for_click(), and others) for entries that need to click or select rather than just type.
  • Persistent values — the Store API (get_value(), set_value(), get_global_value(), set_global_value(), has_key(), remove_value(), remove_global_value()) for entries that remember state between triggers.
  • Dialogs — the QtDialog API, including calendar() and choose_* methods, for entries that prompt for input.

For a first abbreviation, the text-entry route above is enough; reach for the API when the expansion needs to press special keys, paste into an application that rejects synthetic typing, or vary its output based on stored values.

What Is AutoKey and What Does It Do for You?

AutoKey is a desktop automation utility for Linux and X11 that watches what you type and what hotkeys you press, then responds by expanding abbreviations or running scripts. You would use it when you retype the same phrases, addresses, or command sequences and want a short trigger to produce the full result. The official documentation at autokey.github.io covers version 0.96.0 and is the reference for the behavior described here.

The two mechanisms behind everything

AutoKey's feature set reduces to two triggers and two responses:

  • Text trigger (abbreviation): you type a short string, and AutoKey replaces it with a longer phrase or runs a script.
  • Hotkey trigger: you press a key combination, and AutoKey runs a script or inserts text.

The responses are either plain text expansion or a Python script that can call AutoKey's APIs. That is the whole model, and the documentation is organized around it: an introduction, a glossary of terms, common actions, and then the API reference.

What the APIs let a script do

The API reference is the clearest statement of AutoKey's scope. The documented modules are:

API area What it controls
Keyboard Sending key presses and releases, typing strings, waiting for key events, and choosing a send mode
Mouse Clicking (absolute, relative, relative to the script's own window), moving the cursor, pressing and releasing buttons, scrolling, selecting an area, waiting for a click
Store Saving and reading values, including global values, and checking or removing stored keys
QtDialog Opening dialogs such as a calendar or a chooser

Two details are worth knowing before you plan anything:

  • Send modes matter. Keyboard.SendMode includes KEYBOARD, CB_CTRL_V, CB_CTRL_SHIFT_V, CB_SHIFT_INSERT, and SELECTION. These are different ways of delivering text, and which one works depends on the target application. If expansion lands in the wrong place or does nothing, the send mode is the first thing to change.
  • Keys are named constants. The Key class enumerates everything from Key.LEFT and Key.ENTER through Key.F1–Key.F35, modifier keys like Key.CONTROL and Key.SUPER, and numpad keys like Key.NP_5. Scripts refer to these names rather than raw codes.

Concrete things you can automate

Using only documented capabilities, a typical setup looks like this:

  • Phrase expansion. Type a short abbreviation and get a full signature block, a canned reply, or a shell command. The documentation's "Common actions" section starts with adding abbreviations, which is the entry point most users need.
  • Hotkey-driven scripts. Bind a combination and have it type a string, press a sequence of keys, or click at a stored location.
  • Form and field filling. Combine Keyboard.send_keys() with Key.TAB presses to move between fields.
  • Mouse-position work. Use Mouse.get_location() to capture a position and Mouse.click_absolute() to return to it later.
  • Small stateful helpers. Use the Store API to keep a value between runs, for example a counter or a last-used path.

Where the documentation helps and where it stops

The site is an API and concepts reference, not a tutorial series. It explains terms, how things are organized, and how to "source" your settings onto a new computer — useful if you are moving a working configuration to a second machine. It does not describe installation, and the page evidence contains no pricing or licensing information, so treat availability and cost as things to confirm on the project itself rather than assume.

If you are deciding whether AutoKey fits: it does if you are on Linux with X11 and your repetitive work is typing, key presses, and mouse clicks. It does not if you need automation outside that environment, since the documented scope is desktop input on X11.

What Is the AutoKey 0.96.0 Documentation Website?

The AutoKey 0.96.0 documentation at autokey.github.io is the official reference site for AutoKey version 0.96.0. It explains what AutoKey is, how its features are organized, and how to automate keyboard and mouse actions through its scripting API. It is a documentation resource, not a download page or a tutorial series, so it is most useful when you already have AutoKey installed and need to look up a concept, an API method, or a concrete example.

What the site covers

The documentation is organized into three main areas, plus a short introduction.

Introduction to AutoKey

This section answers the basic questions a new user has before writing any script:

  • A glossary of AutoKey terms, so the rest of the documentation is readable
  • How things are organized in the application
  • How to "source" your settings on a new computer, which matters if you move between machines
  • Why you would use AutoKey and what it does for you, illustrated with examples
  • A plain explanation of what AutoKey is and how it works

If you are evaluating whether AutoKey fits your workflow, this is the section to read first. The examples show the kind of repetitive typing and clicking that AutoKey is meant to remove.

Common actions

This section walks through practical tasks, starting with adding abbreviations. An abbreviation is the simplest AutoKey feature: you type a short trigger and AutoKey expands it into longer text. The documentation treats this as the entry point before moving on to scripts.

Autokey API

This is the largest part of the site and the reason most people return to it. It is a method-by-method reference, grouped by the kind of input or data you are working with.

API area What it lets a script do
Keyboard Send key presses and releases, type strings, and wait for key events
Mouse Move the cursor, click at absolute or relative positions, press and release buttons, scroll, select an area, and wait for a click
Store Save and retrieve values, including global values, and check for or remove stored keys
QtDialog Present dialogs such as a calendar or a chooser

The Keyboard API is the most detailed. It documents send modes that control how text is delivered, including KEYBOARD, CB_CTRL_V, CB_CTRL_SHIFT_V, CB_SHIFT_INSERT, and SELECTION. The choice of send mode matters because each one delivers text through a different mechanism, and some applications respond better to one than another. The API also lists the individual key constants, from Key.LEFT and Key.BACKSPACE through the function keys up to Key.F35, plus numpad keys and modifiers such as Key.CONTROL, Key.ALT, and Key.SUPER.

The Mouse API follows the same pattern: button constants (LEFT, MIDDLE, RIGHT, scroll directions, BACKWARD, FORWARD, BUTTON10) and methods for clicking, moving, pressing, releasing, scrolling, and waiting.

How to use the site effectively

The documentation is a reference, so the fastest path depends on what you already know.

  • New to AutoKey: read the introduction and the glossary before touching the API pages. The terminology (phrases, scripts, folders) is used consistently throughout, and skipping the glossary makes the API pages harder to follow.
  • Setting up a second machine: go straight to the "source settings on a new computer" page in the introduction.
  • Writing a script: open the API section for the input type you need. If you are sending text, read the send-mode descriptions before choosing one, since the mode changes how the text arrives in the target application.
  • Looking for a specific key or button: the constant lists are exhaustive, so scan them rather than guessing at a name.

A worked example of the reference style

Suppose a script needs to press and release a modifier around a keystroke. The Keyboard API separates press_key(), release_key(), and send_key(), which tells you that holding a key down and sending a complete keystroke are different operations. A script that needs Shift held across several inputs would call press_key() with the Shift constant, perform the inputs, then call release_key(). A script that only needs one combined keystroke would use send_key() instead. The documentation gives you the method names and the key constants; the sequencing is up to you.

What the site does not provide

The documentation is version-specific: it describes AutoKey 0.96.0, so behavior or method names may differ in other releases. It is also a reference rather than a guided course, and the site itself does not present pricing or installation instructions in the material available here. Treat it as the place to confirm how a method or constant works, and rely on the introduction pages when you need the conceptual background first.

What Are the Key AutoKey Terms and How Is AutoKey Organized?

AutoKey organizes automation into a small set of building blocks—phrases, scripts, folders, and abbreviations—that you arrange in a tree inside the main window. You create an item, attach a trigger (a hotkey or an abbreviation), and AutoKey runs it in whatever application has focus. The official 0.96.0 documentation covers these concepts in its Introduction and "Glossary of AutoKey Terms" pages, and the API reference shows what scripts can call.

The core terms

Term What it is How it is triggered
Phrase Stored text that AutoKey types out for you Hotkey or abbreviation
Script A Python script that runs when triggered Hotkey (or called from another script)
Folder A container for grouping phrases and scripts Not triggered itself
Abbreviation A short string that expands into a phrase or script Typed text, optionally followed by a trigger character
Hotkey A key combination assigned to a phrase or script Keyboard shortcut
Trigger The general term for whatever starts an item (hotkey or abbreviation) —

The distinction that matters most for new users: a phrase is content, a script is code, and a hotkey or abbreviation is the trigger. A phrase or script can have a hotkey, an abbreviation, or both; the item type and the trigger type are separate choices.

How items are organized

AutoKey presents everything as a tree in its main window:

  • Top-level folders hold your items. The documentation's "How are things organized?" section describes this structure, and the "How to 'source' settings on a new computer?" page explains that your configuration lives in a folder you can copy to another machine.
  • Phrases and scripts sit inside folders. Folders exist purely for grouping, so you can keep, for example, one folder for email snippets and another for window-management scripts.
  • Abbreviations are attached to phrases or scripts rather than living as separate top-level objects.

This means the same phrase can be reached two ways—say, a hotkey for quick insertion and an abbreviation for typing—without duplicating the content.

What scripts can do

Scripts are where AutoKey goes beyond text expansion. The API reference lists the modules available to script authors:

  • Keyboard — send_keys(), send_key(), press_key(), release_key(), fake_keypress(), and the wait functions wait_for_keypress() and wait_for_keyevent(). The SendMode values (KEYBOARD, CB_CTRL_V, CB_CTRL_SHIFT_V, CB_SHIFT_INSERT, SELECTION) control how text is delivered—useful when an application ignores simulated keystrokes but accepts paste.
  • Mouse — clicking, moving, scrolling, selecting an area, and waiting for a click, with absolute, relative, and "relative to self" variants.
  • Store — persistent values via set_value()/get_value() and global values via set_global_value()/get_global_value(), so a script can remember state between runs.
  • QtDialog — dialogs such as calendar() and choose_... for asking the user for input mid-script.
  • Keys and Buttons — named constants (Key.ENTER, Key.F1 through Key.F35, Mouse.Button.LEFT, and so on) so you don't hard-code key names.

For example, a script triggered by a hotkey could read a stored value, open a dialog to let you pick a date, then type a formatted line into the focused window—combining Store, QtDialog, and Keyboard in one action.

Where to start reading

If you are new, read the Introduction, then the Glossary of AutoKey Terms, then "Common actions" (which includes adding abbreviations). Move to the API pages only when a phrase is not enough and you need a script. The documentation is versioned as 0.96.0, so check that page's version label if you are running a different release.

Website Overview

Several search or sharing settings need attention. Together they may make snippets, preview images or preferred URLs less consistent across platforms.

Domain and Registration

Unknown

DNS and Email

Nameservers are provided by Amazon Route 53, indicating managed DNS hosting. CAA records restrict which certificate authorities are authorized to issue certificates. No CNAME was found; the observed records resolve directly to addresses. No MX record was found. A conventional explicit inbound-mail route is not configured. The lowest observed DNS TTL is 2991 seconds.

TLS and Certificates

The certificate uses an RSA 2048-bit public key, offering broad client compatibility. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued by Let's Encrypt, commonly associated with automated certificate services. The certificate's total validity is about 89 days, consistent with a short renewal cycle.

HTTP and Browser Security

The checked browser-security headers were not detected, leaving fewer explicit browser-side safeguards. CORS permits any origin to read this response. This is common for public resources; sensitive responses need narrower handling. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. The x-cache, x-served-by, via response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers.

Technology Stack Analysis

The public page identifies Fastly without precise versions, leaving fewer clues for version-specific scanning.

Search and Social Sharing

No homepage meta description was detected, leaving snippet selection more dependent on page text. No homepage canonical URL was detected. If duplicate URLs exist, consolidation may be less explicit. No Open Graph metadata was detected, so social previews may depend on platform inference. The title has 50 characters, within a common display range. The observed directives allow indexing and link following.

Hosting and Email

DNSAmazon Route 53
HostingFastly
EmailUnknown
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) United States flagUnited States Inferred 185.199.108.153

Registration details

RDAP / WHOIS

Unknown

DNS records

DNS

TypeNameValueTTLPriority
Aautokey.github.io185.199.108.1533600—
Aautokey.github.io185.199.109.1533600—
Aautokey.github.io185.199.110.1533600—
Aautokey.github.io185.199.111.1533600—
AAAAautokey.github.io2606:50c0:8000::1533600—
AAAAautokey.github.io2606:50c0:8001::1533600—
AAAAautokey.github.io2606:50c0:8002::1533600—
AAAAautokey.github.io2606:50c0:8003::1533600—
NSgithub.iodns1.p05.nsone.net2991—
NSgithub.iodns2.p05.nsone.net2991—
NSgithub.iodns3.p05.nsone.net2991—
NSgithub.iodns4.p05.nsone.net2991—
NSgithub.ions-1339.awsdns-39.org2991—
NSgithub.ions-1622.awsdns-10.co.uk2991—
NSgithub.ions-393.awsdns-49.com2991—
NSgithub.ions-692.awsdns-22.net2991—
TXTgithub.iov=spf1 a -all3600—
CAAgithub.io0 issue "digicert.com"3600—
CAAgithub.io0 issue "letsencrypt.org"3600—
CAAgithub.io0 issue "sectigo.com"3600—
CAAgithub.io0 issuewild "digicert.com"3600—
CAAgithub.io0 issuewild "letsencrypt.org"3600—
CAAgithub.io0 issuewild "sectigo.com"3600—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subject*.github.io
IssuerLet's Encrypt
Valid until2026-12-29T23:44 · Remaining when checked: 60 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html; charset=utf-8
cache-controlmax-age=600
serverGitHub.com
access-control-allow-origin*

Identified technologies

Fastly

Pages, Search and Sharing

Meta descriptionNot detected
Canonical URLNot detected
LanguageEnglish (default)
Twitter CardNot detected

Unknown

No robots.txt found

No sitemaps found

User reviews (0)

  • No reviews yet.