Skip to content
Version 2 of Sakuli E2E-Testing and Monitoring Platform.
Branch: master
Clone or download
Latest commit 121a6cb Jun 12, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.build Release/v2.0.0 rc1 (#28) Apr 12, 2019
.github [skip travis] (#33) Updated wording Apr 13, 2019
.vscode extended infra and added travis build info Nov 19, 2018
packages Updated package-lock Jun 11, 2019
.DS_Store fixed tests Mar 5, 2019
.coveralls.yml running ci tests global and publish coverage results to coveralls Dec 6, 2018
.gitignore tests are working Apr 4, 2019
.npmignore Release/v2.0.0 rc1 (#28) Apr 12, 2019
.travis.yml running docker container detached May 21, 2019 Added changelog Jun 11, 2019 (#38) Added code of conduct May 24, 2019 [skip travis] updated readme May 19, 2019
greenkeeper.json chore: add Greenkeeper config file Dec 6, 2018
jest.config.base.js running ci tests global and publish coverage results to coveralls Dec 6, 2018
jest.config.js adapt project local jest configs Apr 18, 2019 Introduced separate integration test config and updated Travis setup Apr 8, 2019
lerna.json v2.0.1 Jun 11, 2019 before automatically change package.json files Nov 18, 2018
package-lock.json Updated package-lock Jun 11, 2019
package.json add auto publishing on master branch Apr 19, 2019 Fixed coverage path Apr 15, 2019
tsconfig.json enable sourcemap generation for ts -> js Apr 25, 2019


Build Status Greenkeeper badge Coverage Status SonarCloud Alert Status

Why Sakuli 2?

In the past we encountered a lot of issues with the architecture of Sakuli. But first and foremost the inactive development of Sahi and its deep integration into Sakuli was one of the main reasons to rethink our technology stack.

So we decide to create a brandnew platform which allows users to test and monitor their systems and developers to extend the platform to their own needs.

What is the new Stack of Sakuli2?

We started to make a complete core code rewrite based on NodeJs and Typescript.

  • Node.js because we wanted the same language for our platform and testcases (Sakuli was written in Java while testcases where executed in a modified version of RhinoJs-Engine)
  • Typescript to provide clear interfaces for third-party devs.

We also replaced the engines for web- and native checks:

  • Sahi is replaced by Webdriver / Selenium
  • Sikuli is replaced by nut.js

while we try our best to keep the sakuli api backwards compatible.

What can I expect from Sakuli2... a user / tester

Expect the full power of Sakuli, which means testing and monitoring systems either in web or native. a developer

Use the full power of typescript, nodejs and their corresponding ecosystems.



npm i @sakuli/cli


yarn add @sakuli/cli

will install Sakuli and its required dependencies.

One of Sakulis core components, nut.js requires OpenCV. The installation process comes with a pre-built version of OpenCV for the respective target platform (via opencv4nodejs). It's not required to manually build OpenCV, but the installation process has some 3rd-party dependencies.

Please make sure to also install all required peer dependencies:

The installation process is an open issue and will be enhanced in the near future, so using Sakuli becomes even more enjoyable!


To start developing Sakuli 2 some setup on your workstation is required.

  • Make sure to have docker installed and started
  • Make sure to execute docker pull selenium/standalone-chrome-debug before you start developing.

Updating dependencies

Long story short: npm run update

As this is a multi module project using lerna, dependency updates have to be consistent for the whole project. To achieve this, we use the lerna-update-wizard and added the npm script npm run update.

You can’t perform that action at this time.