TeleKey is a remote keyboard interface for working on two computers at once. Pressed keys are encrypted and transmitted using Protobuf over a TCP Connection.
- Connect two computers on the same local network
- End-to-end encryption using X25519 and ChaCha-Poly1035
- Cross platform (tested on Windows, macOS and Ubuntu)
Syntax:
$ telekey.exe [OPTIONS]
Upon connecting, you will have to sync the two TeleKey instances using a randomly generated token.
A Telekey Client will receive key events and emulate the key presses.
$ telekey.exe -t 127.0.0.1
By default (without any options), TeleKey will try to connect to 127.0.0.1:8384. And all received keys will be emulated on the system (real key presses).
Telekey Server will listen and send key events to the Telekey Client.
$ telekey.exe -s 0.0.0.0
By default (without any options), TeleKey will listen for clients on all network adapters on port 8384 and will send to the connected client all keys typed in the stdin of the program.
Option Syntax follows the Unix-standard. Combined options and equal-seperated options are accepted.
Usage | Description | Default |
---|---|---|
-t, --target-ip <IP[:PORT]> | [Runs telekey as client] Defines the target address to connect to | 127.0.0.1:8384 |
-s, --serve <IP[:PORT]> | [Runs telekey as server] IP address to start a TCP Listener on | 0.0.0.0:8384 |
-m, --simple-menu | If enabled, server's menu will only show minimal information and only update latency | false |
-c, --cold-run | If enabled, the key presses will be printed to the standard output rather than being emulated | false |
-l, --refresh-latency | Triggers a latency check after n keys. Use 0 to disable latency checks. |
20 |
-u, --unsecure | Unsecure mode. No encryption: use it at your own risk! | false |
-h, --help. | Print help version (list of options and usage) | N/A |
-v, --version | Print version information | N/A |
- Rust version 1.60 minimum (not tested on older versions)
cargo build
- Graphical User Interface
- End-to-end encryption
- Improve End-to-end encryption to prevent key-dictating (+man in the middle) attacks
- Command Line Interface
- Add missing keys
If you have any feedback, please open an issue. If you encounter any bugs or unwanted behaviour, please open an issue.
This projet is open to contributions, feel free to submit your pull requests!