Migration from SikuliX
OculiX is the active continuation of SikuliX1, which was archived in March 2026 after two decades of community work. This page explains how to bring a SikuliX project to OculiX.
The short version: for 95 % of scripts, you change nothing. Open them, hit run.
What stays the same
Section titled “What stays the same”.sikulibundles open as-is. The format is identical.- The Jython API is 100 % compatible.
from sikuli import *works. - Image files are read with the same conventions and search paths.
- Settings (
Settings.MinSimilarity,WaitScanRate, etc.) keep the same names and defaults. - Robot Framework / JRuby / PowerShell runners are still there.
If you’ve been running SikuliX 2.0.5 in production, the upgrade path is “drop the new JAR in place of the old one.”
What changes — Maven coordinates
Section titled “What changes — Maven coordinates”Old SikuliX:
<dependency> <groupId>com.sikulix</groupId> <artifactId>sikulixapi</artifactId> <version>2.0.5</version></dependency>New OculiX:
<dependency> <groupId>io.github.oculix-org</groupId> <artifactId>oculixapi</artifactId> <version>3.0.3</version></dependency>groupId and artifactId both change. The package layout (org.sikuli.script.*) is preserved so your imports don’t move.
What changes — OpenCV dependency
Section titled “What changes — OpenCV dependency”SikuliX shipped against org.openpnp:opencv. OculiX ships against Apertix, a custom JNA-based OpenCV 4.10.0 build:
<dependency> <groupId>io.github.julienmerconsulting.apertix</groupId> <artifactId>opencv</artifactId> <version>4.10.0-0</version></dependency>If your project explicitly depends on org.openpnp:opencv, replace it with the Apertix dependency. If you didn’t add OpenCV manually (most users), this happens transparently.
What’s new in OculiX (compared to SikuliX 2.0.5)
Section titled “What’s new in OculiX (compared to SikuliX 2.0.5)”These are additions — nothing in the SikuliX API was removed.
| Capability | SikuliX 2.0.5 | OculiX 3.0.3 |
|---|---|---|
| VNC remote screens | Limited | Full stack: VNCScreen, VNCRobot, … |
| Android via ADB | — | ADBScreen, ADBDevice, ADBRobot |
| Native SSH tunnels | — | SSHTunnel with embedded jcraft/jsch |
| PaddleOCR | — | PaddleOCREngine HTTP client |
| OpenCV | 3.x (openpnp) | 4.10.0 (Apertix, JNA) |
| OCR Tesseract | Manual install | Bundled via Legerix |
| Modern Recorder | Basic | Swipe, DragDrop, Wheel, KeyCombo, image lib |
| Workspace / Script Explorer | — | Full workspace management with cards |
| Apple Silicon | Rosetta only | Native (M1/M2/M3) from 3.0.2 |
| Linux fat-jar size | ~ 250 MB | ~ 200 MB (3.0.3 trims 50 MB) |
| Windows fat-jar size | ~ 350 MB | ~ 236 MB (3.0.3 trims 114 MB) |
Universal type() | ASCII only on Mac/Win | UTF-8 via auto-clipboard routing (3.0.3) |
CLI -l … -e | — | Available cross-platform |
| MCP server | — | oculix-mcp-server module |
| Theme system | — | Dark / light with persistent preference |
| IDE auto-recovery | Best effort | Periodic save to ~/.OculiX/recovery/ |
Things to double-check after migration
Section titled “Things to double-check after migration”- Java version — OculiX requires Java 11+. SikuliX accepted Java 8. If you were on 8, upgrade to Temurin 11 or 17 LTS.
- macOS permissions — re-grant Accessibility and Screen Recording to the new Java runtime. macOS treats
oculixide.jaras a different app fromsikulix.jar. - Headless mode — if you ran SikuliX with
-jar sikulixide.jarand a custom display, switch to-cfor console mode in OculiX. - Old
.sikulibundles with embedded Jython 2.5 scripts: still work, butprint "..."may trigger deprecation warnings. Addfrom __future__ import print_functionat the top to silence them.
Side-by-side: a small example
Section titled “Side-by-side: a small example”Same script, both worlds:
# SikuliX 2.0.5from sikuli import *click("button.png")wait("done.png", 5)type("hello\n")# OculiX 3.0.3from sikuli import *click("button.png")wait("done.png", 5)type("hello\n")That’s not a typo — they’re identical.
Need help?
Section titled “Need help?”If a migration hits something unexpected, open an issue on oculix-org/Oculix with:
- Your OculiX version (
java -jar oculixide.jar -v) - Your Java version (
java -version) - The smallest reproducer you can extract
- The full stack trace from the IDE console
SikuliX regressions get top priority on the OculiX bug tracker — see CONTRIBUTING.md.
Credits to the original work
Section titled “Credits to the original work”OculiX exists because of two decades of work by Raimund Hocke and the SikuliX community. The continuation is in the same spirit — open, simple, accessible — and the door stays open for the original author to come back and contribute whenever he wants.