Hello fellow keeb lover friends,
After a whole month of research, design and development with the help of Claude Code, I am finally ready to talk to you about Nazg, a client that is aimed at being a substitute to commonly used VIA and Vial applications.
Nazg means “to rule them all”, a funny reference to The Lord of The Rings lore ![]()
Here is the main driver behind this tool development described below.
I use both the VIA and Vial protocols and their clients, both as an ordinary user and as a keyboard PCB designer.
Although they are great tools overall, there are a few things I do not like about them.
The most annoying one is that I need two different protocols and apps to configure the keyboards I have on hand.
VIA and Vial also each have their strengths and weaknesses:
- VIA keyboard definitions are not stored in the firmware:
- This forces users to hunt for the right keyboard definition on vendor sites when VIA has no official support for it.
- Vial has no such issue.
- They do not support the same QMK features, and their implementations can differ: Vial supports a wider range of QMK features than VIA.
- The latest VIA protocol allows custom UI elements linked to protocol extensions; Vial has yet to add this incredible feature.
- VIA requires a web browser (its native application is deprecated):
- Firefox users are left out, and must use Chrome, Edge or Opera.
- Some people prefer native apps, and users should have the choice.
So here what Nazg really is in short:
- It is an open source project under the GPL3 or later licence.
- It is multi-protocol aware:
- For the moment talks with your VIA or Vial keyboards.
- Has the Leyden Jar Diagnostic Tool feature integrated in it (used for Model F and Beam String keyboards).
- I am opened to add new extensions and/or protocols in the future.
- It is multi-platform:
- Windows.
- Linux.
- macOS (Apple silicon starting with M1).
- Web for Chrome, Edge and Opera browsers.
- I tried my best to have a nice and legible UI (well at least for me, please don’t try to be soft on me if you don’t agree
) - All QMK keys/commands can be set in an easy and legible way (no more obscure hexadecimal values to enter).
- Something specific to VIA:
- It contains all official VIA keyboard definitions.
- It also contains a community keyboard definition package of around 700 boards:
- This is to reduce the pain of hunting the definition for your board as much as possible.
- I do plan to update it regularly when new boards come up or by your request.
- And you can also add you own user keyboard definitions.
Tested on the following platforms:
- Windows version for both VIA and Vial.
- Linux version by one user on a Keychron board.
- Web version on Edge browser.
No one tested it yet on macOS Apple silicon.
Please don’t be shy and have a try, and don’t hesitate to send bug reports if you find issues.
The Github page is here.
The link to the latest test release is here.
Here is a link to the web version here.
And a link to the manual here.
See you!

