RaiMan's SikuliX
Last updated
Last updated
Latest stable version: —— Nightly builds:
-- having a new SikuliX logo
… in Huichol Indian culture: the power to see and understand things unknown. (Thanks for the )
Sikuli was started somewhen in 2009 as an open-source research project at the at by Tsung-Hsiang Chang and Tom Yeh. Both left the project at Sikuli-X-1.0rc3 during 2012, when I decided to take over development and support and name it SikuliX.
SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses to identify GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on.
SikuliX supports as scripting languages
Python language level 2.7 (supported by )
running text-scripts is supported ()
Ruby language level 1.9 and 2.0 (supported by )
JavaScript (supported by the Java Scripting Engine)
… and you can use it in Java programming and programming/scripting with any Java aware programming/scripting language (Jython, JRuby, Scala, Clojure, …).
Though SikuliX is currently not available on any mobile device, it can be used with the respective emulators on a desktop computer or based on VNC solutions. A solution for Android devices based on ADB (Android Debugging Bridge) is in an early experimental stage,
Besides locating images on a screen SikuliX can run the mouse and the keyboard to interact with the identified GUI elements. This is available for multi monitor environments and even for remote systems with some restrictions.
SikuliX is a Java application, that works on Windows, macOS and most Linux/Unix systems.
You want to automate some repetitive tasks in
daily usage of applications or web pages
playing games
administration of IT systems and networks
... and you do not have adequate tools at hand.
You want to test applications or web pages, that are under development.
You want to create usage documentation or training material, that run live on the addressed application or web page.
Before thinking about using SikuliX, you have to assure, that you have a valid 64-Bit Java installation (version 8 or later).
Scripting
One sets up and runs more or less complex SikuliX workflows based on searching images and acting on GUI elements with mouse and keyboard. For this one uses the so called SikuliX IDE, that brings some basic support for editing and running scripts. In the Scripting usage scenario, you handle SikuliX scripts named you-name-it.sikuli, which are folders containing the script file and the images you need for the workflow. You either run the scripts from within the SikuliX IDE or from the command line.
Programming
Any contribution is welcome and highly appreciated. Use any of the available channels, to get in contact.
SikuliX comes with basic text recognition (OCR) and can be used to search text in images. This feature is .
You already have tools and workflows for that, but you want to add the specific features of SikuliX to enhance your approach and improve efficiency and outcome. Using SikuliX means doing : What You See Is What You Script ;-)
But before downloading and fiddling around, it is highly recommended to . SikuliX can be downloaded from or with a bit more information and advices
In any case you should have . With SikuliX there are two rather distinct usage scenarios:
To get on the road you should .
In a mature IDE (IntelliJ IDEA, Eclipse, NetBeans, ...) and/or some testing environment one integrates SikuliX as a feature library using the available API's while programming in Java or Java aware/based languages (Jython, JRuby, Scala, Clojure, ...). If you work in this usage scenario, then you should and look out for special information on how to use with Java.
The first place to get help is to visit . You might ask a question in the Answers section or scan it for anything helpful. You might check the FAQ section. Even the Bugs section might shed light on your current problem. … and even just asking Google, might reveal valuable information from elsewhere in the net.
More information on .
The sources and hence the development base is on .