SikuliX
What is SikuliX
SikuliX automates anything you see on the screen of your desktop computer
running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify
GUI components and can act on them with mouse and keyboard actions.
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. More details
You need at least Java 8, but it works on Java 9 up to latest (currently 12)
Windows: Works out of the box (for exceptions look here)
Mac: you have to make Tesseract OCR available (for HowTo look here).
Linux: you have to make OpenCV and Tesseract OCR available (for HowTo look here).
Latest stable version is 2.0.0 (branch release_2.0.x)
Here you can read about the changes/enhancements
Get SikuliX ready to use
- SikuliX IDE for editing and running scripts
- Jython support for the IDE
- JRuby support for the IDE
- download all needed to one folder and run sikulix-2.0.0.jar
- SikuliX Java API for programming in Java or Java aware languages
- for use in non-Maven projects
For use in Java Maven projects the dependency coordinates are:
<dependency>
<groupId>com.sikulix</groupId>
<artifactId>sikulixapi</artifactId>
<version>2.0.0</version>
</dependency>
Current developement version is 2.1.0 (branch master nightly builds / snapshots):
Here you can read more about the changes/enhancements
Get the nightly builds ready to use
- SikuliX IDE for editing and running scripts
- Jython support for the IDE
- JRuby support for the IDE
- download all needed to one folder and run sikulix-2.1.0.jar
- SikuliX Java API for programming in Java or Java aware languages
- for use in non-Maven projects
For use in Java Maven projects use the SNAPSHOT dependency information:
The repository URL:
<repositories>
<repository>
<id>sonatype-ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</repository>
</repositories>
The dependency coordinates are:
<dependency>
<groupId>com.sikulix</groupId>
<artifactId>sikulixapi</artifactId>
<version>2.1.0-SNAPSHOT</version>
</dependency>
Developement environment
- Java 12 (OpenJDK release)
- Windows 10 latest
- Mac 10.14 latest
- Ubuntu 18.04 in WSL on Windows 10
Contributions are welcome and appreciated
- for
bugreports and requests for features or enhancementsuse the issue tracker here - for
smaller bugfixes and/or feature enhancementsyou should create a pull request against the target branch (master in most cases) - for
more complex revisions and/or enhancementsyou should ask for a developement branch together with a short description of your ideas
Please respect the following rules and guidelines when contributing
- Start with smaller fixes. E.g. choose an issue from the issue tracker and try to fix it. Or fix issues you encounter while using SikuliX.
- Only fix cosmetic stuff if it's related to an issue you want to fix.
- Before you change stuff like dependencies / overall code style and so on, talk with the maintainer beforehand.
Sometimes there is a a reason that things are as they are (... and sometimes not :-)). - Try to accept the individual coding styles of the acting contributors, even if some of the stuff might be sub-optimal in your eyes.
But feel free to talk about your ideas and the reasons behind.