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 exposes a CLI console on the host’s terminal so the server can be managed without a separate device or browser. Every command typed into the terminal and every command submitted through the admin page’s custom command box is processed by the same handleCommand() function in src/console.js, so both interfaces are fully equivalent.
The terminal console only accepts line input when console.enabled is set to true in src/config.json (the default). The admin page’s custom command box always works regardless of this setting, since it sends commands directly over Socket.IO.

Commands

Syntax: stopAliases: exit, quitDescription: Stops the keyboard emulator and exits the Node.js process. Any connected players and admin sessions are disconnected immediately.Arguments: None.Example:
stop
Syntax: echo <text>Aliases: None.Description: Returns the provided arguments as output, similar to the shell echo command. Useful for testing that the command interface is working.Arguments:
  • <text> — Any text. Multiple words are joined with spaces.
Example:
echo hello world
Output: hello world
Syntax: enable <emulation|reservation>Aliases: eDescription: Enables either keyboard emulation or automatic key reservation globally. When emulation is disabled, no keypresses are forwarded to the OS even if players send them. When auto-reservation is disabled, players cannot claim new keys.Arguments:
  • emulation or e — Enable key emulation.
  • reservation or r — Enable automatic key reservation.
Examples:
enable emulation
enable reservation
e e
e r
Syntax: disable <emulation|reservation>Aliases: dDescription: Disables either keyboard emulation or automatic key reservation globally. Disabling emulation is a quick way to pause all key output to the OS without disconnecting players. Disabling auto-reservation freezes the current key assignments.Arguments:
  • emulation or e — Disable key emulation.
  • reservation or r — Disable automatic key reservation.
Examples:
disable emulation
disable reservation
d e
d r
Syntax: press <key> [press|down|up]Aliases: typeDescription: Emulates a single keypress, keydown, or keyup event on the host OS as if the admin triggered it directly. The key name must exactly match an entry in src/keycodes.js. If the press type is omitted, it defaults to press (a full press-and-release).Arguments:
  • <key> — The key name to emulate. Case-sensitive (e.g. a, Enter, ArrowLeft, F1, for space).
  • [press|down|up] — Optional. The type of keypress event. Defaults to press.
Examples:
press a
press Enter
press ArrowLeft down
press space up
type F1
Syntax: uriAliases: ipDescription: Prints the full server URL, including the host machine’s local IP address and the port the server is listening on. Share this URL with players so they can connect.Arguments: None.Example:
uri
Output: http://192.168.1.10:3000
Syntax: list <all|active|wr|waitingroom|nameless>Aliases: lsDescription: Lists connected players and information about each one, including their IP address, assigned keys, and waiting room status. The waitingroom long form is also accepted as a synonym for wr.Arguments:
  • all — Every connected player.
  • active — Players who have set a name and are not in the waiting room.
  • wr or waitingroom — Players currently in the waiting room.
  • nameless — Players who have not yet set a username.
Examples:
list all
list active
list wr
list nameless
ls all
Syntax: key <revoke|enable|disable> <keyname|all>Aliases: kDescription: Modifies the state of a specific key or all keys at once. Revoking a key removes it from the player who owns it, making it claimable again. Enabling or disabling a key controls whether it can be emulated by any player.Arguments:
  • revoke or r — Remove the key from its current owner.
  • enable or e — Allow the key to be emulated.
  • disable or d — Prevent the key from being emulated.
  • <keyname> — The exact key name (e.g. ArrowUp, Enter, a).
  • all — Apply the action to every key.
Examples:
key revoke ArrowLeft
key disable all
key enable Enter
k revoke all
Syntax: waitingroom <admit|dismiss> <id|all>Aliases: wrDescription: Admits or dismisses a player — or all players — from the waiting room. Admitted players are moved into the active session and notified. Dismissed players are moved back to the waiting room and notified.Arguments:
  • admit or a — Move the player out of the waiting room.
  • dismiss or d — Move the player into the waiting room.
  • <id> — The numeric player ID (visible from list all).
  • all — Apply the action to every player currently in the waiting room.
Examples:
waitingroom admit 3
waitingroom dismiss all
wr admit 7
wr dismiss all
Syntax: keycodesAliases: kcDescription: Prints the full keycodes table to the console output, showing every supported key name, whether it is enabled, and which player (if any) has it reserved. Admin page users are redirected to the /keycodes HTTP endpoint, which displays the same table in a browser tab.Arguments: None.Example:
keycodes
Syntax: logs [combined|error|warn]Aliases: lDescription: Prints the filesystem path to the requested log file and the URL where it can be viewed in a browser via the /logs HTTP endpoint. Defaults to combined if no type is provided. Admin page users are redirected to the corresponding log page in a new browser tab.Arguments:
  • combined (default) — The combined log (errors + warnings + info).
  • error — The error-only log.
  • warn — The warning-only log.
Examples:
logs
logs error
logs warn
l combined

Shorthands / Aliases

All command aliases are handled in the commandCallbacks() function in src/console.js. The following table lists every alias:
CommandAliases
stopexit, quit
enablee
disabled
presstype
uriip
listls
keyk
waitingroomwr
keycodeskc
logsl
Key names passed to press and key must exactly match the names defined in src/keycodes.js. Examples include ArrowLeft, ArrowRight, ArrowUp, ArrowDown, Enter, Shift, F1F20, and a literal space character ( ) for the spacebar. Key names are case-sensitive — arrowleft will not work; it must be ArrowLeft.

Build docs developers (and LLMs) love