Skip to main content

browser-daemon-client

Async Python client for browser-daemon, with nothing but aiohttp: made for Home Assistant integrations and other code that cannot carry Playwright.

import aiohttp
from browser_daemon_client import BrowserDaemon, RunError, step

async with aiohttp.ClientSession() as http:
    bd = BrowserDaemon(
        http, "https://browser.example.org", secret, client="Home Assistant · HR WORKS"
    )
    try:
        res = await bd.run(
            profile="work",
            url="https://hr.example.org/login",
            steps=[
                step.fill("#user", arg="user"),
                step.fill("#password", arg="password"),
                step.click("role=button[name='Sign in']"),
                step.wait_for(".dashboard"),
                step.text(".balance", as_="balance"),
            ],
            args={"user": user, "password": password},
        )
    except RunError as err:
        print(err, err.run.url)  # err.run.screenshot: the tab, as a base64 PNG
    else:
        print(res.result["balance"])
  • run(): a Playwright script (a JavaScript function expression) or steps, in a profile's browser, a session or a throwaway browser. Runs for a profile go to the node that has it. See docs/run.md.
  • overview(), find_profile(), sessions(), session(), create_session(), delete_session(), set_idle_timeout(), tabs(), open_tab(), close_tab(), export_auth() (a page's cookies and storage; never log them).
  • node= sends a request to another node of the mesh through this one.
  • read_secret() reads the cluster secret from its file.

Errors are BrowserDaemonError (with status), and for runs RunError and RunTimeout (with the whole answer in .run).

Releasing

The client has the daemon's version and is released with it: just release-prepare X.Y.Z bumps pyproject.toml with Cargo.toml, and the signed vX.Y.Z tag makes the python-client workflow test, build and publish it to PyPI through trusted publishing (the pypi environment; no token is stored anywhere).

Metadata

Release files for browser-daemon-client 0.10.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 browser-daemon-client 0.10.0
File Size Uploaded Provenance Actions
browser_daemon_client-0.10.0.tar.gz 7.4 kB With provenance Details for browser_daemon_client-0.10.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for browser-daemon-client 0.10.0
File Interpreter ABI Platform Actions
browser_daemon_client-0.10.0-py3-none-any.whl Python 3 none any Details for browser_daemon_client-0.10.0-py3-none-any.whl

Total release size: 13.6 kB

Release files / browser_daemon_client-0.10.0.tar.gz

Download URL browser_daemon_client-0.10.0.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
1363d138e0dcc9456f77bc2da83373fe6df44b9d8a8017e8b9dc1a64d8b1987c
BLAKE2b-256 checksum
How to use checksums
257ed111327745c82999d817c0951cbe89ddf9a460a753c5bf67cd5ec1fa537d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / browser_daemon_client-0.10.0-py3-none-any.whl

Download URL browser_daemon_client-0.10.0-py3-none-any.whl
Size 6.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c25c7ccf06e2f57326517810145411ed067f21ce4d5c36b39d0541d5ce7f2c41
BLAKE2b-256 checksum
How to use checksums
98ce3dec205d2aa269cc278b17ab3978afebfb26c28673c6604df0bd30b002ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Security for browser-daemon-client 0.10.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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for browser_daemon_client-0.10.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

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.

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