Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/twardoch/brosh/claude-mdgit clone --depth 1 https://github.com/twardoch/broshWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/twardoch/brosh/claude-md)<a href="https://agentmods.dev/instructions/twardoch/brosh/claude-md"><img src="https://agentmods.dev/badge/instructions/twardoch/brosh/claude-md.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.02368 | $0.02368 |
| Opus 5 | $0.01184 | $0.01184 |
| Sonnet 5 | $0.00474 | $0.00474 |
| Haiku 4.5 | $0.00237 | $0.00237 |
Grade A, and why
brosh CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 223 lines — stays where its author put it; the contents beside it link to each section on GitHub.
=== USER INSTRUCTIONS ===
brosh is a browser screenshot tool that captures scrolling screenshots of webpages using Playwright's async API. The tool has been refactored from a monolithic script into a modular Python package with the following structure:
src/brosh/
├── __init__.py # Package exports
├── __main__.py # CLI entry point
├── api.py # Public API functions (sync and async)
├── cli.py # Fire-based CLI interface
├── tool.py # Main BrowserScreenshotTool class
├── browser.py # Browser management utilities
├── capture.py # Screenshot capture logic
├── image.py # Image processing utilities
├── models.py # Data models and enums
├── mcp.py # MCP server functionality
└── texthtml.py # HTML/text processing utilities
Legacy implementation:
brosh_sel.py: Selenium-based synchronous implementation (deprecated)
Commands
Installation
# Install the package in development mode
pip install -e .
# Or install from PyPI (when published)
pip install brosh
# Install Playwright browsers
playwright install
Running the Tools
The package provides two command-line tools:
brosh: Main CLI for screenshot capturebrosh-mcp: MCP server for AI tool integration
Primary Tool (brosh)
# Basic usage
brosh shot "https://example.com"
# Start browser in debug mode
brosh --app chrome run
# Take screenshots with options
brosh --app chrome --width 1920 --height 1080 shot "https://example.com" --scroll_step 80 --format png
# Run MCP server
brosh mcp
# Or use the dedicated command
brosh-mcp
Development Mode
# Run from source during development
python -m brosh shot "https://example.com"
# Or use the development script (if maintaining the monolithic version)
./brosh.py shot "https://example.com"
Architecture
Module Structure
The project has been refactored into a modular architecture:
- api.py: Public API with
capture_webpage(sync) andcapture_webpage_async(async) functions - browser.py:
BrowserManagerclass handles browser detection, launching, and connection - capture.py:
CaptureManagerclass handles screenshot capture and scrolling logic - image.py:
ImageProcessorclass handles image scaling, conversion, and APNG creation - tool.py:
BrowserScreenshotToolorchestrates the other modules - cli.py:
BrowserScreenshotCLIprovides the Fire-based command interface - mcp.py: FastMCP server implementation for AI tool integration
- models.py: Data models including
ImageFormatenum and MCP-specific types - texthtml.py:
DOMProcessorfor HTML compression and text extraction
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 223 lines · 2,368 tokens per session scan A ab6fa3ca2aa3
brosh CLAUDE.md is an instructions file published in the GitHub repository twardoch/brosh (3 stars, last pushed 18d ago), licensed MIT. It adds 2,368 tokens to every session, about $0.0118 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
tor-mcp CLAUDE.md
Claude Code instructions for rushikeshmore/tor-mcp, covering tor-mcp, project structure, stack, common commands and mcp tools.
axon AGENTS.md
AGENTS.md instructions for dinglebear-ai/axon, a project described as: Self-hosted RAG stack for crawl, scrape, search, ingest, query, and ask workflows with Qdrant, TEI embeddings, Chrome rendering, MCP/CLI/REST, and Gemini synthesis.
axon GEMINI.md
Gemini CLI instructions for dinglebear-ai/axon, a project described as: Self-hosted RAG stack for crawl, scrape, search, ingest, query, and ask workflows with Qdrant, TEI embeddings, Chrome rendering, MCP/CLI/REST, and Gemini synthesis.
chromectx AGENTS.md
Instructions for dyingg/chromectx, covering micro-commits, project shape, source layout, default store and adding a cli command.
chromectx CLAUDE.md
Instructions for dyingg/chromectx, a project described as: Search all your open tabs by title or full page content, and expose everything as RAG context for AI tools via MCP.
browser-control AGENTS.md
Instructions for keon/browser-control: Use this project as a tiny browser pipe, not an agent framework.