Automic VaultAutomic Vault

brew

Install xdotool with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, zypper

Fake keyboard/mouse input and window management for X. Version 4.20260303.1 via Homebrew; verified from local package data.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install xdotool

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install xdotool

MacPorts ports tree · x11/xdotool/Portfile · source: api.github.com

Linux

Alpine Linux apkverified · 92%
sudo apk add xdotool

Alpine Linux edge package indexes · xdotool · source: dl-cdn.alpinelinux.org

Debian aptverified · 92%
sudo apt install libxdo-dev

Debian stable package indexes · libxdo-dev · source: deb.debian.org

Fedora dnfverified · 92%
sudo dnf install libxdo

Fedora Rawhide package metadata · libxdo · source: dl.fedoraproject.org

Nixverified · 92%
nix profile install nixpkgs#xdotool

nixpkgs package indexes · pkgs/by-name/xd/xdotool/package.nix · source: api.github.com

Arch Linux pacmanverified · 92%
sudo pacman -S xdotool

Arch Linux sync databases · xdotool · source: geo.mirror.pkgbuild.com

openSUSE zypperverified · 92%
sudo zypper install xdotool

openSUSE Tumbleweed package metadata · xdotool · source: download.opensuse.org

overview

Package summary

Fake keyboard/mouse input and window management for X

Commands and aliases

  • xdotool

history

Project history and usage

xdotool is Jordan Sissel's X11 automation command: a small CLI and companion libxdo library for synthesizing keyboard and mouse input, searching for windows, and manipulating X window-manager state from scripts.

Project history

The earliest public GitHub commit history for xdotool reaches back to 2007 and records a migration from a semicomplete Google Code Subversion repository, while the GitHub repository itself was created in 2011. Its upstream documentation has long described the same core design: use the XTEST extension and Xlib calls to fake input, locate windows, move and resize them, switch desktops, and alter window properties.

xdotool evolved from a one-command X scripting helper into a grab bag of practical desktop automation verbs. The upstream README documents not only key and mouse events but also window stacks, EWMH/NetWM-oriented window-manager interactions, and libxdo for C programs that need the same behavior without shelling out.

Adoption history

Adoption followed the path of a classic Linux desktop utility: package it everywhere, make it scriptable, and let window-manager users compose it with shell, hotkey daemons, status bars, and test harnesses. The upstream project page lists common installs for Debian/Ubuntu, Fedora, FreeBSD, macOS through Homebrew or MacPorts, and OpenSUSE, matching its role as a small dependency-free command that distributions can ship easily.

Its importance also became clearer during the Wayland transition. The README explicitly warns that xdotool does not work correctly for many Wayland tasks because its model depends on X11 semantics; that limitation turned xdotool into both a beloved X11 automation tool and a marker of the security and protocol differences between X11 and Wayland.

How it is used

Practitioners use xdotool to press hotkeys, type text into focused applications, click or move the pointer, activate a window found by name or class, resize matching windows, script window focus, and glue graphical applications into shell workflows. It is common in lightweight window-manager setups, kiosk scripts, GUI smoke tests, and one-off desktop automation.

The tool is intentionally composable: upstream examples show pipelines that search for Firefox, activate it, and send Ctrl+L, or find visible terminal windows and resize them. libxdo gives packagers and C applications a lower-level route to the same XTEST and Xlib behavior.

Why package nerds care

xdotool is one of the canonical examples of a package that matters because it exposes a desktop protocol as a Unix command. It packages the old X11 assumption that clients can inspect and influence each other into a tiny CLI, which made it disproportionately useful for automation and disproportionately hard to replace under Wayland.

For package nerds, it also illustrates the value of boring distribution: a single executable, a small C library, a manpage, and enough stable behavior that scripts written years apart still tend to work on Xorg sessions.

Timeline

  • 2007: Earliest GitHub-visible commit imports xdotool history from the semicomplete Google Code Subversion repository.
  • 2010: Upstream examples note simpler chained commands available as of version 2.20100623.
  • 2011: The GitHub repository is created.
  • 2015: The semicomplete project page documents distro install routes and the XTEST/Xlib design.
  • 2020s: The README frames Wayland incompatibility as a core boundary of xdotool's X11 model.

Related projects

  • libxdo is the C library shipped with xdotool for applications that need xdotool-style X11 automation.
  • XTEST is the X11 extension xdotool uses for synthetic keyboard and mouse input.
  • ydotool and dotool are related tools named by upstream for Wayland-era or uinput-based input automation.

security posture

Risk level: green

narrow executable package without higher-risk signals.

Risk classifier

green risk · low confidence · appliance

Why

  • narrow executable package without higher-risk signals

Signals

  • metadata:no-higher-risk-signals

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 6 platform targets.
  • Installs with 5 runtime dependencies.
  • Build metadata lists 1 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
xdotoolcliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version4.20260303.1
manager updated
local dataok
upstreamcurrent
latest detectedv4.20260303.1

https://github.com/jordansissel/xdotool

  • infoNo package-manager update timestamp was available.low confidence

install metadata

Package metadata

Package keybrew:xdotool
Version4.20260303.1
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/xdotool
Homepagehttps://www.semicomplete.com/projects/xdotool/
Repositoryhttps://github.com/jordansissel/xdotool
Upstream docshttps://github.com/jordansissel/xdotool#readme
LicenseBSD-3-Clause
Source archivehttps://github.com/jordansissel/xdotool/archive/refs/tags/v4.20260303.1.tar.gz
Dependencieslibx11, libxi, libxinerama, libxkbcommon, libxtst
Build dependenciespkgconf
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared
CaveatsYou will probably want to enable XTEST in your X11 server now by running: defaults write org.x.X11 enable_test_extensions -boolean true For the source of this useful hint: https://stackoverflow.com/questions/1264210/does-mac-x11-have-the-xtest-extension

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Namexdotool
Version Scheme0
Revision0
Head VersionHEAD
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • head
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Debian apt95%

libxdo-dev 1:3.20160805.1-5.1

library for simulating X11 keyboard/mouse input

https://github.com/jordansissel/xdotool/

sudo apt install libxdo-dev
  • Section: libdevel
  • Architecture: amd64
  • Source Package: xdotool
  • 2 dependencies
  • normalized package name match
  • Matched by: Xdotool
Debian stable package indexes · deb.debian.org · Debian stable package indexes: libxdo-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Debian apt95%

libxdo3 1:3.20160805.1-5.1

library for simulating (generating) X11 keyboard/mouse input events

https://github.com/jordansissel/xdotool/

sudo apt install libxdo3
  • Section: libs
  • Architecture: amd64
  • Source Package: xdotool
  • 5 dependencies
  • normalized package name match
  • Matched by: Xdotool
Debian stable package indexes · deb.debian.org · Debian stable package indexes: libxdo3 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Debian apt95%

xdotool 1:3.20160805.1-5.1

simulate (generate) X11 keyboard/mouse input events

https://github.com/jordansissel/xdotool/

sudo apt install xdotool
  • Section: x11
  • Architecture: amd64
  • 3 dependencies
  • normalized package name match
  • Matched by: Xdotool
Debian stable package indexes · deb.debian.org · Debian stable package indexes: xdotool from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Nix95%

xdotool

nix profile install nixpkgs#xdotool
  • normalized package name match
  • Matched by: Xdotool
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/xd/xdotool/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
Ubuntu apt95%

libxdo-dev 1:3.20160805.1-5build1

library for simulating X11 keyboard/mouse input

https://github.com/jordansissel/xdotool/

sudo apt install libxdo-dev
  • Section: universe/libdevel
  • Architecture: amd64
  • Source Package: xdotool
  • 2 dependencies
  • normalized package name match
  • Matched by: Xdotool
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: libxdo-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz
Ubuntu apt95%

libxdo3 1:3.20160805.1-5build1

library for simulating (generating) X11 keyboard/mouse input events

https://github.com/jordansissel/xdotool/

sudo apt install libxdo3
  • Section: universe/libs
  • Architecture: amd64
  • Source Package: xdotool
  • 5 dependencies
  • normalized package name match
  • Matched by: Xdotool
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: libxdo3 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz
Ubuntu apt95%

xdotool 1:3.20160805.1-5build1

simulate (generate) X11 keyboard/mouse input events

https://github.com/jordansissel/xdotool/

sudo apt install xdotool
  • Section: universe/x11
  • Architecture: amd64
  • 3 dependencies
  • normalized package name match
  • Matched by: Xdotool
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: xdotool from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz
apk95%

xdotool 4.20260303.1-r0

Simulate X11 keyboard/mouse input events

https://github.com/jordansissel/xdotool

sudo apk add xdotool
  • License: BSD-3-Clause
  • Architecture: x86_64
  • Source Package: xdotool
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Xdotool
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: xdotool from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
apk95%

xdotool-dev 4.20260303.1-r0

Simulate X11 keyboard/mouse input events (development files)

https://github.com/jordansissel/xdotool

sudo apk add xdotool-dev
  • License: BSD-3-Clause
  • Architecture: x86_64
  • Source Package: xdotool
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Xdotool
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: xdotool-dev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
apk95%

xdotool-doc 4.20260303.1-r0

Simulate X11 keyboard/mouse input events (documentation)

https://github.com/jordansissel/xdotool

sudo apk add xdotool-doc
  • License: BSD-3-Clause
  • Architecture: x86_64
  • Source Package: xdotool
  • normalized package name match
  • Matched by: Xdotool
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: xdotool-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
dnf95%

libxdo 3.20211022.1-10.fc44

Keyboard input simulation library

https://github.com/jordansissel/xdotool

sudo dnf install libxdo
  • License: LicenseRef-Callaway-BSD
  • Category: Unspecified
  • Architecture: i686
  • Source Package: xdotool
  • 6 dependencies
  • 2 provides
  • normalized package name match
  • Matched by: Xdotool
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: libxdo from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
dnf95%

libxdo-devel 3.20211022.1-10.fc44

Development files for libxdo

https://github.com/jordansissel/xdotool

sudo dnf install libxdo-devel
  • License: LicenseRef-Callaway-BSD
  • Category: Unspecified
  • Architecture: i686
  • Source Package: xdotool
  • 4 dependencies
  • 2 provides
  • normalized package name match
  • Matched by: Xdotool
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: libxdo-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
dnf95%

xdotool 3.20211022.1-10.fc44

Fake keyboard/mouse input

https://github.com/jordansissel/xdotool

sudo dnf install xdotool
  • License: LicenseRef-Callaway-BSD
  • Category: Unspecified
  • Architecture: x86_64
  • Source Package: xdotool
  • 5 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Xdotool
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: xdotool from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
pacman95%

xdotool 4.20260303.1-1

Command-line X11 automation tool

https://www.semicomplete.com/projects/xdotool/

sudo pacman -S xdotool
  • License: BSD-3-Clause
  • Architecture: x86_64
  • 5 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Xdotool
Arch Linux sync databases · geo.mirror.pkgbuild.com · Arch Linux sync databases: xdotool from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz
zypper95%

xdotool 4.20251130.1-1.3

Fake keyboard/mouse input

https://www.semicomplete.com/projects/xdotool/

sudo zypper install xdotool
  • License: BSD-3-Clause
  • Category: System/X11/Utilities
  • Architecture: x86_64
  • Source Package: xdotool
  • 7 dependencies
  • 2 provides
  • normalized package name match
  • Matched by: Xdotool
openSUSE Tumbleweed package metadata · download.opensuse.org · openSUSE Tumbleweed package metadata: xdotool from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst
zypper95%

xdotool-devel 4.20251130.1-1.3

Development and Library files

https://www.semicomplete.com/projects/xdotool/

sudo zypper install xdotool-devel
  • License: BSD-3-Clause
  • Category: Development/Libraries/X11
  • Architecture: x86_64
  • Source Package: xdotool
  • 4 dependencies
  • 2 provides
  • normalized package name match
  • Matched by: Xdotool
openSUSE Tumbleweed package metadata · download.opensuse.org · openSUSE Tumbleweed package metadata: xdotool-devel from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment