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 admin dashboard is a browser-based GUI that exposes the full set of CollaboKeys server controls without requiring access to the host machine’s terminal. It can be opened on any device connected to the same local network — a phone, tablet, or another laptop — making it easy to manage a session remotely. When CollaboKeys launches as an Electron app, the host machine’s browser opens the admin page automatically.

Accessing the Admin Page

The admin page is served at the /admin path on the CollaboKeys server:
http://<host-ip>:<port>/admin
For example, if the host machine’s IP is 192.168.1.10 and the server is running on port 3000, the full URL is:
http://192.168.1.10:3000/admin
1

On the host machine

The Electron app opens the admin page automatically at startup. You can also find the server URL by running the uri command in the terminal console.
2

On another device

Connect the device to the same local network as the host. Open a browser and navigate to http://<host-ip>:<port>/admin. The host IP and port are displayed in the terminal when the server starts, or you can ask the host to run the uri command.

Authentication

By default, no admin password is set and the admin page is open to anyone on the local network.
When adminPage.password is set to "" (an empty string) in src/config.json, the server automatically authenticates every admin connection — no password prompt is shown.
src/config.json
{
  "adminPage": {
    "enabled": true,
    "password": "",
    "autoAuthHost": true
  }
}
autoAuthHost — When set to true (the default), connections originating from 127.0.0.1, ::1, or ::ffff:127.0.0.1 (the host machine’s own browser) are automatically authenticated without needing to enter a password. This is safe because only someone already at the host machine could connect from localhost. adminPage.enabled — When set to false, all admin Socket.IO connections are immediately rejected with a noAdmin event and disconnected. The controls panel is dimmed and non-interactive.
Without a password configured, anyone on the local network can open the admin page and run any server command — including stopping the program, revoking keys, or admitting/dismissing players. Always set a strong password in adminPage.password whenever CollaboKeys is run on a shared or public network.

Controls

Once authenticated, the Controls panel exposes every server action through a set of buttons, dropdowns, and text inputs. Each control maps directly to a console command — see the Console Commands reference for the underlying syntax.
A free-form text input that accepts any valid console command string. Type the command and press Enter or click enter to send it. The output appears in the Responses panel. This is equivalent to typing the command directly into the host terminal.
list active
key revoke ArrowLeft
waitingroom admit 3
Clicking stop program sends the stop command to the server, which halts keyboard emulation and terminates the Node.js process. The page will lose its Socket.IO connection immediately after.
Two dropdowns let you toggle either emulation or auto-reservation:
  • Enable emulation — allows players to send keypresses that are forwarded to the host OS.
  • Disable emulation — suppresses all keypress forwarding (players can still connect and press keys, but nothing is sent to the OS).
  • Enable auto-reservation — new key presses from a player automatically reserve that key to them.
  • Disable auto-reservation — keys are not automatically claimed; players cannot acquire new keys.
Select your target from both dropdowns and click run.
Manually emulates a keypress on the host OS as if the admin pressed it directly. Type a key name (e.g. a, Enter, ArrowLeft, F1) in the text field and click press. Corresponds to the press <key> console command.
Manage players who are in the waiting room. Select admit or dismiss from the first dropdown, then choose all players or specific player. If targeting a specific player, enter their numeric player ID in the field that appears. Click run to execute.
  • admit — moves the player out of the waiting room so they can start playing.
  • dismiss — moves the player back into the waiting room and notifies them.
Click list after selecting a filter from the adjacent dropdown:
FilterShows
all playersEvery connected player
active playersPlayers who have set a name and are not in the waiting room
players in waiting roomPlayers currently held in the waiting room
nameless playersPlayers who have not yet set a name
Results appear in the Responses panel, including each player’s IP address and reserved keys.
Modify the status of a key across all players. Select an action and a target, then click run:
ActionEffect
revokeRemoves the key from whichever player owns it
enableAllows the key to be emulated (overrides a previous disable)
disablePrevents the key from being emulated by anyone
Choose all keys to apply the action to every key at once, or specific key and type the key name (e.g. ArrowUp, space, Enter).
Clicking list keycodes opens the /keycodes page in a new browser tab. This page displays the full keycodes table: every supported key name, whether it is currently enabled, and which player (if any) has it reserved.
Click show after selecting a log type from the adjacent dropdown. The admin page opens the corresponding log HTTP endpoint in a new tab:
SelectionOpens
all logs/logs (combined log)
error logs only/logs/error
warning logs only/logs/warn
See the Logging page for more details about log files and endpoints.
  • clear responses — empties the Responses panel in the browser. Does not affect the server or log files.
  • clear logs — empties the Logs panel in the browser. Does not delete the log files on disk.

Panels

The admin page has two output panels below the Controls section. Responses panel — Displays the output of every command sent from the admin page. Each entry shows the command string followed by its output. Entries are prepended at the top so the most recent response is always visible first. Use clear responses to reset the panel. Logs panel — Streams live server log events via Socket.IO. Every error, warn, info, and http log entry emitted by Winston on the server is forwarded in real time to all authenticated admin connections. Log entries are colour-coded:
  • Red / bolderror and warn level entries (prefixed with ERROR: or WARNING:)
  • Normalinfo and http level entries (level name is bolded, message is plain)
Use clear logs to reset the panel. This does not delete any log files on disk.
Every button in the Controls panel maps to a console command. See the Console Commands reference for the full command syntax, available aliases, and argument details — useful if you want to use the custom command box for more advanced actions.

Build docs developers (and LLMs) love