Skip to content

Roadmap ​

Remappr is a universal device manager: one app to connect, remap, light up, and build your devices — across firmwares. Today it speaks ZMK, QMK, VIA, Vial and Keychron; the architecture is deliberately pluggable so more firmwares can join (see Future firmwares).

Status: ✅ Done 🚧 In Progress 🗓️ Planned 🔮 Future

Two surfaces

Remappr has a live editor (edit a connected board over the ZMK Studio / VIA protocol) and a builder + config compiler (design a board and export firmware project files). A feature can be done on one and not the other — ZMK's compile-time behaviors (combos, macros, tap-dance, encoders) are fully authored in the builder/compiler but cannot be edited live on a board, by protocol design.

At a glance ​

AreaStatus
Keyboard Builder✅ DoneDesign a board end-to-end
Config & compilers✅ DoneOne config → 4 firmwares
Editor tools✅ DoneHeatmap, key test, RGB paint
Live editing — ZMK✅ CoreNarrow by protocol
Live editing — QMK/Vial/Keychron✅ BroadRich VIA/Vial surface
Build & flash pipeline🚧 PartialCloud build works; flasher planned
Future firmwares🔮 FutureFirst-party Remappr Firmware

Firmware support matrix ​

FirmwareLive editorBuilder / exportStatus
ZMK (wireless, BLE)✅✅Supported
QMK✅✅Supported
VIA✅✅Supported
Vial✅✅Supported
Keychron✅✅Supported
Remappr Firmware (first-party) ✨——🔮 Future

More firmwares can be added over time — the adapter + compiler architecture is built for it. None besides Remappr Firmware are on the plan today.


Keyboard Builder ​

The builder is feature-complete for designing a board.

FeatureStatus
Full-screen shell (toolbar · panels · canvas · inspector)✅
Start from preset · KLE import · ortho grid · blank✅
Layout editing — drag / resize / rotate, snap & free-form✅
Matrix wiring — per-key row/col, overlay, pin labels, auto✅
Layers — add / duplicate / delete / rename / reorder✅
Firmware-aware binding picker✅
Identity & hardware form✅
Lighting — underglow + backlight✅
Encoders & analog sliders✅
Layout variants / VIA layout options✅
Save to / load from a keyboard library✅
JSON config panel (Monaco + schema)✅
Export & build modal✅
Guided coachmark tour✅

Config & multi-firmware compilers ​

The generalized config and compilers.

FeatureStatus
Firmware-agnostic keymap config✅
Normalize / serialize round-trip✅
Zod validation + generated JSON Schema✅
ZMK compiler — .keymap + .overlay, split✅
QMK compiler — keymap.c + keyboard.json✅
VIA definition · Vial definition (UID + unlock)✅
Project bundle — repo + GitHub Actions + README✅
Capability gating · readiness · pin maps✅
QMK C-scaffolding for combos / macros / tap-dance🗓️

INFO

The QMK family currently emits warnings + KC_NO placeholders for combos, macros and tap-dance in keymap.c — those behaviors are fully supported on ZMK export and on live Vial. Generating the C scaffolding is the open item.

Build & flash pipeline ​

StageStatus
Cloud build — export a ready-to-push project; GitHub Actions builds the artifact✅
One-click GitHub build (REST client + artifact proxy exist; not yet wired to UI)🚧
In-app flasher (UF2 / DFU)🗓️
In-app local toolchain build🗓️

ZMK live editor ​

FeatureStatus
Real-time keymap changes (no reflash)✅
USB/serial (CDC-ACM) + BLE (BlueZ) transports✅
Key / behavior assignment✅
Physical-layout selection · layer rename / add / reorder / count✅
Device lock / unlock (state observed; unlock by combo)✅
Basic hold-tap property config🚧
Live tap-dance/macro steps · live combos · live conditional layers🗓️
Live encoder assignment · host-locale · devicetree import round-trip🗓️
New behavior / new layout creation on a live device🔮

All ZMK bindings (key/layer/output/lighting/power/mouse) and composite behaviors (hold-tap, tap-dance, macros, mod-morph, sensor-rotation) are

✅ in the builder + compiler — see

Actions. Live on-device editing of compile-time behaviors is limited by the ZMK Studio protocol.

QMK / VIA / Vial / Keychron live editor ​

FeatureStatus
Raw-HID / VIA transport · layout sideload✅
Key / layer / modifier / media assignment · layer switching · one-shot mods✅
Mouse keys (movement / buttons / wheel)✅
Vial: tap-dance · combos · key overrides · macros · encoders · alt-repeat · lock✅
VIA RGB underglow effect + color✅
Keychron: per-key RGB · mixed-region RGB · wireless (LPM/NKRO/factory)✅
Keychron: dynamic debounce / report-rate / snap-click✅
Bootmagic · full EEPROM reset · QMK Settings panel🗓️
Backlight-brightness · Auto-Shift · Caps-Word · One-Shot config panels🗓️

Editor tools ​

FeatureStatus
Heatmap · live view · key test (HW matrix + OS fallback)✅
Per-key RGB painting (Keychron / per-key QMK)✅
Typing load stats · wireless & advanced settings panels✅
Undo / redo · save / discard pending changes✅

App-level ​

FeatureStatus
Electron shell✅
Firmware adapter abstraction (plug-in per vendor)✅
Capability-gated UI✅
Keymap import / export (Remappr JSON config)✅
Auto-save ⇄ manual save, per firmware family✅
Per-device auto-connect on launch✅
Local profile backup & restore (ZMK)✅
Read-only view of nodes behind a dongle✅
Editing a node behind a dongle🗓️
Cloud sync / backup · profile sharing🗓️

Future firmwares ​

✨ The north star: Remappr Firmware

The long-term vision is a first-party Remappr Firmware — a native firmware the manager controls end-to-end. Third-party protocols cap what can be edited live (ZMK Studio can't author combos, macros, tap-dance, encoders or new behaviors on a connected board; VIA/Vial vary by build). A firmware designed alongside the app removes that ceiling: everything you can design in the builder becomes editable on the device in real time, from one config. Until then, every feature lands on the firmwares below.

🔮 Future — early vision, no ship date yet.

Remappr's goal is to be firmware-agnostic. Two extension points make new firmwares tractable:

  • A firmware adapter for the live surface — probe a connected device, expose a KeyboardService with capability-gated facades. The UI adapts automatically.
  • A compiler Strategy for the export surface — lower the generalized config to that firmware's project files, registered in the capability matrix.

On the plan:

FirmwareNotesStatus
Remappr Firmware ✨First-party firmware — full live control, no protocol ceiling🔮 Future

No other firmwares are planned right now — but thanks to those two extension points, new ones (a CircuitPython firmware, a vendor's VIA/Vial channels, bare HID, …) can be added if demand appears. Want to add one? See Adding a firmware target.


The authoritative, per-behavior status table also lives in the project README.

Released under the Apache-2.0 License.