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 Playwrightscript(a JavaScript function expression) orsteps, 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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.