Ask questions, share your layouts and hear about new releases first.
Join the Discord →What's new
Announcements and every Remappr release, newest first. The app's start page shows the same feed.
Pinned
Join the Remappr Discord
The Remappr docs are live
Guides for the builder, the editor and the JSON keymap config, plus a reference for every firmware target.
Open the docs →0.1.0 Latest
✨ New features
demoTry the unlock UI without a keyboardencodersPick knob directions like mod-tap slotsheaderCentre the project links in the top barlockUnlock prompt for action locks, one UnlockPanelnewsShow what's new after an update (#205)newsStart-page news with layouts picked in SettingsrgbPaint every LED under a keyrgbPer-key paint on write-only firmware, optional indicators (#191)sideload"Use board's layout" button (#189)stageDraw encoders as a knob on a key capstageShow icons on encoder knobs, drop the arrow glyphs
🧩 Fixes
connectLet Redux DevTools serialize a Vial connectionconnectLoad firmware clients independentlyconnectShow a new connection with its lock stateconnectShow the client's connect notices (#187)depsMirror the firmware client's XZ decodernewsImport semver relatively so the docs build resolves itprofileSurvive bindings the firmware cannot set on restorergbAsk the firmware client which effects use the colour pickerrgbDrop per-key selection when leaving the Per-key tabsearchDrop the dead tag strip from key label matchingsideloadRe-read the device config after a layout uploadstageDraw knobs where the layout puts them, at cap sizestageStart every session with live view offstart-pageDevice previews show the board, not its bindings
0.0.16
✨ New features
firmwareAutocorrect dictionary editorfirmwareLink-profile editor consuming GET_LINK_LIMITS (N6)firmwareNode & cluster editor modal (§N4b role / §N4c mode-A)firmwareUnicode input-method picker
🧩 Fixes
connectionOnly follow real hardware default-layer changeskeymapMatch key legends after the label-slot split
0.0.15
✨ New features
profileGeneralized backup/restore (ZMK) + per-device auto-connect- Support dialog, Discord release workflow, profile restore, auto-connect
supportAdd "Support this project" dialog with sponsor links
🧩 Fixes
auto-connectShow toggle on first pair, stop reconnect after manual disconnect
0.0.14
🧩 Fixes
buildAdd -linux suffix to the linux tarball artifactbuildDon't package other-OS native prebuilds; fix universal checkbuildExclude .remappr clone cache from packaged app (#171)buildMove platform prebuild excludes to top-level files listbuildRepair broken desktop packages (missing asar deps) + mac download UXbuildRestore missing transitive deps in app.asar (Cannot find module 'ms')macShip Gatekeeper unblock instructions in the DMG and docs
0.0.13
✨ New features
actionsBehavior icons in the action and command dropdownsactionsDropdown tables, tooltips, picker iconsactionsHide non-settable mouse actions from the pickeractionsShow numeric param slots one-based when flagged; unify slot dropdownsbehaviorsConfig-blob conditional (tri-)layers editorbehaviorsConfig-blob hold-tap + mod-morph editorbuilderBinding-picker target for mod-morph def bindingsbuilderSurface Remappr firmware in Communication + exportclusterCluster-diagnostics panel + live role feed (N4b-3)dongleNKRO routing toggle on the dongle landingfirmwareShow the config-blob editors in demo modeheaderWarn when firmware ignores configured features (§7.4.1)keymapFull key details in the cap hover tooltipkeymapRender composite icon legends on keycapskeymapRender composite icon parts as the cap glyphkeymapRender param legends on advanced keycode capsmouseUnify mouse behaviors in the action pickersaveAuto-save setting driven by a save-mode controllertimingConfig-blob timing/defaults editor (§7.4.1)
🧩 Fixes
actionsDon't show the keycode grid for zero-slot behaviorsactionsMake zero-slot behaviors assignable from the picker (#149)actionsRender selected value in param dropdown trigger- Add &bt BT_SEL profile selection (#148) (#150)
buildAd-hoc sign the macOS app to stop the Bluetooth TCC crashbuilderLabel the remappr meta.target familybuildShip universal macOS DMG for Intel + Apple SiliconbuildSource the macOS icon from resources/icon.png- Clear mac traffic lights in the editor sidebar, drop broken KDE Wayland color protocol
configRe-seed config store after every commit / discardconnectionClear the stuck "Connecting" state on a failed or hung connectconnectionDedup serial ports by vid:pid + timeout hung opensdepsAdd @noble/{ciphers,curves,hashes} for firmware auth.tsdepsBump js-yaml to 4.3.0 (GHSA-h67p-54hq-rp68)keymapEllipsis-truncate long param/macro cap legendskeymapShow full key name in tooltip for abbreviated cap glyphsmacNarrow the BLE chooser to OS-connected devicesmacWindow controls, pairing dialogs, universal-build guardpickerShow unsettable macro tiles as display-only with explanatory toastremapprImport identity seam from auth module, not the barrel- Revert "fix(mac): narrow the BLE chooser to OS-connected devices"
- Self-heal the electron binary, inset headers past macOS traffic lights
start-pagePin the top bar instead of scrolling it away
🚀 Performance
canvasDebounce board refits during continuous resizesconfigMark config stale on save, re-seed on demandeditOptimistic key edits + queued undo/redorendererCode-split heavy chunks, scope store selectors, fix hot paths
0.0.12
🧩 Fixes
depsAdd @noble/{ciphers,curves,hashes} for firmware auth.ts (#151)
0.0.11
🧩 Fixes
buildPackage full Electron runtime deps (fix "Cannot find module 'ms'") (#143)
0.0.10
🧩 Fixes
buildStrip usocket on Windows + bsdtar for Linux pacman (#141)
0.0.9
🧩 Fixes
buildUnblock Electron build-release install (usocket + zmk-client) (#139)
0.0.8
🧩 Fixes
buildWindows usocket patch + pnpm electron-binary install (#137)
0.0.7
🧩 Fixes
buildLinux/Windows builds, node 24, package size 534MB→291MB (#135)
0.0.6
✨ New features
- Adding more security to the project and updated readme and notice
buildCloud-build hardening — head_sha polling + encrypted token (phase 9)builderCanvas editing — drag/resize/rotate/marquee + undo/redo (phase 3)builderComplete default board + preset controller-seed + split-aware matrixbuilderController board + pin mapping in the meta formbuilderDesign a board from scratch (grid geometry)builderEdit encoder cw/ccw/press bindings in the inspectorbuilderEditable matrix GPIO pins + add row/columnbuilderExport modal + board library + editor handoff (phase 6)builderFirmware-aware deviceless binding pickerbuilderFree alpha/beta stage gate + blue primary themebuilderFree-form per-key geometry editorbuilderFull-screen shell + start-page restyle (phase 1)builderGuided first-run coachmark tourbuilderHardware definition panel (board + kscan wiring)builderImport-config + saved-builds start options with previewsbuilderInspector parity, cap rendering, per-key GPIO pin + elementbuilderLayout-options editor + visual Vial unlock-key pickerbuilderLeft panel — layers, identity/firmware/matrix/lighting, presets (phase 4)builderLive Monaco JSON config panel (phase 8)builderMatch JSON config panel design to the prototypebuilderPhase 1 — download full project bundle (.zip)builderPhase 1 cloud build — push to GitHub & fetch firmwarebuilderPixel-drag handles + encoder placementbuilderPremium entitlement gate + locked build-from-scratch entrybuilderPresets seed a real base-layer keymap, not pass-throughsbuilderRight inspector + matrix overlay + variants (phase 5)builderSlider value-mapping (ADC analog input)builderSnapping toggle, in-builder settings, start chooserbuilderStart tour on the start chooser, drive the modalbuilderUnify export modal + text-authoritative JSON panelbuilderVisible JSON validation status + searchable All-optionsbuilderWire matrix editor to keys[].matrix + keyboard.matrix (P1 UI)canvasPannable/zoomable stage, press-count heatmap, key tooltipscatalogAdd 7 QMK swap-hands variants as Misc tilescatalogAdd Combos tab; drop vial:macro from action pickercatalogAdd dynamicCatalogStore + behavior capability flagscatalogClarify Locking/Keypad labels and split Language tabcatalogCombine ZMK + QMK keycode names into one canonical catalogcatalogGate behavior-family tiles by Capabilities.behaviors flagscatalogMerge RGB + Backlight into single Lighting tabcatalogMerge ZMK + QMK keycode names into one canonical catalogcatalogPlumb macro overlay description into picker tooltipcatalogSideload ZMK .keymap combos as display-only Combos tilescatalogSurface ZMK runtime macros/combos as catalog tilesconfigBoard hardware → real ZMK kscan + electrical transformconfigBuilder metadata schema fields (phase 2)configConditional layers in keymap schemaconfigConfig store, live edit-sync, and target-aware Download modalconfigCustom hold-tap behaviors (flavor + definition nodes)configExtend ZMK behavior coverage (enum tails, 2-param macros, mod-morph)configGeneralized remappr keymap schema + keycode/diagnostics layerconfigJSON keymap source-of-truth, lower/raise bridge, ZMK overlay + parityconfigKeyboard.controller identity (board/MCU/bootloader) — P2configMinimize config — strip defaults, transparents + round-tripconfigPer-firmware keymap compiler (ZMK / QMK / Keychron)configPer-key encoder bindings + pin/element metadataconfigPer-key matrix [row,col] as first-class config (P1 foundation)configRaise connected ZMK keymap into remappr configconfigValue-carrying lighting (RGB_COLOR_HSB + BL_SET)dialogs,zoomRedesign dialogs and fixed zoomeditorInline tap-dance editor modal from BindingEditoreditorMulti-select, layer peek, toolbar grouping, shortcutsentitlementsDev-build bypass for premium (builder access)exportPer-firmware readiness checklist + simplified ExportPanel — P8- Feat(): added discord server and docs icon
firmware/mockWire encoders/dynamic/macros sub-bundle stubsfirmware/qmk-viaAdd VIA HID adapterfirmware/qmk-vialAdd Vial adapter v2firmware/qmk-vialAdd Vial adapter with on-device def + lock + encoders + dynamic entriesfirmware/qmk-vialMacro V2 codec + MacroEditor UIfirmware/qmk-vialWire dynamic entries through facade + UI editorfirmware/qmk-viaScaffold QMK/VIA adapter stubfirmware/uiAdd FeatureGate wrapper, replace Header capability checksfirmware/uiCollapse lock state to App shell with LockedOverlayfirmware/uiGate UnlockModal on capabilities + render/edit encodersfirmware/uiScope keyDisplayMode per firmware idfirmware/uiStrip ZMK branding from public-facing UIfirmwareAdd mock adapter and adapter contract test suitefirmwareAdd ZmkKeyboardService + ZmkAdapter and registerfirmwareAdded multiple frameworks supportfirmwareConnectDevice constructs ZmkKeyboardService and stores itfirmwareResolve friendly pin labels to flashable kscan/config.hkeycapChanged the keycap design and added styleskeycapsColour-coded keycap system + cap-style/colour settingskeycapUnified RKey keycap anatomy with chord chipskeymapRight-click copy/paste on bound keyskeytest+macrosKey Test mode + unified Advanced bottom sheetlightingRGB underglow simulation across builder, editor & demomodalsTyping-load stats, onboarding coachmarks, start-page previewpickerSeed modifier/enum slot defaults from first listed valueqmkEmit complete keyboard.json — P3 (QMK buildable project)qmkGenerate encoder_map + firmware-aware builder binding codesrgbKeychron launcher parity — per-key paint, indicator light, RGB sheetsettingsMatch the General pane to the prototypestart-pageReal cached keyboard preview on device cards- Unified behavior picker
- Unified versioning system + release pipeline + custom titlebar …
- Unified versioning system + release pipeline + custom titlebar + build slimming
viaEmit VIA definition (KLE keymap + cap colours) in VIA bundle — P4viaLayout options (labels + per-key option) — P7vialKeyboard.vial config + vial.json/config.h emitter + builder security UI — P5workspacesInspector + command-palette assign surfaces, tap-hold builderzmk-exportCover all behaviors from ZMK docs index pagezmkEmit sensor-bindings from per-key encoderBindingszmkFull buildable config + firmware-config editorzmkFull shield scaffold in bundle — P6zmkGenerate real split shields (per-half kscan + offset transform)zmkMatrix-transform overlay, hardware checklist, conditional layers, encoderszmkScaffold peripheral pinctrl on non-nRF boards instead of dropping it
🧩 Fixes
builderCenter the start chooser so the alpha toast doesn't cover itbuilderExpose firmware export for from-scratch boardsbuilderFirmware-aware controller, presets, collapsible panel, readinessbuilderRefresh library list when the modal opensbuilderRender transparent caps + honor Key Header binding-code modebuilderSplit+stagger-aware matrix wiring, scrollbar, split dividerbuildProxy GH artifact download through main; harden cloud-build pathcatalogClassify any non-system ZMK behavior as user macrocatalogKeep slot-bearing ZMK behaviors out of Macros tabciCorrect step indentation in build-release.ymlciPass release PR JSON via env to avoid shell quote breakage- Commented import combos side loading
electronIncrease of electron app sizefirmware/catalogDedup duplicate keycodes via canonical alias mapfirmware/zmkRelease transport stream locks on disconnect + reuse probe RpcConnectionfirmwareSync ZmkKeyboardService cachedKeymap on layer mutations- Fix keyboard design
- Fix modifier selection
- Fix(): removed plans from docs
mockSize demo per-key LEDs to key count- Persist keyboard name on click-connect and unblock release workflow
pickerInclude actionTypes in dispatch useCallback depspickerValidate slot values + smarter auto-advance for hold-tapreleaseRepair release pipeline + reset to 0.0.x versioning (#133)- Removed ai folder
- Removed changelog.md
reviewCorrectness fixes from PR reviewtransportDetect all ZMK serial boards + correct baud + connected-statezoom, themeFixed zoom system and theme system
🚀 Performance
canvasStop per-frame re-renders on the keyboard canvas
