# Swipenode

> Lightning-fast web extraction for AI agents. Extracts structured JSON from Next.js, Nuxt.js, Gatsby, Remix without headless browsers. TLS spoofing bypasses Cloudflare. 98% fewer tokens vs raw HTML. Use for e-commerce, news scraping, API-less data collection, or when web_fetch/browser overhead is too high.

- Skill: `dvcrn/swipenode` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add dvcrn/swipenode`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dvcrn/swipenode/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: dvcrn (https://skillmd.com/u/dvcrn)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/dvcrn/swipenode

---


# SwipeNode Skill

Lightning-fast, zero-render web extraction CLI built for AI agents.  
Extracts structured data (Next.js/Nuxt.js) without headless browsers.

**Repo:** https://github.com/sirToby99/swipenode

---

## Binary

```
~/.openclaw/workspace/skills/swipenode/swipenode
```

Built from source (Go 1.24), single static binary, no runtime dependencies.

---

## Commands

### Extract (single URL)
```bash
~/.openclaw/workspace/skills/swipenode/swipenode extract --url <url>
```

### Extract + filter with jq
```bash
~/.openclaw/workspace/skills/swipenode/swipenode extract --url https://shop.example.com | jq '.props.pageProps.product'
```

### Batch (multiple URLs concurrently)
```bash
~/.openclaw/workspace/skills/swipenode/swipenode batch --urls "https://a.com,https://b.com"
```

### MCP Server (for Claude Desktop / local agents)
```bash
~/.openclaw/workspace/skills/swipenode/swipenode mcp
```

### Install as MCP in Claude Desktop
```bash
~/.openclaw/workspace/skills/swipenode/swipenode install-mcp
```

---

## What it extracts

| Framework | Data source |
|-----------|------------|
| Next.js | `__NEXT_DATA__` JSON blob |
| Nuxt.js | `window.__NUXT__` |
| Gatsby | `window.___gatsby` |
| Remix | `window.__remixContext` |
| JSON-LD | `<script type="application/ld+json">` |
| Fallback | Clean visible text (boilerplate stripped) |

**Smart pruning:** Strips tracking pixels, telemetry, base64 images, UI noise → up to 98% fewer tokens vs raw HTML.

---

## When to use vs web_fetch

| Situation | Tool |
|-----------|------|
| Data-rich site (Next.js shop, news portal) | **swipenode** |
| Cloudflare-protected site | **swipenode** (TLS spoofing) |
| Need structured JSON from React/Vue app | **swipenode** |
| Simple static page / docs | web_fetch |
| Need screenshots / DOM interaction | browser |
| 308/421 redirect errors | try web_fetch as fallback |

---

## Known Limitations

- HTTP 308/421 redirect errors on some CDN-hosted sites (e.g. vercel.com, nextjs.org) — use web_fetch as fallback
- No JavaScript execution — if data is loaded client-side only, won't help
- No DOM interaction (no clicks, forms)

---

## Examples

### HN front page (clean text fallback)
```bash
~/.openclaw/workspace/skills/swipenode/swipenode extract --url https://news.ycombinator.com
# Returns: clean list of titles, points, comments
```

### E-Commerce product data (Next.js)
```bash
~/.openclaw/workspace/skills/swipenode/swipenode extract --url https://shop.example.com/product/123 | jq '.props.pageProps'
```

### Token savings comparison
```
Raw HTML → LLM:      ~15.000 tokens (div soup, scripts, tracking)
SwipeNode extract:   ~300 tokens (clean structured JSON)
Savings:             ~98%
```

---

## Build from source

```bash
# Requires Go 1.24+
export PATH="/tmp/go/bin:$PATH"  # or system Go
git clone https://github.com/sirToby99/swipenode.git /tmp/swipenode-build
cd /tmp/swipenode-build
go build -o ~/.openclaw/workspace/skills/swipenode/swipenode .
```

