Accounts and plans

Switch from Wokwi CI

Move a Wokwi CI workflow to Mokxi by changing two lines. Your project folder, diagram.json, wokwi.toml and scenario files stay as they are.

The two-line change

On GitHub Actions, change the uses: line and the secret the token input reads. Everything else in the step stays.

 - uses: actions/checkout@v4
-- uses: wokwi/wokwi-ci-action@v1
+- uses: mokxiorg/sim-action@v1
   with:
-    token: ${{ secrets.WOKWI_CLI_TOKEN }}
+    token: ${{ secrets.MOKXI_TOKEN }}
     path: .
     timeout: 10000
     scenario: test.scenario.yaml
     expect_text: Ready
     fail_text: panic
     serial_log_file: serial.log

A public repository needs no token: Mokxi CI is free for it, so you can delete the token: line. For a private one, CI comes with Pro (and the student price, Lifetime, Classroom and the trial; an account that still has Ultra keeps it too), so you need a CI token from a Pro account. Make the token under Settings > Developer, and save it as a repository secret named MOKXI_TOKEN. The action passes it to the command line tool, which checks your plan with it. Until December 11, 2026 everybody keeps CI and each run prints a notice.

The action takes Wokwi's input names (path, timeout, scenario, expect_text, fail_text, serial_log_file, elf, diagram_file, timeout_exit_code, args) with Wokwi's meanings: a bare timeout is milliseconds, path: / is the repository root, scenario is read relative to the project folder, and args is one line of options separated by spaces.

From a shell, wokwi-cli <dir> becomes npx @mokxi/cli run <dir>, and the options keep their names (--timeout, --expect-text, --fail-text, --scenario, --serial-log-file, --elf, --diagram-file, --timeout-exit-code, --screenshot-part, --screenshot-time, --screenshot-file, --vcd-file).

What runs unchanged

  • Project files. diagram.json, the sketch and its tabs, libraries.txt, and wokwi.toml. When wokwi.toml names a firmware file that exists (a PlatformIO, ESP-IDF, arduino-cli or Rust build), that build is run, as Wokwi does. When it does not exist, Mokxi compiles the sketch itself, so a repository with only source code works too.
  • Scenario steps. wait-serial, write-serial (text or a list of bytes), delay, set-control, expect-pin (with pin and control, or the newer name key), take-screenshot with save-to and compare-with, and touch, touch-press, touch-move and touch-release on the ILI9341 touch panels.
  • Part ids. A step names a part by its id in your diagram.json.

Three things behave differently:

  • The default exit code for a timeout is 1. Wokwi's is 42. Set timeout_exit_code: 42 (or --timeout-exit-code 42) if your workflow checks for it.
  • Uno-class boards take 65 ms to start. The Uno, Nano and other ATmega boards model the chip's power-on start-up delay, so a pin checked in the first 70 ms or so of a run reads differently from Wokwi. Start a scenario with delay: 100ms or a wait-serial.
  • Screenshots of a whole circuit are SVG. A screenshot of a display part (an OLED, a TFT, a character LCD, e-paper or a Nokia screen) is a PNG of the panel's own pixels, and compare-with checks it against your reference pixel by pixel. A screenshot of any other part is an SVG drawing, and compare-with is not checked for it. Take your reference images again with Mokxi: the first run of a compare-with with no reference file saves its picture there for you to check and commit.

A Wokwi part with no Mokxi equivalent is left out and named in the log, the same as when you import the project into the editor. Importing from other tools lists what comes across.

How they compare

Mokxi Wokwi CI
Where the simulation runs On your CI runner On Wokwi's servers
Compiles the sketch in CI Yes, with the editor's own compiler, cached No, you build it first
Free CI Public repositories, with no limit on runs (they run on your runner) About 50 CI minutes a month (per Wokwi's docs, checked 2026-10-26)
Paid CI Private repositories with Pro; no minute count on your runner Pro, from one seat, 2,000 CI minutes a month
Wokwi scenario files Yes, unchanged Yes
Extra steps press, click, set, wait-pin, expect-toggles (timing), expect-led, expect-probe, expect-display
Display checks expect-display (lit pixels, a region, a pixel, blank) and PNG compare-with PNG compare-with
JUnit report Yes Not in Wokwi's docs
Job summary and annotations Yes: a table of results, each failure on the scenario's line with the last lines of serial output Not in Wokwi's docs
Logic analyzer to VCD --vcd-file --vcd-file
Simulated and wall time Reported for every run
Split across jobs --shard 1/3
Other CI (GitLab, Jenkins, CircleCI) Yes, any machine with Node 18 Yes
Diagram lint mokxi lint wokwi-cli lint
ESP-IDF heap monitoring Not yet Yes
SD card images Not yet Yes
GDB server Not yet Yes
Code coverage Not yet Yes
Custom chips Not yet Yes
Typing into a run from stdin Not yet --interactive

Pricing

Running mokxi run and mokxi test on your own computer is free, with no account. CI is free for public repositories on GitHub and gitlab.com, with no limit on runs: they run on your runner, not ours. A private repository comes with Pro, with 2,000 API minutes a month for mokxi simulate and mokxi run --cloud (an account that still has Ultra keeps CI and its 5,000 minutes).

Wokwi Pro is EUR 25 a seat a month, or EUR 20 a month billed yearly (per wokwi.com/pricing, checked 2026-10-26).

See Simulation tests in CI for the full command and scenario reference.