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.
Metadata
Release files for remoboard 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| remoboard-1.0.0.tar.gz | 5.5 kB | Without provenance | Details for remoboard-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| remoboard-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for remoboard-1.0.0-py3-none-any.whl |
Total release size: 11.6 kB
Release files / remoboard-1.0.0.tar.gz
| Download URL | remoboard-1.0.0.tar.gz |
|---|---|
| Size | 5.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3901a858d3f86fe11cbcc60c2774df8beb526f9f8372753a41c8b600bda31df1
|
|
BLAKE2b-256 checksum How to use checksums |
b19d85951dd57d5314909e4b29e980d2cd4941d2a518b82ca1dbde4c897c024c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|
Release files / remoboard-1.0.0-py3-none-any.whl
| Download URL | remoboard-1.0.0-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
16156d293fd59a2e90c5a4bc55c342b6c0433a423789730e1284826d1916d5cc
|
|
BLAKE2b-256 checksum How to use checksums |
6d6eda8833fe7e5bc934cbd914201b1092ca26f086df57a7f2b17028b0f10f9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|
Security for remoboard 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.