Hound sends the diff, not the page
Every mainstream browser-automation MCP server returns the page's full accessibility tree on every action. Hound budgets each response and returns only what changed. Measured here, on three real pages, in an 8-step agent flow.
Measured 28 October 2026 · budget 1,200 tokens/call · 8-step flow · single run per page.
Results
| Page | Conventional | Hound | Saved | Reduction |
|---|---|---|---|---|
| example.com | 8,781 | 845 | 7,936 | 90.4% |
| news.ycombinator.com | 93,485 | 806 | 92,679 | 99.1% |
| en.wikipedia.org/wiki/Web_scraping | 209,701 | 974 | 208,727 | 99.5% |
| Total | 311,967 | 2,625 | 309,342 | 99.2% |
The gap widens with page size: 91% on a near-empty page, 99.5% on a long Wikipedia article. That is the point — cost becomes a function of change, not page size.
Where the saving comes from
Per-step detail for news.ycombinator.com, the same flow with both strategies:
| Step | Conventional | Hound | Ratio |
|---|---|---|---|
| open | 11,683 | 570 | 20.5× |
| snapshot | 11,683 | 29 | 402.9× |
| act:click | 11,683 | 29 | 402.9× |
| snapshot | 11,683 | 29 | 402.9× |
| snapshot | 11,683 | 29 | 402.9× |
| act:fill | 11,690 | 62 | 188.5× |
| snapshot | 11,690 | 29 | 403.1× |
| snapshot | 11,690 | 29 | 403.1× |
| Total | 93,485 | 806 | 116× |
Conventional pays the full tree eight times. Hound pays once on open, then a
29-token "nothing changed" delta per follow-up.
Method
- Conventional = what a snapshot-per-action server returns after each action: the full accessibility snapshot plus up to 40,000 characters of page text, with no memory of what the agent already saw.
- Hound = the budgeted response for the same step, computed as a delta
against the previous state (1,200-token budget,
minimalprofile for snapshots). - Both are measured on the same page in the same browser session, after the same action — never against a stale document.
- If a page has no element matching a step (e.g. no search box), that step is dropped from both sides rather than crediting Hound for work it didn't do.
- Tokens are estimated with Hound's own estimator, the same one it budgets against.
Honest caveats. This is a single run per page, not an average; page content changes over time, so absolute numbers drift. The estimator is a model, not a real tokenizer. And the comparison is against a snapshot-per-action server — a server that already sends diffs would narrow this gap. The claim is narrow on purpose: Hound removes the repeated full-tree cost.
Reproduce it
Two commands, no account, no API key:
pip install hound-browser-mcp
playwright install chromium
hound-bench # default pages
hound-bench --url https://your-page.example --json out.json
hound-bench --pages 3 --budget 1200 --profile balanced
Or from source:
pip install -e ".[dev]" && python -m bench.run --url https://news.ycombinator.com
Raw output for the run above is committed at bench/results/2026-10-28.json. If your numbers differ, your page changed or your budget did — that is the benchmark working as intended, not breaking.