Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/tinkerer9/collabokeys/llms.txt

Use this file to discover all available pages before exploring further.

CollaboKeys uses macOS CoreGraphics key codes to emulate keypresses on the host machine. Only keys that appear in src/keycodes.js can be sent — any key outside this list is rejected immediately with an “is not supported” message. Each entry in that file maps a key name to its CoreGraphics key code, a human-readable label, an enabled/disabled flag, and the ID of the player currently holding a reservation on it (or null if unclaimed).

Default-Enabled Keys

These keys are active from the moment the server starts. Players can press and reserve them without any admin intervention.
a b c d e f g h i j k l m n o p q r s t u v w x y z
Uppercase letters (AZ) and shifted symbols (!, @, #, $, %, ^, &, *, (, ), _, +, {, }, |, :, ", ~, <, >, ?) are not independent keys in keycodes.js. The client-side alias table in alias.js automatically maps them back to their base keys before the event is sent to the server — for example, Aa, !1, @2. This means pressing Shift+1 in the browser behaves identically to pressing 1: the server receives 1 and the Shift key does not need to be enabled. These aliases cannot be reserved separately from their base keys.
0 1 2 3 4 5 6 7 8 9
- = [ ] \ ; ' , . / `
Key name in keycodes.jsHuman nameDescription
" " (space)spaceSpacebar
EnterreturnEnter / Return key
Key name in keycodes.jsHuman name
ArrowLeftleft arrow
ArrowRightright arrow
ArrowDowndown arrow
ArrowUpup arrow

Default-Disabled Keys

These keys exist in keycodes.js but are disabled when the server starts. They must be explicitly enabled by an admin before players can press or reserve them.
Key name in keycodes.jsHuman name
Shiftshift
CapsLockcaps lock
Backspacedelete
Tabtab
Metacommand
Altoption
Controlcontrol
Escapeesc
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12The following function keys exist in keycodes.js but are not present on standard keyboard layouts:F13 F14 F15 F16 F17 F18 F19 F20
Modifier and function keys are disabled by default because they can trigger system-level shortcuts on the host Mac — for example, Command+Q would quit the active application, and Escape might dismiss the game’s pause menu unexpectedly. Only enable these keys if you are confident they will not interfere with the host’s session.

Enabling and Disabling Keys

Keys can be toggled at any time without restarting the server, either through the admin page or the console.
  1. Open the admin page on any device connected to the same network as the host.
  2. Find the Key action in the controls section.
  3. Select enable or disable from the action dropdown.
  4. Enter the exact key name (e.g. Shift, F1, ArrowLeft) or type all to affect every key at once.
  5. Click Run.
Disabling a key that is currently reserved by a player does not revoke their reservation — it only prevents anyone from pressing it going forward. Use key revoke <keyname> to remove an existing reservation before or after disabling.

Viewing the Keycode Table

You can inspect the full list of keys along with their current enabled status and reservation state at any time.
  • Browser: Visit /keycodes on the server — for example http://192.168.1.10:3000/keycodes — to see a plain-text table of every key, whether it is enabled, and which player (if any) has it reserved.
  • Admin page: Click the List Keycodes button to be redirected to /keycodes.
  • Console: Run the keycodes command to print the same table directly in the terminal.
The table is generated live from the in-memory state of keycodes.js, so it always reflects the current situation — including any enable/disable changes or key revocations made since the server started.

Build docs developers (and LLMs) love