All guides
QMK: remap with VIA
Remap live in the browser; changes are written to the keyboard instantly. Works for single and split keyboards.
Last updated 2026-10-15
VIA is the most common remapping tool for QMK keyboards. It's a web app, and every change is saved on the keyboard immediately — no flashing.
You'll need
- ✅ Chrome or Edge (VIA uses WebHID; Safari and Firefox don't support it)
- ✅ A data-capable USB cable
- ✅ If your keyboard isn't built into VIA: its VIA definition file (.json) from the maker
Step 1: connect
- Plug in the keyboard.
- Open usevia.app.
- Click Authorize device +, pick your keyboard in the browser dialog and click Connect.
- When the layout appears, you're connected.
Keyboard not recognized?
VIA ships definitions for many keyboards. If yours isn't detected, load its definition manually:
- Open the Settings tab and turn on Show Design tab.
- In the Design tab, click Load Draft Definition and choose the
.jsonfile from the maker. - Go back to Configure and connect again.
Step 2: change keys
- In Configure → Keymap, pick a layer with the numbers
0123above the layout. - Click the position you want to change in the keyboard view; it highlights.
- Click the new key in the keycode panel below. It takes effect immediately.
- Open a text editor and test it.
Panel categories:
| Category | Contains |
|---|---|
| Basic | Letters, numbers, symbols, function keys |
| Media | Volume, playback, brightness |
| Macro | Macros (edit them in Macros first) |
| Layers | MO(1), TG(1), TO(1) and other layer keys |
| Special | Includes Any, for typing any QMK keycode |
Step 3: back up and restore
- Under Save + Load on the Configure page, click Save Current Layout to export a
.jsonbackup. - Use Load Saved Layout to restore it in one click.
Common problems
- The device list is empty: try another cable; on Linux, add a udev rule for hidraw access.
- Connected but the layout looks wrong: the definition doesn't match the firmware — ask the maker for the matching
.json. - Changes do nothing: check you edited the right layer; look at layer
0for the base keys.
More → Troubleshooting
