Source: https://mokxi.com/docs/account/switch-from-wokwi-ci
Updated: 2026-11-09

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.

Open the editor All the docs

### Contents

Start here The editor Boards Parts Accounts and plans Signing in Your account and Settings Plans: Free, Pro, Lifetime Pro and Classroom The Pro trial Billing The plan card and Billing in Settings Delete your Mokxi account The Android app The student discount Invites Giving Mokxi as a gift The creator program The Mokxi API The MCP server: Mokxi in your AI app The mokxi command line Simulation tests in CI Switch from Wokwi CI The newsletter Live collaboration Classrooms Lessons and the learning game Hobby builds Troubleshooting Reference

Docs / Accounts and plans / Switch from Wokwi CI
Mokxi team · Accounts and plans

## The two-line change

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

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.

Previous: Simulation tests in CI Next: The newsletter

### On this page

The two-line change What runs unchanged How they compare Pricing

### Other guides

The newsletter The Mokxi newsletter and the other email lists: what each one sends, how you get on them, and how to stop them. Simulation tests in CI Run your Arduino, ESP32 or Pico sketch in the simulator on every push, and fail the build when its output or a pin is wrong. Free for public repositories. The mokxi command line Keep a project in a folder of your own, sync it with Mokxi, and run it from a terminal.
