brosh
About
A browser screenshot tool to capture scrolling screenshots of webpages using Playwright, with support for intelligent section identification and multiple output formats.
Details
- Author
- twardoch
- Categories
- Web Scraping, Automation, Other
Jump to
Setup
Install brosh in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/twardoch/brosh
Follow the installation instructions in the repository README, then restart your MCP client.
Full-page browser screenshots, from the command line or from your own code, with the pixels, the text, and the HTML all handed back together.
Brosh drives a real browser (Chrome, Edge, or Safari) via Playwright, scrolls through a page, and captures each section as an image — plus the visible text as Markdown and, if you want it, the underlying HTML. Built for AI agents that need toseea page, not just fetch its source.
That second command matters: Playwright needs its own browser binaries, andpip install broshdoesn't fetch them. Skip it and every capture fails with a browser-not-found error.
brosh shot "https://example.com"
Screenshots land in~/Pictures/broshby default, named{domain}-{timestamp}-{scroll%}-{section}.png.
# uv (recommended) uv tool install brosh # pip pip install brosh # run without installing uvx brosh shot "https://example.com"
Whichever route you pick, don't forgetplaywright installafterward.
SeeInstallationfor binary releases, pipx, and from-source setups.
# Basic capture brosh shot "https://example.com" # Animated PNG of the whole scroll brosh shot "https://example.com" --output_format apng # Custom viewport, JSON output with HTML included brosh --width 1920 --height 1080 shot "https://example.com" --fetch_html --json > page.json # Reuse a running browser instance across multiple shots brosh --app chrome run brosh --app chrome shot "https://example.com" brosh --app chrome quit
Global options (--app,--width,--height,--zoom,--output_dir,--subdirs,--verbose,--json) gobeforethe command; command options go after. Full option tables:CLI Reference.
from brosh import capture_webpage result = capture_webpage( url="https://example.com", width=1280, height=720, output_format="jpg", scale=75, ) for path, metadata in result.items(): print(path, metadata["text"][:80])
import asyncio from brosh import capture_webpage_async async def main(): result = await capture_webpage_async( url="https://docs.python.org/3/", fetch_html=True, max_frames=3, ) print(list(result)) asyncio.run(main())
Both APIs return a dict mapping saved file paths to metadata (selector,text, optionallyhtml). Details and convenience functions:Python API.
Brosh ships an MCP server so AI tools can request a screenshot mid-conversation.
Or drop this into your MCP client's config:
{ "mcpServers": { "brosh": { "command": "brosh-mcp" } } }
Restart your client, then ask it to "use brosh to capture example.com and show me the text." Full setup, includinguvx-based configs:MCP Server Mode.
Everything else — architecture, full command reference, output/JSON format, troubleshooting — lives attwardoch.github.io/brosh.
Built byAdam TwardochonPlaywright,python-fire, andFastMCP.
Take screenshots and read console logs from web pages using Playwright.
CloakBrowser MCP server for AI agents: Playwright-powered browsing, clean tool forwarding, Docker support, and multi-session HTTP transport.
Control a browser for web automation tasks using Playwright on Cloudflare Workers.
Control a browser for web automation tasks like navigation, typing, clicking, and taking screenshots using Playwright on Cloudflare Workers.
Fetch and extract web content using a Playwright headless browser, with support for intelligent extraction and flexible output.
Query financial web tables from sources like iwencai, tdx, and eastmoney using Playwright.
A production-ready web scraping platform with ML-powered automation, browser automation via Playwright, and persistent caching.
Control a browser for automation and web scraping tasks using Playwright.
A server providing Playwright tools for browser automation and web scraping.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.


