Claude Code has WebFetch. Every AI coding agent has some way to grab a webpage.
They all hit the same wall: auth.
Try fetching a Medium article. A Facebook post. A private Substack. Anything behind Cloudflare. The agent gets a login page, a CAPTCHA, or nothing — and makes up the rest.
## What playpanda does
```bash
playpanda https://medium.com/@someone/private-post
```
You log in once. Cookies get saved. After that, fetching just works — from an agent, a script, or the terminal.
The output is markdown with the junk stripped out. No nav bars, no cookie banners, no ads, no image CDN URLs. Just the content.
## How agents can use it
Anything that can shell out can use it:
```bash
# Replace WebFetch in Claude Code
playpanda https://docs.example.com/private-api
# Fetch multiple pages at once
playpanda https://url1.com,https://url2.com,https://url3.com
```
## How fetching works
It tries the fastest method first and escalates when something gets in the way:
| Method | Speed | When it kicks in |
|---|---|---|
| HTTP fetch | ~200ms | Default, works for most pages |
| JS rendering | ~1.5s | Page needs JavaScript to load |
| Real browser + anti-detection | ~6s | Site actively blocks bots |
The agent doesn't need to know which tier ran. It just gets markdown back.
## Size
Single Zig binary, under 400kb.
## Install
One-liner:
```bash
curl -fsSL https://raw.githubusercontent.com/ancs21/playpanda/main/scripts/install.sh | sh
```
As an agent skill:
```bash
npx skills add ancs21/playpanda
```
From source (requires Zig 0.15+):
```bash
git clone https://github.com/ancs21/playpanda.git
cd playpanda
zig build -Doptimize=.ReleaseFast
cp zig-out/bin/playpanda ~/.local/bin/
```
GitHub: https://github.com/ancs21/playpanda (Apache 2.0 license)