SikuliX and Oculix Documentation¶
SikuliX now is Oculix¶
RaiMan has finally stopped development in 2025. Great thanks to Julien Mer, who has taken over the further dev as Oculix
- Document maintained by
from 2026: Julien Mer
until 2025: Raimund Hocke aka RaiMan.
For any question, possible bugs and enhancement requests use the issue tracker on GitHub .
How to use this document¶
SikuliX at the top supports scripting via SikuliX IDE (a basic script editor to load, edit, save and run scripts including the creation/organization of the needed images for your visual workflow).
Supported scripting languages:
Python (language level 2.7) supported by the Jython interpreter.
Ruby (language level 1.9/2.0) supported by the JRuby interpreter.
… and more
If you are new to programming, you can still enjoy using SikuliX to automate simple repetitive tasks without learning one of the supported scripting languages using the SikuliX IDE.
A good start might be to have a look at the tutorials.
If you plan to write more complex scripts, which might even be structured in classes and modules, you have to dive into the Python Language, the Ruby Language.
Note
Modules available for Python or Ruby might not be available for the SikuliX environment, since Jython and JRuby are based on Java as SikuliX as well. Modules that refuse to work with SikuliX most probably use or reference native code and/or native libraries. So before trying to use any non-standard modules or extension packages, you have to check, wether they are supported in the SikuliX environment.
Note
… on Java usage: The features in SikuliX at the bottom line are implemented with Java. So you might as well use SikuliX at this Java API level in your Java projects or other Java aware environments (see how to). Though this documentation is targeted at the scripting people, it contains basic information about the Java level API as well at places, where there are major differences between the two API level.
Each chapter in this documentaton briefly describes a class or a group of methods regarding their basic features. General usage information are provided and hints, that apply to all methods in that chapter. We recommend to read carefully before using the related features.
If you are totally new with Sikuli, it might be a good idea to just read
through this documentation sequentially. An alternative way might be to jump to the
chapters that you are interested in by scanning the table of contents.
A way in the middle would be reading the core classes in this sequence:
Region, then Match, and finally Screen.
After that, you can go to any places of interest using the table of contents or use the Index to browse all classes, methods and functions in alphabetical order.