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

Bump version in pyproject.toml, commit, and push a signed tag python-vX.Y.Z: the python-client workflow tests, builds and publishes it to PyPI through trusted publishing (the pypi environment, tags python-v* only; no token is stored anywhere).

Metadata

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

Built distribution (wheel)

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

Total release size: 13.5 kB

Release files / browser_daemon_client-0.1.0.tar.gz

Download URL browser_daemon_client-0.1.0.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
4d810bb8b20c2f98a17edda2e893de80e113015724c8206f1fa7cde026009bed
BLAKE2b-256 checksum
How to use checksums
20d121fcdf7ec9eb3909d6bd4b4ec5972203644ec2252651a0ab15c7a647ecf0
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.1.0-py3-none-any.whl

Download URL browser_daemon_client-0.1.0-py3-none-any.whl
Size 6.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
50b9d28d318be764637b80ed51f5695e9ab81745738ccddc83001357c46fc8d5
BLAKE2b-256 checksum
How to use checksums
97b062771cced6c08467bea043d717fe0ee0eb1a72f375c7cfd92a41ed3dc528
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.1.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.1.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