CollaboKeys is designed for cooperative play among trusted participants on a shared local network. Its core mechanic — letting remote players emulate keypresses on the host Mac — is also its primary security concern. Every player who connects and claims keys gains real-time keyboard access to whatever application is in focus on the host machine, limited only to their assigned keys. Hosts should understand these risks before starting a session.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.
Key Risks
Players can type on the host Mac
A player is limited to the keys they have reserved. However, since key assignment is first-come-first-served and there is no default cap on how many keys a player can claim, a single player could theoretically reserve every key on the board and type anything in any application. The host should always monitor what players are doing on screen.The admin page has no password by default
The admin page (/admin) is accessible to anyone on the local network. By default, adminPage.password in config.json is an empty string, which means no password is required. Any device on the same network can open the admin page and send console commands, including stop (which terminates the process), key revoke all, or disable emulation.
CollaboKeys is not code-signed or notarized
CollaboKeys is not signed or notarized through Apple’s Developer Program. This means:- macOS Gatekeeper will block the app on first launch with a “damaged and can’t be opened” message.
- Users must manually remove the quarantine attribute (
xattr -dr com.apple.quarantine /Applications/CollaboKeys.app). - There is no Apple-verified identity attached to the binary.
Recommended Mitigations
Set an admin page password. Opensrc/config.json and set adminPage.password to a non-empty string:
player.waitRoomWhenJoined to true in config.json so that new players enter a waiting room and cannot type until the host admits them:
waitingroom admit <id> console command or the admin page to let in players you recognise.
Limit keys per player. Set player.maxReservedKeys to a positive integer to cap how many keys any one player can claim:
0 (the default) means no limit.
Monitor the admin panel during sessions. Keep the admin page open on the host device or a second device. The live log stream shows every keypress by name and player, so suspicious activity is visible in real time.
Only run on trusted networks. CollaboKeys binds to 0.0.0.0, making the server reachable by any device on the network. Avoid running it on public, shared, or untrusted Wi-Fi.
Emergency Stop Procedures
If a malicious or unexpected player starts typing on the host Mac, use one of the following methods to stop CollaboKeys immediately, in order of preference:Use the admin page
If the admin page is open on any device, navigate to the Controls section and click the stop button. This sends the
stop command to the server, which terminates the process cleanly.Quit via the Dock
Right-click (two-finger-click) the CollaboKeys icon in the Dock and select Quit. The Electron app will shut down and the server will stop.
After an emergency stop, review
logs/combined.log (or visit /logs while the server is running) to see which player IDs and IP addresses were connected and what keypresses were sent during the session.Reporting Security Vulnerabilities
If you discover a security vulnerability in CollaboKeys, please do not open a public GitHub issue. Vulnerabilities should be kept private until a fix is available. Instead, email the maintainer directly at makermax101@gmail.com with the following information:- PROJECT: The repository URL (
https://github.com/tinkerer9/CollaboKeys) - PUBLIC: Whether this vulnerability has already been disclosed or discussed publicly, and where
- DESCRIPTION: A precise description of the vulnerability, with as much detail as you are able and willing to provide
SECURITY.md.