Type into a phone running the Remoboard keyboard from Python — official client for the Remoboard WebSocket protocol.
Project description
remoboard (Python)
Official Python client for Remoboard — type into a phone running the Remoboard keyboard, from code.
It connects to the WebSocket server the Remoboard keyboard extension hosts on the phone and speaks the versioned JSON protocol (v1).
Install
pip install remoboard
Requires Python 3.9+ (depends on websockets).
Quick start
On the phone: switch to the Remoboard keyboard. It shows a URL like http://192.168.1.20:7777
and a PIN.
Async
import asyncio
from remoboard import RemoboardClient
async def main():
async with RemoboardClient(host="192.168.1.20", pin="482103") as rb:
await rb.type("Hello 世界 👋")
await rb.enter()
await rb.type("second line")
print(await rb.get_clipboard())
asyncio.run(main())
Sync (no asyncio)
from remoboard import RemoboardSync
with RemoboardSync(host="192.168.1.20", pin="482103") as rb:
rb.type("Hello 世界")
rb.enter()
API
RemoboardClient(host, pin, port=7777, pair_timeout=8.0, on_context=..., on_quickwords=..., on_clipboard=..., on_info=...)
Async client; also an async context manager (async with).
await connect()— open + pair. RaisesPairingErroron a wrong PIN.await type(text)— insert text at the cursor (any Unicode).await enter()/await backspace()await move("left"|"right"|"up"|"down")await set_clipboard(text)/await get_clipboard() -> strawait set_quick_words(list)/await handoff(text)/await ping()await close()
The optional on_* callbacks fire from the receive loop:
on_context(before, after), on_quickwords(list), on_clipboard(text), on_info(text).
RemoboardSync(host, pin, port=7777, **kwargs)
Blocking wrapper backed by a private event loop and a context manager (with). Same
methods without await (get_clipboard() returns the string directly).
Notes
- The phone and your machine must be on the same network and able to reach each other.
- The server drops a connection after 5 wrong PINs.
- The protocol is also implemented by the Node client and the MCP server.
License
MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file remoboard-1.0.0.tar.gz.
File metadata
- Download URL: remoboard-1.0.0.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3901a858d3f86fe11cbcc60c2774df8beb526f9f8372753a41c8b600bda31df1
|
|
| MD5 |
39f801f9e23a2239202e752994144a46
|
|
| BLAKE2b-256 |
b19d85951dd57d5314909e4b29e980d2cd4941d2a518b82ca1dbde4c897c024c
|
File details
Details for the file remoboard-1.0.0-py3-none-any.whl.
File metadata
- Download URL: remoboard-1.0.0-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16156d293fd59a2e90c5a4bc55c342b6c0433a423789730e1284826d1916d5cc
|
|
| MD5 |
f5a8e44a8c50e4750bd194f6e13f7697
|
|
| BLAKE2b-256 |
6d6eda8833fe7e5bc934cbd914201b1092ca26f086df57a7f2b17028b0f10f9a
|