irpina / elekloader
git clone https://github.com/irpina/elekloader.git
v0.4.0 · 21d ago
A mod loader for Elektron firmware. You pick mods and supply the stock OS file Elektron publishes for your device. elekloader builds a custom OS file on your own machine, and you flash it the way you flash any OS update.
+3
stars, 24h · #8,227
+~9
stars, 7 days · #12,649
+95
stars, 30 days · #7,383
95
★ total · +9% this week
17
forks · 8 open issues
Star history (as recorded here)
LanguagePython
LicenseGPL-2.0
Created2026-09-26 (27d ago)
Last pushtoday
Watchers2
OwnerUser
Links
README excerpt
# elekloader A mod loader for Elektron firmware. You pick mods and supply the stock OS file Elektron publishes for your device. elekloader builds a custom OS file on your own machine, and you flash it the way you flash any OS update. - **Nothing from Elektron is distributed.** A mod (`.elemod`) carries only its author's bytes, the short instruction fragments needed to hook the OS, and hashes of the stock bytes it expects. Every build starts from your own stock file, recognised by its hash. - **The bootloader is never touched.** Mods can only change the main OS: the file format has no way to say anything else. Each output file is re-read and verified before it is written. So the stock OS file always recovers the device. - **Mods are checked against each other before anything is built.** Two mods may not touch the same bytes, claim the same memory or the same named resource, or leave a requirement unmet. | Device | OS | Status | |---|---|---| | Digitakt (mk1) | 1.53, 1.54 | supported | | Digitakt II | 1.17 | experimental: whole builds (format-1 mods) and linkable mods with its own core (the hook bus's tick, draw, key and encoder events), sealed as the unit checks them; boots in digikit's emulator; core with a key-swap mod works on a unit (Transfer over USB) | | Digitone (mk1) and Digitone Keys | 1.43, 1.44 | supported | | Octatrack (MKI and MKII) | 1.40C | supported: whole builds (format-1 mods); linkable mods with its own core: boots on an MKII, not yet run on an MKI | | Model:Cycles, Model:Samples | 1.13 | supported: linkable mods with their own core (the hook bus's tick, draw, key and encoder events); builds work on both units (Transfer over USB) | | Analog Rytm MKII | 1.73, 1.74 | experimental: linkable mods with its own core, a proof of concept (the hook bus's tick, draw, key, encoder, SETTINGS and render events); builds with the core work on a unit (Transfer over USB) | | other Elektron devices | | planned: see docs/DEVICES.md | ## Get started - **In your browser, nothing to install:** . Drop in your stock OS file, add mods from its shop or your own, build, and download the result. Your files are never uploaded. - **Windows or macOS:** the apps on Releases, with the core mods built in. - **From source, on any system:** Python 3.9 or newer and nothing else: `python -m elekloader`. Each way needs the **stock OS file** for your device, exactly as Elektron publishes it; the `.zip` from Elektron's site works as it is. docs/INSTALL.md says which file each device needs and how each way starts. Then tick your mods and build. Send the `.syx` to the unit with Elektron Transfer, as for any OS update; the Octatrack takes its `.bin` from the card. See docs/BUILDING.md. **If a custom OS will not start:** the bootloader is never changed, so the stock OS file always restores the unit. On a Digitakt mk1, a Digitakt II or a Digitone mk1, hold **FUNC** while powering on for the startup menu, press **TRIG 4** for OS UPGRADE, and send the stock `.syx