Skip to content

dev0root6/keycoms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

keycoms

Keyboard-to-keyboard real-time communication over WebSockets. No GUI. No middleman app.

How it works

  • Streamers type anywhere on their system → keystrokes are captured and broadcast to all listeners in the room.
  • Listeners receive those keystrokes → injected directly into their active window.
  • Admin (first joiner / room creator) controls who speaks and who listens.

Setup

pip install websockets pynput

Run the server

python3 server.py

Expose via Cloudflare Tunnel:

cloudflared tunnel --url ws://localhost:8765

Run a client

python3 client.py
  • Enter the server URL (e.g. ws://localhost:8765 or your CF tunnel URL)
  • Leave room code blank to CREATE a new room (you become admin + streamer)
  • Enter a room code to JOIN an existing room (you start as listener)

Admin commands (in terminal)

Command Effect
list List all users and roles
mute <id> Set user to listener
unmute <id> Set user to streamer
kick <id> Remove user from room
exit Disconnect

Keys

  • ESC — disconnect from room (streamer)
  • All printable characters, space, enter, backspace, tab are captured and injected.

Project structure

keycoms/
├── server.py   — WebSocket server
├── client.py   — Keystroke capture + injection client
└── README.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages