tezcatl: a 2MB alternative to Puppeteer for scraping on macOS ============================================================= By George Mandis https://george.mand.is/2026/05/tezcatl-a-2mb-alternative-to-puppeteer-for-scraping-on-macos Friday, May 29th 2026 I've been working on a small project that uses [whereami](https://less.software/whereami) and [nearme](https://less.software/nearme) to do some local scraping and experimentation with LLMs to build enriched datasets. The details of that project are for a future post, but the short version is I needed to fetch web pages, extract some data and move on. > [!tip] A quick cut to the chase: > > If you're on a Mac and find yourself needing to do light scraping work on > websites as they are rendered—not as they are sent over the wire—please > consider trying `tezcatl`: > > - [https://github.com/georgemandis/tezcatl](https://github.com/georgemandis/tezcatl) > > Some selling points: > > - A little like Puppeteer but only ~2MB instead of nearly 300MB. > - Built around WebKit, which is already on your Mac, and only cares about > returning an accurate snapshot of the DOM. > - About as lightweight as a tool like this can be; has no dependencies or > build steps you'll ever have to think about. > - Can become a tool in your scraping + parsing toolkit right alongside `jq`, > `curl` and other CLI affordances you reach for daily. > > For those that want more context and story, read on! ## The problem `curl` handles about 70% of what I need. Most pages serve a usable version of their content in the initial HTML response and you can pipe `curl` into whatever you want—namely Simon Willison's [llm](https://github.com/simonw/llm) tool in this case, which I adore. But some sites render everything client-side with JavaScript and come back as soulless husks. A `
` and a pile of `