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.

The CollaboKeys admin panel is a browser-based control interface that gives you full access to server management tools from any device on the local network — not just the host machine. From it you can issue console commands, manage players in the waiting room, control key assignments, toggle emulation, and watch live server logs in real time.

Accessing the Admin Panel

Navigate to the /admin path on the same host and port as the player page:
http://<host-ip>:<port>/admin
For example, if players connect at http://192.168.1.42:3000, the admin panel is at http://192.168.1.42:3000/admin.
You can find the exact server URL — including IP and port — by clicking the show link button inside the admin panel itself, or by running the uri command in the terminal.

Authentication

Access to the admin panel is gated by an optional password configured in src/config.json.
Config keyDefaultBehavior
adminPage.password"" (empty)No password required; all visitors are auto-authenticated
adminPage.autoAuthHosttrueWhen a password is set, automatically authenticates connections from the host device itself (127.0.0.1, ::1, or ::ffff:127.0.0.1)
The server’s authentication logic works in this order:
  1. If adminPage.password is "" (empty string) → every visitor is auto-authenticated immediately, no prompt shown.
  2. Otherwise, if adminPage.autoAuthHost is true and the connecting IP is 127.0.0.1, ::1, or ::ffff:127.0.0.1 → the host device is auto-authenticated without a prompt.
  3. Otherwise → the password prompt is shown. Submitting it emits an authenticate event to the /admin Socket.IO namespace; the server verifies the value.
After a successful authentication, the server emits an authenticated event back to the client and adds the session to the admin Socket.IO room, unlocking log streaming and command execution.
By default, adminPage.password is an empty string, which means anyone on the local network can open the admin panel and take full control of the server. It is strongly recommended to set a strong password in src/config.json before sharing the server URL with players.
adminPage.autoAuthHost only bypasses the password prompt when a password is set. If the password is already empty, everyone is auto-authenticated regardless of IP address.
If adminPage.enabled is false in src/config.json, the server emits a noAdmin event to any connecting admin client and immediately disconnects them. The admin panel displays a disabled notice and all controls become inactive.

Controls

Once authenticated, the Controls section exposes every management action available through the terminal console.

Custom Command Box

A free-form text field that accepts any console command and sends it to the server on submit (or when you press Enter). The response appears in the Responses panel below.

Stop Program

The stop program button terminates the CollaboKeys server process immediately. A “Terminating the process…” message appears in the Responses panel before the connection closes.
Clicking stop program immediately ends the session for all connected players. Use it only when you intend to shut down the server.

Enable / Disable Emulation or Auto-Reservation

Two dropdowns let you switch between enable and disable, and between emulation and auto-reservation, then click run to apply. This maps directly to the enable / disable console commands.

Press a Key Manually

Enter a key name in the text field and click press to emulate a keypress on the host. Equivalent to running press <key> in the console. Supports the same key names listed on the /keycodes page. Clicking show link runs the uri command and displays the full server URL (IP address + port) in the Responses panel — handy for sharing with players.

Waiting Room

Admit Players

Select admit and choose a specific player ID or all players, then click run to let players through to the game.

Dismiss Players

Select dismiss to send one or all players back to the waiting room, blocking their key input until re-admitted.
See Managing the Waiting Room for full details.

List Players

The list button with its dropdown lets you query connected players filtered by:
OptionShows
All playersEvery connected client
Active playersPlayers with a name set and not in the waiting room
Players in waiting roomOnly players currently waiting
Nameless playersPlayers who haven’t entered a username yet
Results appear in the Responses panel with each player’s name, ID, IP address, and assigned keys.

Key Management

A three-part control lets you select an action (revoke, enable, or disable), target (all keys or a specific key by name), and click run. See Key Management for a full explanation of what each action does.

List Keycodes

Clicking list keycodes opens the /keycodes page in a new browser tab, showing a live table of every supported key, its keycode, human-readable name, and current enabled status.

Show Logs

Select a log type — all logs (combined), error logs only, or warning logs only — and click show to open the corresponding log page in a new tab.

Clear Responses / Clear Logs

  • clear responses — empties the Responses panel in the current browser session (does not affect server-side logs)
  • clear logs — empties the Logs panel in the current browser session (does not affect server-side logs)

Responses Panel

Every command run from the admin panel echoes back a response via the Socket.IO response event, which carries two arguments: the original command string and the server’s output text. Responses are prepended to the list (newest at the top) and show both the command that was sent and the server’s reply. Responses persist for the duration of the browser session.

Logs Panel

The Logs panel is a live stream of server-side log messages pushed over Socket.IO. It captures all log levels:
LevelDescription
errorMajor issues such as emulation failures
warnMinor issues such as running on an unsupported OS
infoPlayer actions — keypresses, name changes, etc.
httpConnection and disconnection events
Log entries are color-coded: messages marked good appear in green, bad in red, and bold messages are used for key-press notifications. The Logs panel can be cleared with the clear logs button, but this only affects the admin panel’s display — log files on the host filesystem are unaffected.
The admin panel connects over the Socket.IO namespace /admin. Commands are sent as a command event; the server processes them and returns a response event with (command, output). Log messages are streamed as log events pushed to all sessions in the admin room.

Build docs developers (and LLMs) love