日本語
Desktop App Available Free

CoCoKey

A layer HUD for your QMK / VIA / Vial keyboard. An always-on-top overlay that shows which layer your keyboard is on, what every key does on that layer, and how to get to the other layers.

Free · Windows 10 / 11 · Version 0.1.0

Stop keeping your layers in your head

On a keyboard with layers, you keep track of which layer you are on and what each key types. CoCoKey keeps that on screen for you, together with the keys that take you to the other layers.

It reads the keymap straight from the keyboard, so there is nothing to configure: plug in a Vial or VIA keyboard and the HUD draws it.

Features

Live layer tracking

Follows MO, TO, TG, OSL, TT, LT, DF and tap dances by watching the switch matrix, or uses the exact state if the firmware reports it.

Real key positions

Vial keyboards are drawn from the layout stored in their firmware. VIA keyboards (including ones set up with Remap) use VIA’s public definition catalog, or a definition file you drop on the window.

Plain keyboards too

When you type on an ordinary keyboard, the HUD switches to a standard US or JIS layout and shows Shift and held keys.

Macros and how to switch

Shows what every macro does, on the keys and in a full list. Lists every key on the current layer that changes the layer, including each tap dance gesture (tap / hold / double tap).

Pressed keys light up

Keys that fall through to a lower layer are shown dimmed. Turn on “Highlight pressed keys” to dim the board and light up only the keys you press.

Mouse layers

Keyboards that jump to a mouse layer when their built-in trackball or trackpoint moves are followed too: Svalboard, Keyball, cocot, Charybdis / Dilemma, torabo-tsuki and mtk64erp. Where the keyboard ships with the feature off, switch it on for that keyboard in the menu.

The HUD follows the keyboard you type on

CoCoKey tells which keyboard you typed on last. Type on a Vial or VIA keyboard and it shows that keyboard; type on an ordinary keyboard and it switches to a standard US or JIS layout.

Typing on a US keyboard. Holding Shift shows the shifted characters. No sound.

Usage

Start CoCoKey and connect the keyboard; it is picked up automatically.

ActionHow
Movedrag the top bar
Resizedrag any edge or corner
Preview another layerclick its number in the top bar (click again or press Esc to go back)
Rename a layerdouble-click the layer name
Macro list“M” button
Keep on toppin button
Add a VIA definitiondrop the .json file on the window
Settings“⋯” button
Light up only the keys you press“Highlight pressed keys” in the settings or the tray icon menu
Open CoCoKey when you sign in to Windows“Start with Windows” in the settings (off at first)
Click-through, pause, reload, quittray icon menu

Opacity is adjustable too.

Download and requirements

  1. Download CoCoKey_0.1.0_x64-setup.exe from the Releases page on GitHub.
  2. Run it. No administrator rights are needed; CoCoKey is installed for your Windows user only.
  3. Start CoCoKey and connect the keyboard.

To remove it, open Settings → Apps in Windows and uninstall CoCoKey.

Operating systemWindows 10 / 11 (64-bit)
Layer trackingA keyboard running Vial or VIA firmware. Firmware older than QMK 0.19 is supported
Vial keyboardsMust be unlocked in Vial (keyboards built with VIAL_INSECURE are always unlocked)
NetworkOnly to download a VIA keyboard’s layout definition
PriceFree
LicenseGPL-3.0 (the firmware add-on is GPL-2.0 or later)
Latest version0.1.0 (released 2026-11-14, 2.3 MB)

FAQ

Does it work with VIA keyboards set up with Remap?

Yes. The layout definition is downloaded from VIA’s public catalog by the keyboard’s USB id. If your keyboard is not in the catalog, drop its VIA JSON file (as distributed for VIA / Remap) onto the window.

Can I keep Vial or VIA open at the same time?

While the Vial or VIA desktop app is running, CoCoKey stops talking to the keyboard and reloads the keymap when it closes.

Web configurators (Vial web, VIA web, Remap) cannot be detected. Choose Pause from the tray menu before editing and Reload keymap afterwards.

The layer does not change when I press a key

Unlock the keyboard in Vial. Vial blocks reading the switch matrix while locked.

Layer tracking by key presses is a replay, so combos, key overrides and custom firmware code that change layers are not seen. Use the firmware extension for exact tracking.

About the firmware extension

Does CoCoKey record what I type?

No. To tell which keyboard you typed on last, CoCoKey listens to raw keyboard input. It only keeps the set of keys that are held right now; nothing is recorded or saved. Nothing is written to the keyboard.

The only network access is downloading a VIA keyboard’s layout definition from VIA’s public catalog (usevia.app), by the keyboard’s USB id.

Some key labels look wrong

Labels assume a US keyboard layout in the operating system.

Download and support

The source code is on GitHub.
License: GPL-3.0
Copyright © 2026 Pifto Works