Python SDK for agentmb — local Chromium runtime daemon for AI agents
Project description
agentmb Python SDK
Python client for the agentmb daemon — local Chromium runtime for AI agents.
Install
pip install agentmb
Or from source (editable):
pip install -e sdk/python
Quick start
from agentmb import BrowserClient
with BrowserClient() as client:
with client.sessions.create(profile="myprofile") as sess:
sess.navigate("https://example.com")
shot = sess.screenshot()
shot.save("/tmp/out.png")
Async:
import asyncio
from agentmb import AsyncBrowserClient
async def main():
async with AsyncBrowserClient() as client:
sess = await client.sessions.create(profile="demo")
async with sess:
await sess.navigate("https://example.com")
result = await sess.eval("document.title")
print(result.result)
asyncio.run(main())
Action methods
| Method | Description |
|---|---|
sess.navigate(url) |
Navigate to URL |
sess.screenshot() |
Capture screenshot → ScreenshotResult |
sess.eval(expr) |
Run JS → EvalResult |
sess.extract(selector) |
Extract text/attrs → ExtractResult |
sess.click(selector) |
Click element |
sess.fill(selector, value) |
Fill form field |
sess.type(selector, text) |
Type char-by-char |
sess.press(selector, key) |
Press key / combo (e.g. "Enter", "Control+a") |
sess.select(selector, values) |
Select <option> in a <select> |
sess.hover(selector) |
Hover over element |
sess.wait_for_selector(selector, state) |
Wait for element visibility state |
sess.wait_for_url(pattern) |
Wait for URL to match glob pattern |
sess.wait_for_response(url_pattern, trigger) |
Wait for a network response |
sess.upload(selector, file_path) |
Upload file to <input type="file"> |
sess.download(selector) |
Click download link → DownloadResult |
sess.handoff_start() |
Switch to headed mode for human login |
sess.handoff_complete() |
Return to headless after login |
sess.cdp_send(method, params) |
Send raw CDP command |
sess.logs(tail) |
Fetch audit log entries |
File upload / download
# Upload
result = sess.upload("#file-input", "/path/to/file.csv", mime_type="text/csv")
print(result.filename, result.size_bytes)
# Download: triggers click, returns base64 file content
dl = sess.download("#download-link")
dl.save("/tmp/report.pdf")
Wait actions
# Wait for element to appear
sess.wait_for_selector("#modal", state="visible", timeout_ms=3000)
# Wait for URL after SPA navigation
sess.wait_for_url("**/dashboard**", timeout_ms=5000)
# Wait for a specific network response (with navigate trigger)
resp = sess.wait_for_response(
url_pattern="/api/data",
timeout_ms=10000,
trigger={"type": "navigate", "url": "https://app.example.com"},
)
print(resp.status_code)
Requirements
- Python 3.9+
- agentmb daemon running (
agentmb start)
Environment variables
| Variable | Default | Description |
|---|---|---|
AGENTMB_PORT |
19315 |
Daemon port |
AGENTMB_API_TOKEN |
(none) | API token if daemon started with one |
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
agentmb-0.1.0.tar.gz
(7.4 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentmb-0.1.0.tar.gz.
File metadata
- Download URL: agentmb-0.1.0.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df3e5c5b321a0f2a8bca9b1ab52a8fcd486b2fa8a88116f6be322c930e3671d7
|
|
| MD5 |
d2c940da14ad31e26e48167993f3c672
|
|
| BLAKE2b-256 |
e55ff3fe9410be8b909d37f5b401db20f937fbf7efe89b02b15ba20a03c9e1d0
|
File details
Details for the file agentmb-0.1.0-py3-none-any.whl.
File metadata
- Download URL: agentmb-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d96ccf9b48d563896352cf992ac282fb170e2116530408729e0af74058e9fa9b
|
|
| MD5 |
901320c1b5499a74a4c10a41a223b707
|
|
| BLAKE2b-256 |
1ba7d80613b27f5f38b0a6a1d6d4e79abf729150fb934a84a452412e2a2ce1d3
|