akko TAC87 keyboard software
Remap keys, set the RGB, record macros and change device settings on the akko TAC87. Free and open source. Use it in a Chromium browser with nothing to install, or download the desktop app for Windows, macOS or Linux. Either way it runs entirely on your own machine: no account, and the browser version makes no network requests once the page has loaded.
3 revisions of the TAC87 ship under this name. They are on different protocol families and different controllers, so they are genuinely different hardware and not just a firmware bump. sharkfin does not ask you which one you have: the board reports its own device ID when it is plugged in, and the right command set follows from that.
What sharkfin does with the TAC87
- Remap any key. Click a key on a picture of the board and give it another key, a mouse button, cursor movement, the scroll wheel, a macro or a media control. Base and Fn layers both. 4 onboard profiles. Only the revisions sharkfin has a command set for accept changes (device 2786).
- Lighting. 18 backlight effects with direction options, full RGB colour, brightness and speed, changing live as you drag.
- Per-key colour. Paint individual keys and send the pattern to the board's flash.
- Macros. Record key and mouse sequences with per-event delays into the 50 onboard slots, then bind a key to one.
- Debounce. Adjustable, 1 to 10, on the revisions that have it (device 2735).
- Sleep timers for 2.4 GHz on some revisions and Bluetooth on some revisions, plus deep sleep.
- Edge light. Present on some revisions of this model (device ids 2735, 3200). Where it exists, the edge LEDs get their own effect, colour, brightness and speed.
- Device settings. Windows-key lock, WASD and arrow-cluster swap, backlight off, host-OS auto-detect and a factory reset, all from the Device page.
- Backup. Export everything to a file and restore it later.
- Magnetic switches. Some revisions have them (device 3200). sharkfin does not configure actuation or rapid trigger: the firmware does not answer those commands. Everything else on this page still works.
The picture sharkfin has for the TAC87 knows the board's shape but not yet which internal slot each key lives in, so the first connection includes a check: the drawing is matched against the keymap your own board reports, you confirm it once, and from then on you remap on the picture. Until then the app shows a plain grid. The check exists because two boards can share one picture and still disagree about which slot a key lives in, and a wrong guess would send a remap to the wrong key. sharkfin trusts your keyboard over its own files.
TAC87 at a glance
| Brand | akko |
| Model | TAC87 |
| USB ID | 3151:4010, 3151:5002, 3151:5030 |
| Device ID | 2735, 2786, 3200 |
| Protocol family | gen2, unknown |
| Settings writable | some revisions |
| Drawn layout | after a one-time check |
| Onboard profiles | 4 |
gen2 and yc500 are the two command sets ROYUAN firmware speaks. They reuse the same opcode numbers for different commands, so sharkfin never guesses: the board names itself when it is plugged in, and the command set follows from sharkfin's registry, not from the USB id. A protocol family of “unknown” means sharkfin has not established which command set this revision speaks, which is exactly why it stays read-only.
Connecting
Plug the TAC87 in with a USB cable, or use its 2.4 GHz receiver if it has one. Bluetooth has no configuration channel, so a Bluetooth pairing will not do. Settings are stored on the keyboard itself, so everything you change keeps working wirelessly once you unplug. sharkfin never flashes firmware, so there is nothing here that can brick the board. On Linux, both the browser and the app need a one-line udev rule before they can open the keyboard. And if you are hunting for a polling-rate or report-rate setting: there is none in sharkfin, because this hardware does not expose one.
If the TAC87 stops responding
It happens: the firmware stops answering and the app says the board needs a replug. Typing keeps working the whole time. In order:
- Close sharkfin, or the browser tab. While either is open it keeps trying to reach the board.
- Unplug the cable, wait ten seconds, plug it back in. The board needs to lose power, not just reconnect.
- Fn + Home turns the lighting back on if the backlight looks dead.
- Fn + Esc, held for about three seconds, resets the board's settings.
- Still wrong? Open sharkfin and use Device, then Factory reset.
None of this touches firmware; nothing here can leave the TAC87 unusable.
TAC87 revisions
| Device ID | USB ID | Controller | Family | Writable | Layout |
|---|---|---|---|---|---|
| 2735 | 3151:4010 | yc3121_akko_k0039_1m | unknown | read-only | after a one-time check |
| 2786 | 3151:5002 | yc3123_5087sv3_8k_1k | gen2 | yes | after a one-time check |
| 3200 | 3151:5030 | ry5088_akko_tac87_1m_8k | unknown | read-only | after a one-time check |
Other akko boards
3084BP-ISO-DE · 3084BP-ISO-UK · 3084S · 3087S US · 3098B Plus · 3098S · 3108 V3 · 5075 V3 · 5075 V3 HE · 5075 V5 · 5075 V5 HE · 5075 V5 HE ISO · 5075 V5 HE TMR · 5075 V5 HE-B