SikuliX1

SikuliX

SikuliX automates desktop apps by recognising what is on screen and driving mouse and keyboard with Jython scripts. It is free (MIT) but discontinued: 2.0.5 (2021) is final, and the maintained continuation is the OculiX fork.

OSWindows, Linux, macOS
Size120  MB
Version2.0.6
FreeLatest version: 2.0.5Dormant since 2021 · community fork OculiX

SikuliX is a free, open-source visual automation tool for sysadmins, testers and support staff who need to script applications that have no API, no command line and no usable accessibility layer: it finds buttons and fields by what they look like on screen and then clicks and types for you. Before you look for a SikuliX download, know its status: development has stopped. The last release is SikuliX 2.0.5 from March 2021, its creator Raimund Hocke (RaiMan) archived the project in March 2026, and active work continues in the MIT-licensed community fork OculiX.

The scripts and ideas still work, and plenty of existing automations run on 2.0.5. For new projects, though, start with OculiX, which is designed to stay compatible with legacy SikuliX scripts and receives fixes and releases.

SikuliX at a glance

ItemDetails
Latest version2.0.5 (3 March 2021) — final release; discontinued. Successor: OculiX 4.0.0 (9 July 2026)
LicenceFree and open source, MIT
PlatformsWindows, macOS, Linux (Java-based)
DeveloperRaimund Hocke (RaiMan); code now stewarded by oculix-org
Official websitesikulix.com (now points to OculiX)
Best forAutomating legacy desktop apps, Citrix/RDP/VNC sessions and GUI-only admin consoles by image recognition

What it does

  • Finds screen elements by image matching (OpenCV): you capture a small picture of a button, and the script locates it on screen at run time.
  • Drives mouse and keyboard: click, double-click, drag and drop, type text, press key combinations.
  • Waits for things to appear or vanish (wait, exists, waitVanish) — essential for slow legacy apps.
  • Reads on-screen text with Tesseract OCR, useful for checking status messages or values in a window.
  • Scripts in Jython (Python 2.7 syntax), JRuby or plain Java via the SikuliX API jar.
  • Includes an IDE with screenshot capture, image previews and one-click run.
  • Works over anything that shows pixels: local apps, Citrix, RDP and VNC windows.

How sysadmins use it

Automate a repetitive task in a GUI-only application

  1. Start the IDE jar for your platform, for example java -jar sikulixide-2.0.5-windows.jar (there are also -macos and -linux builds).
  2. Use the capture tool to grab the elements you need (menu item, button, input field). Each capture is saved as a PNG inside the .sikuli script folder.
  3. Write the flow in Jython:
    click("file_menu.png")
    click("export_csv.png")
    wait("save_dialog.png", 10)
    type("report_today.csv" + Key.ENTER)
    if exists("overwrite_prompt.png"):
        click("yes_button.png")
  4. Adjust matching with Pattern("button.png").similar(0.85) when the default similarity picks the wrong element.

Run a script unattended

  1. Run it from the command line or Task Scheduler:
    java -jar sikulixide-2.0.5-windows.jar -r C:scriptsexport.sikuli
  2. The task must run in a logged-in, unlocked desktop session with the same resolution and scaling as when you captured the images — a locked screen or a service session has nothing to see.
  3. Log results or take a screenshot on failure so you can see why a match failed.

Check a value on screen with OCR

reg = Region(100, 200, 400, 50)
status = reg.text()
if "Completed" not in status:
    popup("Job not finished: " + status)

OCR accuracy depends on font size and contrast; restrict it to a small region for reliable results.

Install and first run

Requirements. SikuliX runs on the Java platform, so install a 64-bit Java runtime first. The 2.0.5 build re-published by oculix-org in April 2026 was compiled with Java 17, so use Java 17 or newer with it. The same jar approach applies on Windows, macOS and Linux.

Windows. Put the IDE jar in its own folder (it creates support files next to itself) and start it with java -jar. Display scaling other than 100% is a frequent cause of failed matches — capture images at the scaling you will run with.

macOS. Grant Java the Accessibility and Screen Recording permissions in System Settings > Privacy & Security, otherwise clicks and screenshots silently fail.

Linux. Works on X11 sessions; OpenCV and Tesseract libraries may need to be installed from your distribution. Wayland sessions restrict screen capture and input injection.

Gotchas. Scripts break when themes, fonts, resolution or application versions change. Keep image captures tight, avoid capturing text that changes, and store scripts in version control.

Limitations

  • Discontinued: no fixes for new Java, OS or display changes. Use OculiX for anything new.
  • Image-based automation is brittle compared with API, CLI or UI Automation approaches.
  • Needs a visible, unlocked desktop; it cannot work in a service context or on a locked screen.
  • Jython means Python 2.7 syntax — no modern Python 3 libraries inside scripts.
  • OCR is basic and sensitive to fonts and contrast.

SikuliX vs alternatives

The natural replacement is OculiX, the maintained MIT fork that keeps SikuliX script compatibility and adds current OpenCV, VNC, SSH and Android (ADB) support. On Windows, Power Automate for desktop offers recorder-based automation with UI element selectors plus image matching as a fallback, and is free for personal use on Windows 10/11. AutoHotkey is lighter and faster for keyboard and window automation but has only basic image search. If the target system has a CLI or API at all, Ansible or PowerShell will be far more reliable than any screen-based tool.

FAQ

Is SikuliX still maintained?

No. RaiMan stopped development; 2.0.5 (2021) is the final release and the repository was archived in March 2026. The maintained continuation is OculiX.

Is SikuliX free?

Yes. SikuliX is free and open source under the MIT licence, and so is OculiX.

Can I use Python 3 with SikuliX?

Not inside the IDE: SikuliX scripts run on Jython, which uses Python 2.7 syntax. You can control the Java API from other languages, but that needs extra bridging work.

Sikuli vs SikuliX — what is the difference?

Sikuli was the original research project from MIT’s User Interface Design Group, published in 2009; SikuliX is the continuation that Raimund Hocke maintained for more than a decade, and the version most scripts today are written for.

SikuliX vs Selenium — which should I use?

Use Selenium for web browsers, because it works with the page’s DOM. Use SikuliX or OculiX for desktop apps, remote sessions and anything without a DOM.

Does SikuliX work on Windows 11 and Mac?

Yes, with a suitable 64-bit Java runtime. On macOS you must grant Accessibility and Screen Recording permissions.

Is SikuliX safe?

The code is open source. The main risk is operational: scripts click whatever matches, so test them carefully and do not run them against production systems unattended without checks.

Last checked against official sources: 30 September 2026 (developer website: sikulix.com). Versions and licence terms change — confirm on the developer's site before deploying in production.

Other articles

Submit your application