Convert your MakeCode Arcade games into a standalone offline executable!
- Python (earliest version tested with is 3.12)
- Node (earliest version tested with is v20)
- Rust (earliest version tested with is 1.86) if building with Tauri
- Clone repo.
- Create virtual environment and install Python dependencies in
requirements.txt
into it. - Install JavaScript dependencies with
yarn
.
Quick start:
- Create a yaml configuration file. See
Racers to Electron.yaml
for an example. - Run the script with
python main.py "examples/Racers to Electron.yaml"
.
A yaml configuration file is used. Check out the examples in the
examples
directory to see how it's used, as it's
self-explanatory. Pass it as the first positional argument to the script.
The script will print the path to the output directory, which changes depending on the output specified.
If the output is set to static
, you will get HTML, CSS, and JS files that you
can serve from a web server. (maybe on your own website?) The script will print
out something like this:
...
dist/assets/index-D3F42Pqm.js 225.78 kB │ gzip: 70.51 kB
✓ built in 532ms
Done in 1.60s.
2025-05-15 20:28:48,660 - __main__ - INFO - Static website files are at C:\Users\ckyiu\Documents\Projects\MakeCode-Arcade-to-App\examples\Racers\racers-website\dist
2025-05-15 20:28:48,660 - __main__ - INFO - Build finished
You will find the HTML, CSS, and JS files at the specified path, where
index.html
is the entry point.
If the output is set to electron
, you will get an executable using the
Electron framework. The script will print out something like this:
...
› Artifacts available at: C:\Users\ckyiu\Documents\Projects\MakeCode-Arcade-to-App\examples\Racers\racers-electron\out\make
√ Running postMake hook
Done in 50.25s.
2025-05-15 20:32:22,652 - __main__ - INFO - Electron app executables are at C:\Users\ckyiu\Documents\Projects\MakeCode-Arcade-to-App\examples\Racers\racers-electron\out
2025-05-15 20:32:22,652 - __main__ - INFO - Build finished
You will find the directory with the executable and supporting files at the
specified path. (all of those files alongside the executable are needed, so
it's recommended to zip up the entire directory to distribute) You will also
find an installer in the make
subdirectory.
This is the recommended option due to the small size and standalone nature of the executable. (~10 mb single executable with Tauri compared to almost 300 mb in files with Electron)
If the output is set to tauri
, you will get an executable using the Tauri
framework. The script will print out something like this:
...
C:\Users\ckyiu\Documents\Projects\MakeCode-Arcade-to-App\examples\Racers\racers-tauri\src-tauri\target\release\bundle\nsis\Racers v1.3.2_1.3.2_x64-setup.exe
Done in 37.90s.
2025-05-15 23:39:14,612 - __main__ - INFO - Tauri app executables are at C:\Users\ckyiu\Documents\Projects\MakeCode-Arcade-to-App\examples\Racers\racers-tauri\src-tauri\target\release
2025-05-15 23:39:14,612 - __main__ - INFO - Build finished
You will find the executable at the specified path. (only the executable is
needed, no supporting files necessary) You will also find installers in the
bundle
subdirectory.