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.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.
Accessing the Admin Panel
Navigate to the/admin path on the same host and port as the player page:
http://192.168.1.42:3000, the admin panel is at http://192.168.1.42:3000/admin.
Authentication
Access to the admin panel is gated by an optional password configured insrc/config.json.
| Config key | Default | Behavior |
|---|---|---|
adminPage.password | "" (empty) | No password required; all visitors are auto-authenticated |
adminPage.autoAuthHost | true | When a password is set, automatically authenticates connections from the host device itself (127.0.0.1, ::1, or ::ffff:127.0.0.1) |
- If
adminPage.passwordis""(empty string) → every visitor is auto-authenticated immediately, no prompt shown. - Otherwise, if
adminPage.autoAuthHostistrueand the connecting IP is127.0.0.1,::1, or::ffff:127.0.0.1→ the host device is auto-authenticated without a prompt. - Otherwise → the password prompt is shown. Submitting it emits an
authenticateevent to the/adminSocket.IO namespace; the server verifies the value.
authenticated event back to the client and adds the session to the admin Socket.IO room, unlocking log streaming and command execution.
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.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 theenable / 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 runningpress <key> in the console. Supports the same key names listed on the /keycodes page.
Show Link
Clicking show link runs theuri 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.
List Players
The list button with its dropdown lets you query connected players filtered by:| Option | Shows |
|---|---|
| All players | Every connected client |
| Active players | Players with a name set and not in the waiting room |
| Players in waiting room | Only players currently waiting |
| Nameless players | Players who haven’t entered a username yet |
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.IOresponse 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:| Level | Description |
|---|---|
| error | Major issues such as emulation failures |
| warn | Minor issues such as running on an unsupported OS |
| info | Player actions — keypresses, name changes, etc. |
| http | Connection and disconnection events |
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.