Aller au contenu

Migration depuis SikuliX

OculiX est la continuité active de SikuliX1, archivé en mars 2026 après deux décennies de travail communautaire. Cette page explique comment amener un projet SikuliX sur OculiX.

La version courte : pour 95 % des scripts, vous ne changez rien. Vous les ouvrez, vous lancez.

  • Les bundles .sikuli s’ouvrent tels quels. Le format est identique.
  • L’API Jython est 100 % compatible. from sikuli import * fonctionne.
  • Les fichiers image sont lus avec les mêmes conventions et chemins de recherche.
  • Les Settings (Settings.MinSimilarity, WaitScanRate, etc.) gardent les mêmes noms et valeurs par défaut.
  • Les runners Robot Framework / JRuby / PowerShell sont toujours là.

Si vous faites tourner SikuliX 2.0.5 en production, le chemin de mise à niveau est “balancez le nouveau JAR à la place de l’ancien”.

Ancien SikuliX :

<dependency>
<groupId>com.sikulix</groupId>
<artifactId>sikulixapi</artifactId>
<version>2.0.5</version>
</dependency>

Nouvel OculiX :

<dependency>
<groupId>io.github.oculix-org</groupId>
<artifactId>oculixapi</artifactId>
<version>3.0.3</version>
</dependency>

groupId et artifactId changent tous les deux. Le layout des packages (org.sikuli.script.*) est préservé, donc vos imports ne bougent pas.

SikuliX dépendait de org.openpnp:opencv. OculiX dépend d’Apertix, un build OpenCV 4.10.0 custom basé sur JNA :

<dependency>
<groupId>io.github.julienmerconsulting.apertix</groupId>
<artifactId>opencv</artifactId>
<version>4.10.0-0</version>
</dependency>

Si votre projet dépend explicitement de org.openpnp:opencv, remplacez par la dépendance Apertix. Si vous n’avez pas ajouté OpenCV manuellement (la plupart des utilisateurs), ça se passe de manière transparente.

Ce qui est nouveau dans OculiX (par rapport à SikuliX 2.0.5)

Section intitulée « Ce qui est nouveau dans OculiX (par rapport à SikuliX 2.0.5) »

Ce sont des ajouts — rien n’a été retiré de l’API SikuliX.

CapacitéSikuliX 2.0.5OculiX 3.0.3
Écrans distants VNCLimitéStack complète : VNCScreen, VNCRobot, …
Android via ADBADBScreen, ADBDevice, ADBRobot
Tunnels SSH natifsSSHTunnel avec jcraft/jsch embarqué
PaddleOCRClient HTTP PaddleOCREngine
OpenCV3.x (openpnp)4.10.0 (Apertix, JNA)
OCR TesseractInstallation manuelleEmbarqué via Legerix
Recorder moderneBasiqueSwipe, DragDrop, Wheel, KeyCombo, image lib
Workspace / Script ExplorerGestion complète du workspace avec cartes
Apple SiliconRosetta uniquementNatif (M1/M2/M3) depuis 3.0.2
Taille fat-jar Linux~ 250 Mo~ 200 Mo (3.0.3 retire 50 Mo)
Taille fat-jar Windows~ 350 Mo~ 236 Mo (3.0.3 retire 114 Mo)
type() universelASCII seulement sur Mac/WinUTF-8 via routage automatique par presse-papier (3.0.3)
CLI -l … -eDisponible multi-plateforme
Serveur MCPModule oculix-mcp-server
Système de thèmesDark / light avec préférence persistante
Auto-récupération IDEBest effortSauvegarde périodique dans ~/.OculiX/recovery/
  1. Version Java — OculiX requiert Java 11+. SikuliX acceptait Java 8. Si vous étiez sur 8, passez à Temurin 11 ou 17 LTS.
  2. Permissions macOS — réaccordez Accessibilité et Enregistrement de l’écran au nouveau runtime Java. macOS traite oculixide.jar comme une app différente de sikulix.jar.
  3. Mode headless — si vous lanciez SikuliX avec -jar sikulixide.jar et un affichage personnalisé, passez à -c pour le mode console dans OculiX.
  4. Vieux bundles .sikuli avec des scripts Jython 2.5 embarqués : fonctionnent toujours, mais print "..." peut déclencher des warnings de dépréciation. Ajoutez from __future__ import print_function en haut pour les supprimer.

Le même script, dans les deux mondes :

# SikuliX 2.0.5
from sikuli import *
click("button.png")
wait("done.png", 5)
type("hello\n")
# OculiX 3.0.3
from sikuli import *
click("button.png")
wait("done.png", 5)
type("hello\n")

Ce n’est pas une faute de frappe — ils sont identiques.

Si une migration tombe sur quelque chose d’inattendu, ouvrez une issue sur oculix-org/Oculix avec :

  • Votre version OculiX (java -jar oculixide.jar -v)
  • Votre version Java (java -version)
  • Le plus petit reproducteur que vous puissiez extraire
  • La stack trace complète depuis la console IDE

Les régressions SikuliX sont en priorité absolue sur le tracker de bugs OculiX — voir CONTRIBUTING.md.

OculiX existe grâce à deux décennies de travail de Raimund Hocke et de la communauté SikuliX. La continuité se fait dans le même esprit — ouvert, simple, accessible — et la porte reste ouverte à l’auteur d’origine pour revenir et contribuer quand il le souhaite.