webpeel 0.13.4 โ†’ 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +120 -162
  2. package/dist/cli-auth.js +7 -7
  3. package/dist/cli-auth.js.map +1 -1
  4. package/dist/cli.js +197 -26
  5. package/dist/cli.js.map +1 -1
  6. package/dist/core/auto-extract.d.ts +83 -0
  7. package/dist/core/auto-extract.d.ts.map +1 -0
  8. package/dist/core/auto-extract.js +565 -0
  9. package/dist/core/auto-extract.js.map +1 -0
  10. package/dist/core/deep-fetch.d.ts +75 -0
  11. package/dist/core/deep-fetch.d.ts.map +1 -0
  12. package/dist/core/deep-fetch.js +406 -0
  13. package/dist/core/deep-fetch.js.map +1 -0
  14. package/dist/core/domain-extractors.d.ts +34 -0
  15. package/dist/core/domain-extractors.d.ts.map +1 -0
  16. package/dist/core/domain-extractors.js +654 -0
  17. package/dist/core/domain-extractors.js.map +1 -0
  18. package/dist/core/markdown.d.ts +8 -0
  19. package/dist/core/markdown.d.ts.map +1 -1
  20. package/dist/core/markdown.js +25 -0
  21. package/dist/core/markdown.js.map +1 -1
  22. package/dist/core/quick-answer.d.ts +28 -0
  23. package/dist/core/quick-answer.d.ts.map +1 -0
  24. package/dist/core/quick-answer.js +288 -0
  25. package/dist/core/quick-answer.js.map +1 -0
  26. package/dist/core/readability.d.ts +58 -0
  27. package/dist/core/readability.d.ts.map +1 -0
  28. package/dist/core/readability.js +496 -0
  29. package/dist/core/readability.js.map +1 -0
  30. package/dist/core/search-provider.d.ts.map +1 -1
  31. package/dist/core/search-provider.js +3 -6
  32. package/dist/core/search-provider.js.map +1 -1
  33. package/dist/core/strategies.d.ts.map +1 -1
  34. package/dist/core/strategies.js +70 -5
  35. package/dist/core/strategies.js.map +1 -1
  36. package/dist/core/watch-manager.d.ts +140 -0
  37. package/dist/core/watch-manager.d.ts.map +1 -0
  38. package/dist/core/watch-manager.js +348 -0
  39. package/dist/core/watch-manager.js.map +1 -0
  40. package/dist/core/youtube.d.ts +91 -0
  41. package/dist/core/youtube.d.ts.map +1 -0
  42. package/dist/core/youtube.js +380 -0
  43. package/dist/core/youtube.js.map +1 -0
  44. package/dist/index.d.ts +4 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +103 -0
  47. package/dist/index.js.map +1 -1
  48. package/dist/mcp/server.js +58 -16
  49. package/dist/mcp/server.js.map +1 -1
  50. package/dist/server/app.d.ts.map +1 -1
  51. package/dist/server/app.js +19 -1
  52. package/dist/server/app.js.map +1 -1
  53. package/dist/server/routes/deep-fetch.d.ts +9 -0
  54. package/dist/server/routes/deep-fetch.d.ts.map +1 -0
  55. package/dist/server/routes/deep-fetch.js +38 -0
  56. package/dist/server/routes/deep-fetch.js.map +1 -0
  57. package/dist/server/routes/extract.d.ts.map +1 -1
  58. package/dist/server/routes/extract.js +11 -0
  59. package/dist/server/routes/extract.js.map +1 -1
  60. package/dist/server/routes/fetch.d.ts.map +1 -1
  61. package/dist/server/routes/fetch.js +45 -19
  62. package/dist/server/routes/fetch.js.map +1 -1
  63. package/dist/server/routes/mcp.d.ts +2 -1
  64. package/dist/server/routes/mcp.d.ts.map +1 -1
  65. package/dist/server/routes/mcp.js +307 -38
  66. package/dist/server/routes/mcp.js.map +1 -1
  67. package/dist/server/routes/quick-answer.d.ts +9 -0
  68. package/dist/server/routes/quick-answer.d.ts.map +1 -0
  69. package/dist/server/routes/quick-answer.js +84 -0
  70. package/dist/server/routes/quick-answer.js.map +1 -0
  71. package/dist/server/routes/watch.d.ts +16 -0
  72. package/dist/server/routes/watch.d.ts.map +1 -0
  73. package/dist/server/routes/watch.js +219 -0
  74. package/dist/server/routes/watch.js.map +1 -0
  75. package/dist/server/routes/youtube.d.ts +7 -0
  76. package/dist/server/routes/youtube.d.ts.map +1 -0
  77. package/dist/server/routes/youtube.js +87 -0
  78. package/dist/server/routes/youtube.js.map +1 -0
  79. package/dist/types.d.ts +18 -0
  80. package/dist/types.d.ts.map +1 -1
  81. package/dist/types.js.map +1 -1
  82. package/llms.txt +14 -5
  83. package/package.json +1 -1
package/README.md CHANGED
@@ -14,8 +14,8 @@
14
14
  </p>
15
15
 
16
16
  <p align="center">
17
- <strong>Reliable web access for AI agents.</strong><br>
18
- Fetch any page ยท Extract structured data ยท Crawl entire sites ยท Deep research โ€” one tool, three interfaces.
17
+ <strong>Web intelligence for AI agents.</strong><br>
18
+ Fetch any URL โ†’ clean markdown. YouTube transcripts. Reddit threads. Quick answers. No API keys needed.
19
19
  </p>
20
20
 
21
21
  <p align="center">
@@ -28,30 +28,36 @@
28
28
 
29
29
  ---
30
30
 
31
- ## What is WebPeel?
32
-
33
- WebPeel gives your AI agent reliable access to the web. Fetch any page, extract structured data, crawl entire sites, and research topics โ€” all through a single CLI, API, or MCP server.
34
-
35
- It automatically handles the hard parts: JavaScript rendering, bot detection, Cloudflare challenges, infinite scroll, pagination, and content noise. Your agent gets clean markdown. You don't think about the plumbing.
31
+ > **WebPeel** gives AI agents reliable web access in one call. It handles JavaScript rendering, bot detection, and content extraction automatically โ€” your agent gets clean, structured data. 18 MCP tools, 927 tests, 100% open source.
36
32
 
37
33
  ---
38
34
 
39
35
  ## ๐Ÿš€ Quick Start
40
36
 
41
- **Three paths in, all free to try:**
37
+ ```bash
38
+ npx webpeel "https://example.com"
39
+ ```
42
40
 
43
- ### CLI
41
+ **More examples:**
44
42
 
45
43
  ```bash
46
- npx webpeel "https://news.ycombinator.com"
44
+ # YouTube transcript โ€” no API key!
45
+ npx webpeel "https://youtube.com/watch?v=dQw4w9WgXcQ"
46
+
47
+ # Ask any page a question โ€” no LLM key!
48
+ npx webpeel "https://openai.com/pricing" -q "how much does GPT-4 cost?"
49
+
50
+ # Reddit thread โ€” structured JSON
51
+ npx webpeel "https://reddit.com/r/programming/comments/..." --json
52
+
53
+ # Reader mode โ€” strips all noise
54
+ npx webpeel "https://nytimes.com/article" --readable
47
55
  ```
48
56
 
49
57
  No install needed. First 25 fetches work without signup. [Get 500/week free โ†’](https://app.webpeel.dev/signup)
50
58
 
51
59
  ### MCP Server (for Claude, Cursor, VS Code, Windsurf)
52
60
 
53
- Add to your MCP config (`~/Library/Application Support/Claude/claude_desktop_config.json` on Mac):
54
-
55
61
  ```json
56
62
  {
57
63
  "mcpServers": {
@@ -75,90 +81,86 @@ curl "https://api.webpeel.dev/v1/fetch?url=https://example.com" \
75
81
 
76
82
  ---
77
83
 
78
- ## โœจ Features
79
-
80
- ### Core
81
-
82
- | Feature | Description |
83
- |---------|-------------|
84
- | **Web Fetching** | Any URL โ†’ clean markdown, text, HTML, or JSON |
85
- | **Smart Escalation** | Auto-upgrades: HTTP โ†’ Browser โ†’ Stealth. Uses the fastest method, escalates only when needed |
86
- | **Content Pruning** | 2-pass HTML reduction โ€” strips nav/footer/sidebar/ads automatically |
87
- | **Token Budget** | Hard-cap output to N tokens. No surprises in your LLM bill |
88
- | **Screenshots** | Full-page or viewport screenshots with a single flag |
89
- | **Batch Mode** | Process multiple URLs concurrently |
90
-
91
- ### AI Agent
92
-
93
- | Feature | Description |
94
- |---------|-------------|
95
- | **MCP Server** | 13 tools for Claude Desktop, Cursor, VS Code, and Windsurf |
96
- | **Deep Research** | Multi-hop agent: search โ†’ fetch โ†’ analyze โ†’ follow leads โ†’ synthesize |
97
- | **Search** | Web search across 27+ structured sources |
98
- | **Hotel Search** | Kayak, Booking.com, Google Travel, Expedia โ€” in parallel |
99
- | **Browser Profiles** | Persistent sessions for sites that require login |
100
- | **Infinite Scroll** | Auto-scrolls lazy-loaded feeds until stable |
101
- | **Actions** | Click, type, fill, select, hover, press, scroll โ€” full browser automation |
102
-
103
- ### Extraction
104
-
105
- | Feature | Description |
106
- |---------|-------------|
107
- | **CSS Schema Extraction** | 7 built-in schemas (Amazon, Booking.com, eBay, Expedia, Hacker News, Walmart, Yelp) โ€” auto-detected by domain |
108
- | **JSON Schema Extraction** | Pass any JSON Schema and get back typed, structured data |
109
- | **LLM Extraction (BYOK)** | Natural language โ†’ structured data using your own OpenAI-compatible key |
110
- | **BM25 Filtering** | Query-focused content: only the parts relevant to your question |
111
- | **Links / Images / Meta** | Extract just the links, images, or metadata from any page |
112
-
113
- ### Anti-Bot
114
-
115
- | Feature | Description |
116
- |---------|-------------|
117
- | **Stealth Mode** | Bypasses Cloudflare, PerimeterX, DataDome, Akamai, and more |
118
- | **28 Auto-Stealth Domains** | Amazon, LinkedIn, Glassdoor, Zillow, and 24 more โ€” stealth kicks in automatically |
119
- | **Challenge Detection** | 7 bot-protection vendors detected and handled automatically |
120
- | **Browser Fingerprinting** | Masks WebGL, navigator properties, canvas fingerprint |
121
-
122
- ### Advanced
123
-
124
- | Feature | Description |
125
- |---------|-------------|
126
- | **Crawl + Sitemap** | BFS/DFS crawling, sitemap discovery, robots.txt compliance, deduplication |
127
- | **Site Map** | Map all URLs on a domain up to any depth |
128
- | **Pagination** | Follow "Next" links automatically for N pages |
129
- | **Chunking** | Split long content into LLM-sized pieces (fixed, semantic, or paragraph) |
130
- | **Caching** | Local result cache with configurable TTL (`5m`, `1h`, `1d`) |
131
- | **Geo-targeting** | ISO country code + language preferences per request |
132
- | **Change Tracking** | Detect what changed between two fetches of the same page |
133
- | **Brand Extraction** | Pull logo, colors, fonts, and social links from any site |
134
- | **PDF Extraction** | Extract text from PDF documents |
135
- | **Self-Hostable** | Docker Compose for full on-premise deployment |
136
- | **Python SDK** | Sync + async client, `pip install webpeel` |
84
+ ## โœจ What can it do?
85
+
86
+ | | Feature | What you get |
87
+ |---|---------|-------------|
88
+ | ๐ŸŒ | **Fetch** | Any URL โ†’ clean markdown, text, or JSON. Auto-handles JS rendering, bot detection, CAPTCHAs |
89
+ | ๐ŸŽฌ | **YouTube** | Full video transcripts with timestamps. No API key |
90
+ | ๐Ÿฆ | **Twitter/Reddit/GitHub/HN** | Structured data from social platforms via native APIs |
91
+ | โ“ | **Quick Answer** | Ask a question about any page. BM25 scoring, no LLM key |
92
+ | ๐Ÿ“– | **Reader Mode** | Browser Reader Mode for AI โ€” strips nav, ads, cookies, 25+ noise patterns |
93
+ | ๐Ÿ” | **Search** | Web search across 27+ sites. Deep research with multi-hop analysis |
94
+ | ๐Ÿ“Š | **Extract** | Pricing pages, products, contacts โ†’ structured JSON. CSS/JSON Schema/LLM extraction |
95
+ | ๐Ÿ•ต๏ธ | **Stealth** | Bypasses Cloudflare, PerimeterX, DataDome, Akamai. 28 auto-stealth domains |
96
+ | ๐Ÿจ | **Hotels** | Kayak + Booking + Google Travel + Expedia in parallel |
97
+ | ๐Ÿ”„ | **Monitor** | Watch URLs for changes, get webhook notifications |
98
+ | ๐Ÿ•ท๏ธ | **Crawl** | BFS/DFS site crawling, sitemap discovery, robots.txt compliance |
99
+ | ๐Ÿ“ธ | **Screenshot** | Full-page or viewport screenshots |
100
+ | ๐Ÿ | **Python SDK** | `pip install webpeel` โ€” sync + async client |
101
+
102
+ ---
103
+
104
+ ## ๐Ÿ† How does it compare?
105
+
106
+ | Feature | WebPeel | Firecrawl | Crawl4AI | Jina Reader |
107
+ |---------|:-------:|:---------:|:--------:|:-----------:|
108
+ | YouTube transcripts | โœ… | โŒ | โŒ | โŒ |
109
+ | LLM-free Q&A | โœ… | โŒ | โŒ | โŒ |
110
+ | Reader mode | โœ… | โŒ | โŒ | โŒ |
111
+ | Domain extractors (Twitter, Reddit, GH, HN) | โœ… | โŒ | โŒ | โŒ |
112
+ | Auto-extract (pricing, products) | โœ… | โŒ | โŒ | โŒ |
113
+ | URL monitoring | โœ… | โŒ | โŒ | โŒ |
114
+ | Stealth / anti-bot | โœ… | โšก Hosted only | โœ… | โŒ |
115
+ | MCP server | โœ… 18 tools | โœ… 4 tools | โŒ | โŒ |
116
+ | Deep research | โœ… | โŒ | โŒ | โŒ |
117
+ | Hotel search | โœ… | โŒ | โŒ | โŒ |
118
+ | Self-hostable | โœ… | โœ… | โœ… | โŒ |
119
+ | Free tier | 500/week | 500 credits | Unlimited | Unlimited |
120
+ | Open source | AGPL-3.0 | AGPL-3.0 | Apache-2.0 | N/A |
121
+
122
+ ---
123
+
124
+ ## โšก Benchmark
125
+
126
+ Evaluated on 30 real-world URLs across 6 categories (static, dynamic, SPA, protected, documents, international):
127
+
128
+ | | WebPeel | Next best |
129
+ |---|:---:|:---:|
130
+ | **Success rate** | **100%** (30/30) | 93.3% |
131
+ | **Content quality** | **92.3%** | 83.2% |
132
+
133
+ WebPeel is the only tool that extracted content from all 30 test URLs. [Full methodology โ†’](https://webpeel.dev/blog/benchmarks)
137
134
 
138
135
  ---
139
136
 
140
137
  ## ๐Ÿค– MCP Integration
141
138
 
142
- WebPeel exposes **13 tools** to your AI coding assistant:
139
+ WebPeel exposes **18 tools** to your AI coding assistant:
143
140
 
144
141
  | Tool | What it does |
145
142
  |------|--------------|
146
- | `webpeel_fetch` | Fetch any URL โ†’ markdown (smart escalation built in) |
147
- | `webpeel_search` | Web search with structured results |
143
+ | `webpeel_fetch` | Fetch any URL โ†’ markdown. Smart escalation built in. Supports `readable: true` for reader mode |
144
+ | `webpeel_search` | Web search with structured results across 27+ sources |
148
145
  | `webpeel_batch` | Fetch multiple URLs concurrently |
149
146
  | `webpeel_crawl` | Crawl a site with depth/page limits |
150
147
  | `webpeel_map` | Discover all URLs on a domain |
151
148
  | `webpeel_extract` | Structured extraction (CSS, JSON Schema, or LLM) |
152
- | `webpeel_screenshot` | Screenshot any page |
149
+ | `webpeel_screenshot` | Screenshot any page (full-page or viewport) |
153
150
  | `webpeel_research` | Deep multi-hop research on a topic |
154
151
  | `webpeel_summarize` | AI summary of any URL |
155
152
  | `webpeel_answer` | Ask a question about a URL's content |
156
153
  | `webpeel_change_track` | Detect changes between two fetches |
157
154
  | `webpeel_brand` | Extract branding assets from a site |
158
- | `webpeel_deep_fetch` | Search + batch fetch + merge โ€” comprehensive research in one call, no LLM key needed |
155
+ | `webpeel_deep_fetch` | Search + batch fetch + merge โ€” comprehensive research, no LLM key |
156
+ | `webpeel_youtube` | Extract YouTube video transcripts โ€” all URL formats, no API key |
157
+ | `webpeel_auto_extract` | Heuristic structured data extraction โ€” auto-detects pricing, products, contacts |
158
+ | `webpeel_quick_answer` | BM25-powered Q&A โ€” ask any question about any page, no LLM key |
159
+ | `webpeel_watch` | Persistent URL change monitoring with webhook notifications |
160
+ | `webpeel_hotels` | Hotel search across Kayak, Booking.com, Google Travel, Expedia in parallel |
159
161
 
160
162
  <details>
161
- <summary>Setup for each editor</summary>
163
+ <summary>Setup for Claude Desktop, Cursor, VS Code, Windsurf, Docker</summary>
162
164
 
163
165
  **Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
164
166
  ```json
@@ -204,6 +206,18 @@ WebPeel exposes **13 tools** to your AI coding assistant:
204
206
  }
205
207
  }
206
208
  ```
209
+
210
+ **Hosted endpoint** (no local server needed):
211
+ ```json
212
+ {
213
+ "mcpServers": {
214
+ "webpeel": {
215
+ "url": "https://api.webpeel.dev/mcp",
216
+ "headers": { "Authorization": "Bearer YOUR_API_KEY" }
217
+ }
218
+ }
219
+ }
220
+ ```
207
221
  </details>
208
222
 
209
223
  ---
@@ -220,13 +234,14 @@ npx webpeel research "best practices for rate limiting APIs" --max-sources 8
220
234
  npx webpeel research "compare Firecrawl vs Crawl4AI vs WebPeel" --llm-key sk-...
221
235
  ```
222
236
 
223
- **How it works:** Search โ†’ fetch top results โ†’ extract key passages (BM25) โ†’ follow the most relevant links โ†’ synthesize across sources. No circular references, no duplicate content.
237
+ Search โ†’ fetch top results โ†’ extract key passages (BM25) โ†’ follow the most relevant links โ†’ synthesize. No circular references, no duplicate content.
224
238
 
225
239
  ---
226
240
 
227
241
  ## ๐Ÿ“ฆ Extraction
228
242
 
229
- Three ways to get structured data out of any page:
243
+ <details>
244
+ <summary>CSS Schema, JSON Schema, and LLM extraction โ€” click to expand</summary>
230
245
 
231
246
  ### CSS Schema (zero config, auto-detected)
232
247
 
@@ -260,22 +275,13 @@ npx webpeel "https://hn.algolia.com" \
260
275
  --json
261
276
  ```
262
277
 
263
- <details>
264
- <summary>Node.js extraction example</summary>
265
-
266
278
  ```typescript
267
279
  import { peel } from 'webpeel';
268
280
 
269
281
  // CSS selector extraction
270
282
  const result = await peel('https://news.ycombinator.com', {
271
- extract: {
272
- selectors: {
273
- titles: '.titleline > a',
274
- scores: '.score',
275
- }
276
- }
283
+ extract: { selectors: { titles: '.titleline > a', scores: '.score' } }
277
284
  });
278
- console.log(result.extracted); // { titles: [...], scores: [...] }
279
285
 
280
286
  // LLM extraction with JSON Schema
281
287
  const product = await peel('https://example.com/product', {
@@ -289,14 +295,17 @@ const product = await peel('https://example.com/product', {
289
295
 
290
296
  ## ๐Ÿ›ก๏ธ Stealth & Anti-Bot
291
297
 
292
- WebPeel detects 7 bot-protection vendors and handles them automatically:
298
+ <details>
299
+ <summary>Supported bot-protection vendors and auto-stealth domains โ€” click to expand</summary>
300
+
301
+ WebPeel detects 7 bot-protection vendors automatically:
293
302
 
294
303
  - **Cloudflare** (JS challenge, Turnstile, Bot Management)
295
304
  - **PerimeterX / HUMAN** (behavioral analysis)
296
305
  - **DataDome** (ML-based bot detection)
297
306
  - **Akamai Bot Manager**
298
307
  - **Distil Networks**
299
- - **reCAPTCHA / hCaptcha** (page-level detection)
308
+ - **reCAPTCHA / hCaptcha**
300
309
  - **Generic challenge pages**
301
310
 
302
311
  28 high-protection domains (Amazon, LinkedIn, Glassdoor, Zillow, Ticketmaster, and more) automatically route through stealth mode โ€” no flags needed.
@@ -308,42 +317,23 @@ npx webpeel "https://glassdoor.com/jobs" --stealth
308
317
  # Auto-escalation (stealth triggers automatically on challenge detection)
309
318
  npx webpeel "https://amazon.com/dp/ASIN"
310
319
  ```
320
+ </details>
311
321
 
312
322
  ---
313
323
 
314
- ## โšก Benchmark
315
-
316
- Evaluated on 30 real-world URLs across 6 categories (static, dynamic, SPA, protected, documents, international):
324
+ ## ๐Ÿจ Hotel Search
317
325
 
318
- | | WebPeel | Next best |
319
- |---|:---:|:---:|
320
- | **Success rate** | **100%** (30/30) | 93.3% |
321
- | **Content quality** | **92.3%** | 83.2% |
326
+ <details>
327
+ <summary>Multi-source hotel search โ€” click to expand</summary>
322
328
 
323
- WebPeel is the only tool that extracted content from all 30 test URLs. [Full methodology โ†’](https://webpeel.dev/blog/benchmarks)
329
+ Search Kayak, Booking.com, Google Travel, and Expedia in parallel โ€” returns unified results in one call.
324
330
 
325
- ---
331
+ ```bash
332
+ npx webpeel hotels "Paris" --check-in 2025-06-01 --check-out 2025-06-07 --guests 2 --json
333
+ ```
326
334
 
327
- ## ๐Ÿ†š Comparison
328
-
329
- | Feature | **WebPeel** | Firecrawl | Jina Reader | ScrapingBee | Tavily |
330
- |---------|:-----------:|:---------:|:-----------:|:-----------:|:------:|
331
- | **Free tier** | โœ… 500/wk recurring | โš ๏ธ 500 one-time | โŒ | โŒ | โš ๏ธ 1,000 one-time |
332
- | **Smart escalation** | โœ… auto HTTPโ†’browserโ†’stealth | โŒ manual | โŒ | โŒ | โŒ |
333
- | **Stealth mode** | โœ… all plans | โœ… | โŒ | โœ… paid | โŒ |
334
- | **Challenge detection** | โœ… 7 vendors | โŒ | โŒ | โŒ | โŒ |
335
- | **MCP tools** | โœ… 13 tools | โš ๏ธ ~6 | โŒ | โŒ | โœ… |
336
- | **Deep research** | โœ… multi-hop + BM25 | โš ๏ธ cloud only | โŒ | โŒ | โœ… |
337
- | **CSS schema extraction** | โœ… 7 bundled | โŒ | โŒ | โŒ | โŒ |
338
- | **LLM extraction (BYOK)** | โœ… | โš ๏ธ cloud only | โŒ | โŒ | โŒ |
339
- | **Site search (27+ sites)** | โœ… | โŒ | โŒ | โŒ | โš ๏ธ web only |
340
- | **Hotel search** | โœ… 4 sources parallel | โŒ | โŒ | โŒ | โŒ |
341
- | **Browser profiles** | โœ… persistent sessions | โŒ | โŒ | โŒ | โŒ |
342
- | **Self-hosting** | โœ… Docker Compose | โš ๏ธ complex | โŒ | โŒ | โŒ |
343
- | **Python SDK** | โœ… `pip install` | โœ… | โŒ | โœ… | โœ… |
344
- | **Firecrawl-compatible API** | โœ… drop-in | โœ… native | โŒ | โŒ | โŒ |
345
- | **License** | AGPL-3.0 | AGPL-3.0 | Proprietary | Proprietary | Proprietary |
346
- | **Price** | **$0 / $9 / $29** | $0 / $16 / $83 | custom | $49 / $149 | $0 / $99 |
335
+ Available as `webpeel_hotels` MCP tool and via the REST API.
336
+ </details>
347
337
 
348
338
  ---
349
339
 
@@ -355,7 +345,7 @@ WebPeel is the only tool that extracted content from all 30 test URLs. [Full met
355
345
  | **Pro** | $9/mo | 1,250/wk | 100/hr |
356
346
  | **Max** | $29/mo | 6,250/wk | 500/hr |
357
347
 
358
- All features on all plans. Pro/Max add pay-as-you-go extra usage (fetch $0.002, search $0.001, stealth $0.01). Quota resets every Monday.
348
+ All features on all plans. Pro/Max add pay-as-you-go extra usage. Quota resets every Monday.
359
349
 
360
350
  [Sign up free โ†’](https://app.webpeel.dev/signup) ยท [Compare with Firecrawl โ†’](https://webpeel.dev/migrate-from-firecrawl)
361
351
 
@@ -363,6 +353,9 @@ All features on all plans. Pro/Max add pay-as-you-go extra usage (fetch $0.002,
363
353
 
364
354
  ## ๐Ÿ Python SDK
365
355
 
356
+ <details>
357
+ <summary>Python SDK usage โ€” click to expand</summary>
358
+
366
359
  ```bash
367
360
  pip install webpeel
368
361
  ```
@@ -370,24 +363,19 @@ pip install webpeel
370
363
  ```python
371
364
  from webpeel import WebPeel
372
365
 
373
- client = WebPeel(api_key="wp_...") # or use WEBPEEL_API_KEY env var
366
+ client = WebPeel(api_key="wp_...") # or WEBPEEL_API_KEY env var
374
367
 
375
- # Fetch a page
376
368
  result = client.scrape("https://example.com")
377
369
  print(result.content) # Clean markdown
378
370
  print(result.metadata) # title, description, author, ...
379
371
 
380
- # Search the web
381
372
  results = client.search("latest AI research papers")
382
-
383
- # Crawl a site
384
373
  job = client.crawl("https://docs.example.com", limit=100)
385
-
386
- # With browser + stealth
387
374
  result = client.scrape("https://protected-site.com", render=True, stealth=True)
388
375
  ```
389
376
 
390
377
  Sync and async clients. Pure Python 3.8+, zero dependencies. [Full SDK docs โ†’](python-sdk/README.md)
378
+ </details>
391
379
 
392
380
  ---
393
381
 
@@ -398,43 +386,13 @@ git clone https://github.com/webpeel/webpeel.git
398
386
  cd webpeel && docker compose up
399
387
  ```
400
388
 
401
- Full REST API available at `http://localhost:3000`. AGPL-3.0 licensed. [Self-hosting guide โ†’](SELF_HOST.md)
402
-
403
- **Just the MCP server:**
404
- ```bash
405
- docker run -i webpeel/mcp
406
- ```
407
-
408
- **Just the API server:**
409
- ```bash
410
- docker run -p 3000:3000 webpeel/api
411
- ```
412
-
413
- ---
414
-
415
- ## ๐Ÿ“– API Reference
416
-
417
- Full OpenAPI spec at [`openapi.yaml`](openapi.yaml) and [`api.webpeel.dev`](https://api.webpeel.dev).
389
+ Full REST API at `http://localhost:3000`. AGPL-3.0 licensed. [Self-hosting guide โ†’](SELF_HOST.md)
418
390
 
419
391
  ```bash
420
- # Fetch
421
- GET /v1/fetch?url=<url>
422
-
423
- # Search
424
- GET /v1/search?q=<query>
425
-
426
- # Crawl
427
- POST /v1/crawl { "url": "...", "limit": 100 }
428
-
429
- # Map
430
- GET /v1/map?url=<url>
431
-
432
- # Extract
433
- POST /v1/extract { "url": "...", "schema": { ... } }
392
+ docker run -i webpeel/mcp # MCP server only
393
+ docker run -p 3000:3000 webpeel/api # API server only
434
394
  ```
435
395
 
436
- [Full API reference โ†’](https://webpeel.dev/docs/api-reference)
437
-
438
396
  ---
439
397
 
440
398
  ## ๐Ÿค Contributing
@@ -450,7 +408,7 @@ npm test
450
408
  - **Feature requests:** [Start a discussion](https://github.com/webpeel/webpeel/discussions)
451
409
  - **Code:** See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines
452
410
 
453
- The project has a comprehensive test suite. Please add tests for new features.
411
+ The project has 927 tests. Please add tests for new features.
454
412
 
455
413
  ---
456
414
 
package/dist/cli-auth.js CHANGED
@@ -111,8 +111,8 @@ export async function checkUsage() {
111
111
  return {
112
112
  allowed: false,
113
113
  message: `You've used your ${limit} free fetches this week.\n\n` +
114
- `๐Ÿ“ฆ Sign up free โ†’ 125 fetches/week: webpeel login\n` +
115
- `โšก Pro ($9/mo) โ†’ 1,250 fetches/week: https://webpeel.dev/#pricing\n` +
114
+ `๐Ÿ“ฆ Sign up free โ†’ 500 fetches/week: webpeel login\n` +
115
+ `โšก Pro ($9/mo) โ†’ 1,250 fetches/week: https://webpeel.dev/pricing\n` +
116
116
  `๐Ÿš€ Max ($29/mo) โ†’ 6,250 fetches/week\n`,
117
117
  };
118
118
  }
@@ -191,18 +191,18 @@ export function showUsageFooter(usageInfo, isAnonymous, stealth = false) {
191
191
  // Only show footer for anonymous or free users
192
192
  if (isAnonymous) {
193
193
  const costText = stealth ? ' (costs 5 credits)' : '';
194
- console.error(`โšก ${usageInfo.remaining}/${usageInfo.limit} free fetches remaining${costText}. Run \`webpeel login\` to get 125/week free.`);
194
+ console.error(`โšก ${usageInfo.remaining}/${usageInfo.limit} free fetches remaining${costText} ยท webpeel login for 500/week free ยท webpeel.dev/pricing for unlimited`);
195
195
  }
196
- else if (usageInfo.limit <= 125) {
196
+ else if (usageInfo.limit <= 500) {
197
197
  // Free tier authenticated users โ€” show upgrade CTA
198
198
  const costText = stealth ? ' (costs 5 credits)' : '';
199
199
  const pct = Math.round((usageInfo.used / usageInfo.limit) * 100);
200
200
  if (pct >= 80) {
201
201
  console.error(`โš ๏ธ ${usageInfo.remaining}/${usageInfo.limit} fetches remaining this week${costText}.`);
202
- console.error(` Upgrade to Pro ($9/mo) for 1,250/week โ†’ https://webpeel.dev/#pricing`);
202
+ console.error(` Upgrade to Pro ($9/mo) for 1,250/week โ†’ webpeel.dev/pricing`);
203
203
  }
204
204
  else if (pct >= 50) {
205
- console.error(`โšก ${usageInfo.remaining}/${usageInfo.limit} fetches remaining this week${costText}. Upgrade: webpeel.dev/#pricing`);
205
+ console.error(`โšก ${usageInfo.remaining}/${usageInfo.limit} fetches remaining this week${costText}. Upgrade: webpeel.dev/pricing`);
206
206
  }
207
207
  else {
208
208
  console.error(`โšก ${usageInfo.remaining}/${usageInfo.limit} fetches remaining this week${costText}.`);
@@ -322,7 +322,7 @@ export async function handleUsage() {
322
322
  console.log(`Used this week: ${used}/${limit}`);
323
323
  console.log(`Remaining: ${remaining}`);
324
324
  console.log(`Resets: ${nextMonday.toUTCString()}`);
325
- console.log('\n๐Ÿ’ก Run `webpeel login` to get 125 fetches/week for free!');
325
+ console.log('\n๐Ÿ’ก Run `webpeel login` to get 500 fetches/week for free!');
326
326
  console.log(' Or sign up at https://app.webpeel.dev/signup\n');
327
327
  return;
328
328
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cli-auth.js","sourceRoot":"","sources":["../src/cli-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-auth.js","sourceRoot":"","sources":["../src/cli-auth.ts"],"names":[],"mappings":"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"}