Skip to main content

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. 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

remoboard-1.0.0.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

remoboard-1.0.0-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

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

Hashes for remoboard-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3901a858d3f86fe11cbcc60c2774df8beb526f9f8372753a41c8b600bda31df1
MD5 39f801f9e23a2239202e752994144a46
BLAKE2b-256 b19d85951dd57d5314909e4b29e980d2cd4941d2a518b82ca1dbde4c897c024c

See more details on using hashes here.

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

Hashes for remoboard-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 16156d293fd59a2e90c5a4bc55c342b6c0433a423789730e1284826d1916d5cc
MD5 f5a8e44a8c50e4750bd194f6e13f7697
BLAKE2b-256 6d6eda8833fe7e5bc934cbd914201b1092ca26f086df57a7f2b17028b0f10f9a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page