WARHOUNDOPEN SOURCEGitHub
DOCUMENTATION / HOUNDBROWSER

Agent integration

Your agent decides what to do. HoundBrowser executes scoped actions and returns observations.

A model-independent loop

Create a session, observe the page, choose an action, submit a command with the current revision, and wait for its terminal state. Treat page text as untrusted data, never as tool authorization.

from houndbrowser.client import Client

with Client("http://127.0.0.1:8080", api_key=key) as browser:
    session = browser.create("https://example.com")
    try:
        result = browser.run(session["id"], "navigate", {"url": "https://example.com"})
        print(result["result"]["title"])
    finally:
        browser.close(session["id"])

Budget in your orchestration

Apply your own shared tool and inference budget before submitting commands, including specialist agents and retries. HoundBrowser never silently upgrades a reasoning tier or invokes a model.

Handle uncertainty explicitly

A lost response does not mean an action failed. Query the same command ID. An outcome_unknown result requires inspection; never blindly replay a state-changing action.