Skip to main content

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. Raises PairingError on 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() -> str
  • await 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)

Source distribution for remoboard 1.0.0
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)

Table of built distributions (wheels) for remoboard 1.0.0
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page