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.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 Page
The admin page is served at the/admin path on the CollaboKeys server:
192.168.1.10 and the server is running on port 3000, the full URL is:
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.Authentication
By default, no admin password is set and the admin page is open to anyone on the local network.- No password (default)
- Set a password
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
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.
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.Custom command box
Custom command box
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.
Stop program
Stop program
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.Enable / Disable dropdown
Enable / Disable dropdown
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.
Press key
Press key
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.Show link
Show link
Clicking show link runs the
uri command and prints the full server URL (IP address and port) in the Responses panel. Share this URL with players so they can join.Waiting room
Waiting room
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.
List players
List players
Click list after selecting a filter from the adjacent dropdown:
Results appear in the Responses panel, including each player’s IP address and reserved keys.
| Filter | Shows |
|---|---|
| all players | Every connected player |
| active players | Players who have set a name and are not in the waiting room |
| players in waiting room | Players currently held in the waiting room |
| nameless players | Players who have not yet set a name |
Key action
Key action
Modify the status of a key across all players. Select an action and a target, then click run:
Choose all keys to apply the action to every key at once, or specific key and type the key name (e.g.
| Action | Effect |
|---|---|
| revoke | Removes the key from whichever player owns it |
| enable | Allows the key to be emulated (overrides a previous disable) |
| disable | Prevents the key from being emulated by anyone |
ArrowUp, space, Enter).List keycodes
List keycodes
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.Show logs
Show logs
Click show after selecting a log type from the adjacent dropdown. The admin page opens the corresponding log HTTP endpoint in a new tab:
See the Logging page for more details about log files and endpoints.
| Selection | Opens |
|---|---|
| all logs | /logs (combined log) |
| error logs only | /logs/error |
| warning logs only | /logs/warn |
Clear responses / Clear logs
Clear responses / Clear logs
- 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. Everyerror, 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 / bold —
errorandwarnlevel entries (prefixed withERROR:orWARNING:) - Normal —
infoandhttplevel entries (level name is bolded, message is plain)