= KeePassXC – Auto-Type
:imagesdir: ../images

// tag::content[]
== Auto-Type
The Auto-Type feature acts like a virtual keyboard to populate data from your entries directly into the corresponding websites or applications that you use. You can use the Auto-Type feature on a global level or entry level. Each entry can be configured to be associated with a particular window title and multiple Auto-Type sequences can be pre-defined and selected upon use.

NOTE: Auto-Type is a completely separate feature from Browser Integration. You do not need to have the KeePassXC browser extension installed in your browser to use Auto-Type.

=== Configure Global Auto-Type
You can define a global Auto-Type hotkey that starts the Auto-Type process. To configure the hotkey, perform the following steps:

Navigate to _Tools_ -> _Settings_ -> Auto-Type tab *(1)*. Click into the _Global Auto-Type shortcut_ box and press the desired key combination that will trigger the Auto-Type process *(2)*.

.Auto-Type settings
image::autotype_settings.png[]

You can configure additional Auto-Type settings in this window such as start delay, inter-key typing delay, and matching options. If Auto-Type is not working well for you, try adjusting the default delays.

You can also set the time to remember the last used entry between presses of the global Auto-Type hotkey. This is useful for typing parts of a sequence during complex login workflows without having to find the specific each time.

=== Configure Auto-Type Sequences
Each entry in your database can have multiple Auto-Type sequences associated with various window titles. Simulated key presses can be sent to any other currently open window of your choice (web browser windows, login dialogs boxes, and so on). When the Global Auto-Type hotkey is pressed, KeePassXC will search your database for entries matching the current selected window title.

NOTE: The default Auto-Type sequence is `{USERNAME}{TAB}{PASSWORD}{ENTER}`. This means that it first types the username of the selected entry, then presses the kbd:[Tab] key, then types the password of the entry and finally presses the kbd:[Enter] key.

TIP: To change the default Auto-Type sequence for all entries of your database, edit the root (top-most) group of your database and set a specific sequence. Child groups and entries will inherit this sequence by default.

To configure Auto-Type sequences for your entries, perform the following steps:

1.	Navigate to the entries list and open the desired entry for editing. Click the _Auto-Type_ item from the left-hand menu bar *(1)*. Press the kbd:[+] button *(2)* to add a new sequence entry. Select the desired window using the drop-down menu, or simply type a window title in the box *(3)*.
+
TIP: You can use an asterisk (`\*`) as a wildcard (e.g., when a window title contains a dynamic file or website name). Set the window title to `*` to match all windows. Leave the window title blank to offer additional sequences for every matching window. This is useful for typing individual custom attributes, for example.
+
TIP: To use a standard regular expression for window title matching, the window title must start and end with two forward slashes (e.g., `//^Secure Login - .*$//`).
+
.Auto-Type entry sequences
image::autotype_entry_sequences.png[]

2. _(Optional)_ Define a custom Auto-Type sequence for each window title match by selecting the _Use specific sequence for this association_ checkbox. Sequence action codes and field placeholders are detailed in the following table. Beyond the most important ones detailed below, there are additional action codes and placeholders available: <<Auto-Type Actions, Auto-Type Actions Reference>> and <<Entry Placeholders, Entry Placeholders Reference>>. Action codes and placeholders are not case sensitive.
+
[grid=rows, frame=none, width=90%]
|===
|Placeholder |Description

|{TITLE}    |Entry Title
|{USERNAME} |Username
|{PASSWORD} |Password
|{URL}      |URL
|{NOTES}    |Notes
|{TOTP}     |Current TOTP value (if configured)
|{S:ATTRIBUTE_NAME}   |Value for the given attribute name (e.g., {S:Address})
|===
+
[grid=rows, frame=none, width=90%]
|===
|Action Code |Description

|{TAB}, {ENTER}, {SPACE}, {INSERT}, {DELETE}, {HOME}, {END}, {PGUP}, {PGDN}, {BACKSPACE}, {CAPSLOCK}, {ESC}
|Press the corresponding keyboard key

|{UP}, {DOWN}, {LEFT}, {RIGHT}  |Press the corresponding arrow key
|{LEFTBRACE}, {RIGHTBRACE}      |Press kbd:[{] or kbd:[}], respectively
|{&lt;KEY&gt; X}     |Repeat &lt;KEY&gt; X times (e.g., {SPACE 5} inserts five spaces)
|{DELAY=X}     |Set delay between key presses to X milliseconds
|{DELAY X}     |Pause typing for X milliseconds
|{CLEARFIELD}  |Clear the input field
|{PICKCHARS}   |Pick specific password characters from a dialog
|{MODE=VIRTUAL} |(Experimental) Use virtual key presses on Windows, useful for virtual machines
|===
+
[grid=rows, frame=none, width=90%]
|===
|Modifier |Description

|+        |SHIFT
|^        |CTRL
|%        |ALT
|#        |WIN/CMD
|===

TIP: Use modifiers to hold down special keys before typing the next character. For example, to type *CTRL+SHIFT+D* use: `^+d`. This is useful if you need to activate certain actions in a program or on your desktop.

=== Performing Global Auto-Type
The global Auto-Type keyboard shortcut is used when you have focus on the window you want to type into. To make use of this feature, you must have previously configured an Auto-Type hotkey.

When you press the global Auto-Type hotkey, KeePassXC searches all unlocked databases for entries that match the focused window title. The selection dialog will appear when there are no matches, multiple matches, the active window title is not available, or "Always ask before performing Auto-Type" is enabled. The selection is remembered for a short while to help retype with the same entry in quick succession.

.Auto-Type sequence selection
image::autotype_selection_dialog.png[,70%]

Perform the selected Auto-Type sequence by double clicking the desired row or pressing kbd:[Enter]. Press the up and down arrows to navigate the list. Sequences can be filtered through the text edit field.

.Auto-Type search database
image::autotype_selection_dialog_search.png[,70%]

Search the unlocked databases by activating Search Database radio button. Use the text edit field to issue search queries using the same syntax as database searching.

.Additional Auto-Type choices
image::autotype_selection_dialog_type_menu.png[,70%]

The option to type just the username, password, or current TOTP value is available by right-clicking the desired row or expanding the Type Sequence button options. You can also copy these values to the clipboard.

TIP: On Windows, you will see an option to use a virtual keyboard in this sub-menu. This is an experimental feature that allows you to type into virtual machines by simulating actual keyboard presses. Some international keyboards may be unsupported due to limitations in the Windows API.

=== Performing Entry-Level Auto-Type
You can quickly activate the default Auto-Type sequence for a particular entry using Entry-Level Auto-Type. For this operation, the KeePassXC window will be minimized and the Auto-Type sequence occurs in the previously selected window. You can perform Entry-Level Auto-Type from the toolbar icon *(A)*, entry context menu *(B)*, or by pressing kbd:[Ctrl+Shift+V].

WARNING: Be careful when using Entry-Level Auto-Type as you can inadvertently type into the wrong window. For example, a chat window or email.

.Entry-Level Auto-Type
image::autotype_entrylevel.png[]

=== Wayland Support

On Linux, Auto-Type uses https://flatpak.github.io/xdg-desktop-portal/[XDG Desktop Portals] when running under a Wayland compositor. An implementation of the Remote Desktop Portal and Global Shortcuts Portal must be available on your system for Auto-Type to be available. The following desktop environments are known to provide full or partial support:

* **KDE Plasma 6** — Full support since 6.6 with reconfiguration from within KeePassXC. Reconfiguration with older versions is available via _System Settings_ -> _Shortcuts_ -> _KeePassXC_.
* **GNOME 48+** — Supports initial binding and Auto-Type. Reconfiguring the shortcut is available via _GNOME Settings_ -> _Apps_ -> _KeePassXC_. Note: the initial configuration dialog may appear blank on some GNOME versions due to a known bug unrelated to KeePassXC, but the shortcut works regardless after accepting the dialog.
* **Other compositors** (Sway, labwc, Hyprland, etc.) — May require a custom XDG Desktop Portal implementation to provide Remote Desktop and Global Shortcuts services. A generic Python-based implementation, https://github.com/hifi/xdg-desktop-portal-pyrtal[xdg-desktop-portal-pyrtal], can be used as a workaround until official implementations are available.

When running under Wayland, the following limitations apply:

* **No window title matching.** Wayland does not expose the active window title to applications. When you press the global Auto-Type shortcut, the selection dialog will show all available entries from your unlocked databases. Use the keyboard to filter entries quickly. The "remember last used entry" feature is especially useful in this workflow.
* **No active window tracking.** KeePassXC does not track the focused window on Wayland. If keyboard focus changes during an Auto-Type sequence, the typing will not be interrupted and will continue into the newly focused window.
* **IME / Input Method compatibility.** Some input method frameworks (e.g., fcitx5, ibus) may interfere with key simulation, particularly for CJK or virtual keyboard setups. This can cause character corruption or modifier key state issues. These issues are caused by the compositor or the input method framework, not by KeePassXC. If you experience problems, try disabling your IME temporarily during Auto-Type, or check your desktop environment's virtual keyboard settings. Please report any issues directly to your compositor or input method project.

Additional configuration options are available in the Auto-Type settings when using the desktop portal backend:

* **Keep remote desktop connection open after performing Auto-Type** — When enabled, the remote desktop session remains open after typing, allowing subsequent Auto-Type operations without re-requesting permission.
* **Remote desktop mode** — Controls how long the remote desktop authorization is persisted: never remember (authorization is forgotten immediately), remember until exit (authorization persists until KeePassXC closes), or remember until revoked by desktop (authorization persists until the desktop environment revokes it).
* **Use remote desktop for clipboard access** — Experimental option to use the remote desktop session for clipboard operations (copy and clearing).
* **Experimental: Prefer desktop portals (Wayland implementation)** — When enabled on X11, attempts to use the desktop portal backend instead of the native X11 implementation. This is unlikely to work on most setups and is provided for completeness to support legacy X11 desktops with portals if available.
// end::content[]
