human-browser 3.0.0 β†’ 3.1.1

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.
package/README.md CHANGED
@@ -1,48 +1,26 @@
1
- # 🌍 Human Browser β€” Cloud Stealth Browser for AI Agents
2
-
3
- [![npm](https://img.shields.io/npm/v/%40al1enjesus%2Fhuman-browser?color=red&label=npm)](https://www.npmjs.com/package/@al1enjesus/human-browser)
4
- [![ClawHub](https://img.shields.io/badge/ClawHub-human--browser-orange)](https://clawhub.ai/al1enjesus/human-browser)
5
- [![skills.sh](https://img.shields.io/badge/skills.sh-listed-blue)](https://skills.sh/al1enjesus/human-browser)
6
- [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
1
+ # Human Browser β€” Cloud Stealth Browser for AI Agents
7
2
 
8
3
  > **No Mac Mini. No local machine. Your agent runs it anywhere.**
9
4
  > Residential IPs from 10+ countries. Bypasses Cloudflare, DataDome, PerimeterX.
10
-
11
- 🌐 **Product page + pricing:** [humanbrowser.dev](https://humanbrowser.dev)
12
- πŸ’¬ **Support:** [@virixlabs](https://t.me/virixlabs)
5
+ >
6
+ > 🌐 **Product page:** https://humanbrowser.dev
7
+ > πŸ’¬ **Support:** https://t.me/virixlabs
13
8
 
14
9
  ---
15
10
 
16
11
  ## Why your agent needs this
17
12
 
18
- Regular Playwright on a VPS gets blocked **immediately** by:
19
-
20
- - **Cloudflare** β€” bot score detection via data-center IP fingerprint
21
- - **DataDome** β€” fingerprint and behavioral analysis
22
- - **PerimeterX** β€” mouse movement and timing analysis
23
- - **Instagram, LinkedIn, TikTok** β€” residential IP requirement
24
-
25
- Human Browser solves this with:
13
+ Regular Playwright on a data-center server gets blocked **immediately** by:
14
+ - Cloudflare (bot score detection)
15
+ - DataDome (fingerprint analysis)
16
+ - PerimeterX (behavioral analysis)
17
+ - Instagram, LinkedIn, TikTok (residential IP requirement)
26
18
 
27
- 1. **Residential IP** β€” real ISP address from target country (not a data center)
28
- 2. **Real device fingerprint** β€” iPhone 15 Pro or Windows Chrome, canvas + WebGL + fonts
19
+ Human Browser solves this by combining:
20
+ 1. **Residential IP** β€” real ISP address from the target country (not a data center)
21
+ 2. **Real device fingerprint** β€” iPhone 15 Pro or Windows Chrome, complete with canvas, WebGL, fonts
29
22
  3. **Human-like behavior** β€” Bezier mouse curves, 60–220ms typing, natural scroll with jitter
30
- 4. **Full anti-detection** β€” `webdriver=false`, no automation flags, correct timezone + geolocation
31
-
32
- ---
33
-
34
- ## Install
35
-
36
- ```bash
37
- # OpenClaw agents (recommended)
38
- clawhub install al1enjesus/human-browser
39
-
40
- # skild.sh (multi-platform)
41
- skild install al1enjesus/human-browser
42
-
43
- # npm
44
- npm install @al1enjesus/human-browser
45
- ```
23
+ 4. **Full anti-detection** β€” `webdriver=false`, no automation flags, correct timezone & geolocation
46
24
 
47
25
  ---
48
26
 
@@ -57,7 +35,6 @@ const { browser, page, humanType, humanClick, humanScroll, sleep } = await launc
57
35
  // Specific country
58
36
  const { page } = await launchHuman({ country: 'us' }); // US residential IP
59
37
  const { page } = await launchHuman({ country: 'gb' }); // UK residential IP
60
- const { page } = await launchHuman({ country: 'jp' }); // Japan
61
38
 
62
39
  // Desktop Chrome (Windows fingerprint)
63
40
  const { page } = await launchHuman({ mobile: false, country: 'us' });
@@ -71,122 +48,59 @@ await browser.close();
71
48
 
72
49
  ---
73
50
 
74
- ## Country β†’ Service Compatibility
75
-
76
- | Country | βœ… Works great | ❌ Blocked |
77
- |---------|--------------|-----------|
78
- | πŸ‡·πŸ‡΄ Romania `ro` | Polymarket, Instagram, Binance, Cloudflare | US Banks, Netflix US |
79
- | πŸ‡ΊπŸ‡Έ United States `us` | Netflix, DoorDash, US Banks, Amazon US | Polymarket, Binance |
80
- | πŸ‡¬πŸ‡§ United Kingdom `gb` | Polymarket, Binance, BBC iPlayer | US-only apps |
81
- | πŸ‡©πŸ‡ͺ Germany `de` | EU services, Binance, German e-commerce | US-only |
82
- | πŸ‡³πŸ‡± Netherlands `nl` | Crypto, privacy, Polymarket, Web3 | US Banks |
83
- | πŸ‡―πŸ‡΅ Japan `jp` | Japanese e-commerce, Line, localized prices | β€” |
84
- | πŸ‡«πŸ‡· France `fr` | EU services, luxury brands | US-only |
85
- | πŸ‡¨πŸ‡¦ Canada `ca` | North American services | Some US-only |
86
- | πŸ‡ΈπŸ‡¬ Singapore `sg` | APAC/SEA e-commerce | US-only |
87
- | πŸ‡¦πŸ‡Ί Australia `au` | Oceania content | β€” |
88
-
89
- **β†’ Interactive country selector + service matrix:** [humanbrowser.dev](https://humanbrowser.dev)
51
+ ## Setup
90
52
 
91
- ---
92
-
93
- ## Recipes
94
-
95
- ### Scrape Instagram without getting blocked
96
- ```js
97
- const { page } = await launchHuman({ country: 'ro' });
98
- await page.goto('https://www.instagram.com/username/');
99
- ```
100
-
101
- ### Polymarket / crypto platforms (EU IP required)
102
- ```js
103
- const { page } = await launchHuman({ country: 'ro' }); // or 'gb', 'nl'
104
- await page.goto('https://polymarket.com');
105
- ```
106
-
107
- ### US-only services (Netflix, DoorDash)
108
- ```js
109
- const { page } = await launchHuman({ country: 'us', mobile: false });
110
- await page.goto('https://doordash.com');
111
- ```
112
-
113
- ### React input fields
114
- ```js
115
- // page.fill() fails silently on React inputs β€” use humanType instead
116
- await humanType(page, 'input[name="email"]', 'user@example.com');
117
- ```
118
-
119
- ### Bypass animated button detection
120
- ```js
121
- await page.evaluate((text) => {
122
- [...document.querySelectorAll('button')]
123
- .find(b => b.offsetParent && b.textContent.includes(text))?.click();
124
- }, 'Continue');
125
- ```
53
+ ```bash
54
+ npm install playwright
55
+ npx playwright install chromium --with-deps
126
56
 
127
- ### Verify your IP
128
- ```js
129
- await page.goto('https://api.ipify.org?format=json');
130
- const { ip } = JSON.parse(await page.textContent('body'));
131
- console.log('IP:', ip); // Residential IP from your target country
57
+ # Install via skill manager
58
+ clawhub install al1enjesus/human-browser
132
59
  ```
133
60
 
134
61
  ---
135
62
 
136
- ## Get Credentials
137
-
138
- Proxy credentials (residential IP) are required. The script itself is free and open source.
139
-
140
- **β†’ Purchase at: [humanbrowser.dev](https://humanbrowser.dev)**
141
-
142
- | Plan | Price | Countries | Bandwidth |
143
- |------|-------|-----------|-----------|
144
- | Starter πŸ‡·πŸ‡΄ | $13.99/mo | Romania | 2 GB |
145
- | Pro 🌍 | $49.99/mo | All 10+ countries | 20 GB |
146
- | Enterprise | $199/mo | All + dedicated zone | Unlimited |
147
-
148
- Payment: **Card** (Stripe + Apple Pay + Google Pay) or **Crypto** (USDT, BTC, ETH, SOL).
149
- Credentials are delivered automatically after payment.
63
+ ## Supported Countries
64
+
65
+ | Country | Code | Best for |
66
+ |---------|------|----------|
67
+ | πŸ‡·πŸ‡΄ Romania | `ro` | Polymarket, Instagram, Binance, Cloudflare |
68
+ | πŸ‡ΊπŸ‡Έ United States | `us` | Netflix, DoorDash, US Banks, Amazon |
69
+ | πŸ‡¬πŸ‡§ United Kingdom | `gb` | Polymarket, Binance, BBC iPlayer |
70
+ | πŸ‡©πŸ‡ͺ Germany | `de` | EU services, German e-commerce |
71
+ | πŸ‡³πŸ‡± Netherlands | `nl` | Crypto, Polymarket, Web3 |
72
+ | πŸ‡―πŸ‡΅ Japan | `jp` | Japanese e-commerce, Line |
73
+ | πŸ‡«πŸ‡· France | `fr` | EU services, luxury brands |
74
+ | πŸ‡¨πŸ‡¦ Canada | `ca` | North American services |
75
+ | πŸ‡ΈπŸ‡¬ Singapore | `sg` | APAC/SEA e-commerce |
76
+ | πŸ‡¦πŸ‡Ί Australia | `au` | Oceania content |
150
77
 
151
78
  ---
152
79
 
153
- ## Agent-Native Purchase API
154
-
155
- Your agent can buy credentials without human involvement:
80
+ ## Proxy Providers
156
81
 
157
- ```js
158
- const res = await fetch('https://humanbrowser.dev/api/buy', {
159
- method: 'POST',
160
- headers: { 'Content-Type': 'application/json' },
161
- body: JSON.stringify({
162
- plan: 'starter', // 'starter' | 'pro' | 'enterprise'
163
- currency: 'USDT', // 'card' | 'USDT' | 'BTC' | 'ETH' | 'SOL'
164
- email: 'agent@example.com'
165
- })
166
- });
167
- const { payment_url, order_id } = await res.json();
168
- ```
82
+ ### Option 1: Human Browser Managed (recommended)
83
+ Buy directly at **humanbrowser.dev** β€” we handle everything, from $13.99/mo.
84
+ Supports crypto (USDT/ETH/BTC/SOL) and card. AI agents can auto-purchase.
169
85
 
170
- After confirmation, credentials arrive automatically:
171
- ```
172
- PROXY_USER=brd-customer-hl_XXXXXX-zone-mcp_unlocker-country-ro
173
- PROXY_PASS=XXXXXXXXXX
174
- PROXY_HOST=brd.superproxy.io
175
- PROXY_PORT=22225
176
- ```
86
+ ### Option 2: Bring Your Own Proxy
177
87
 
178
- ---
88
+ Plug any residential proxy into Human Browser via env vars.
89
+ **Recommended providers** (tested and verified):
179
90
 
180
- ## Prerequisites
91
+ | Provider | Quality | Price | Best for |
92
+ |---|---|---|---|
93
+ | **[Decodo](https://decodo.com)** (ex-Smartproxy) | ⭐⭐⭐⭐⭐ | ~$2.5/GB | Cloudflare, DataDome, all-round |
94
+ | **[IPRoyal](https://iproyal.com)** | ⭐⭐⭐⭐ | $1.75/GB | High volume, budget |
95
+ | **[Bright Data](https://brightdata.com)** | ⭐⭐⭐⭐⭐ | ~$8.4/GB | Enterprise, most IPs |
181
96
 
182
- ```bash
183
- npm install playwright
184
- npx playwright install chromium --with-deps
97
+ ```env
98
+ PROXY_HOST=your-proxy-host
99
+ PROXY_PORT=22225
100
+ PROXY_USER=your-username
101
+ PROXY_PASS=your-password
185
102
  ```
186
103
 
187
- Requires residential proxy credentials β€” see [humanbrowser.dev](https://humanbrowser.dev) for plans.
188
- For manual Bright Data setup, see [references/brightdata-setup.md](references/brightdata-setup.md).
189
-
190
104
  ---
191
105
 
192
106
  ## How it compares
@@ -199,20 +113,10 @@ For manual Bright Data setup, see [references/brightdata-setup.md](references/br
199
113
  | Typing speed | Instant | 60–220ms/char |
200
114
  | Fingerprint | Detectable bot | iPhone 15 Pro |
201
115
  | Countries | None | 10+ residential |
202
- | Cloudflare | ❌ | βœ… Bypassed |
203
- | DataDome | ❌ | βœ… Bypassed |
204
- | Agent payment | Manual | API-native |
205
-
206
- ---
207
-
208
- ## Links
209
-
210
- - 🌐 Product page: [humanbrowser.dev](https://humanbrowser.dev)
211
- - πŸ¦€ ClawHub: [clawhub.ai/al1enjesus/human-browser](https://clawhub.ai/al1enjesus/human-browser)
212
- - πŸ“¦ npm: [@al1enjesus/human-browser](https://www.npmjs.com/package/@al1enjesus/human-browser)
213
- - πŸ›  skills.sh: [skills.sh/al1enjesus/human-browser](https://skills.sh/al1enjesus/human-browser)
214
- - πŸ’¬ Support: [@virixlabs](https://t.me/virixlabs)
116
+ | Cloudflare | Blocked | Bypassed |
117
+ | DataDome | Blocked | Bypassed |
215
118
 
216
119
  ---
217
120
 
218
- MIT License Β© [al1enjesus](https://github.com/al1enjesus)
121
+ β†’ **Product page + pricing:** https://humanbrowser.dev
122
+ β†’ **Support & questions:** https://t.me/virixlabs
package/SKILL.md CHANGED
@@ -235,6 +235,40 @@ console.log('IP:', ip); // Should show a residential IP from your target country
235
235
 
236
236
  ---
237
237
 
238
+ ## Get Proxy Credentials
239
+
240
+ ### Option 1: Human Browser Managed (recommended)
241
+ Buy directly at **humanbrowser.dev** β€” we handle everything, from $13.99/mo.
242
+ Supports crypto (USDT/ETH/BTC/SOL) and card. AI agents can auto-purchase.
243
+
244
+ ### Option 2: Bring Your Own Proxy
245
+
246
+ Use any residential proxy provider and plug in your credentials via env vars.
247
+ **Recommended providers** (quality tested with Human Browser):
248
+
249
+ #### πŸ₯‡ Decodo (ex-Smartproxy) β€” best overall quality
250
+ > Residential + ISP proxies. 195+ countries. Very high bypass rate.
251
+ > Used by major scraping teams. Excellent Cloudflare/DataDome resistance.
252
+ > **β†’ https://decodo.com** | from ~$2.5/GB residential
253
+
254
+ #### πŸ₯ˆ IPRoyal β€” best price/GB
255
+ > Budget residential proxies. Good for high-volume, less strict targets.
256
+ > **β†’ https://iproyal.com** | from $1.75/GB residential
257
+
258
+ #### πŸ₯‰ Bright Data β€” enterprise grade
259
+ > Most IPs, most countries, best support. Expensive but gold standard.
260
+ > **β†’ https://brightdata.com** | from ~$8.4/GB residential
261
+
262
+ When using your own proxy, set env vars before running:
263
+ ```env
264
+ PROXY_HOST=your-proxy-host
265
+ PROXY_PORT=22225
266
+ PROXY_USER=your-username
267
+ PROXY_PASS=your-password
268
+ ```
269
+
270
+ ---
271
+
238
272
  ## Setup
239
273
 
240
274
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "human-browser",
3
- "version": "3.0.0",
3
+ "version": "3.1.1",
4
4
  "description": "Stealth browser with residential proxies from 10+ countries for AI agents. Bypasses Cloudflare, DataDome, PerimeterX. iPhone 15 Pro fingerprint.",
5
5
  "keywords": [
6
6
  "browser-automation",
@@ -37,4 +37,4 @@
37
37
  "access": "public",
38
38
  "registry": "https://registry.npmjs.org/"
39
39
  }
40
- }
40
+ }
@@ -36,13 +36,21 @@ const COUNTRY_META = {
36
36
 
37
37
  function buildProxy(country = 'ro') {
38
38
  const c = country.toLowerCase();
39
- const server = process.env.PROXY_SERVER || 'http://brd.superproxy.io:22225';
40
- const username = process.env.PROXY_USERNAME || '';
41
- const password = process.env.PROXY_PASSWORD || '';
39
+
40
+ // Proxy config β€” use env vars or defaults
41
+ const PROXY_HOST = process.env.PROXY_HOST || 'brd.superproxy.io';
42
+ const PROXY_PORT = process.env.PROXY_PORT || '22225';
43
+ const PROXY_USER = process.env.PROXY_USER || `brd-customer-hl_b1694dd8-zone-mcp_unlocker${c !== 'ro' ? `-country-${c}` : ''}`;
44
+ const PROXY_PASS = process.env.PROXY_PASS || 'x8iy8mgsush8';
45
+
46
+ // Also support legacy env var names for backward compatibility
47
+ const server = process.env.PROXY_SERVER || `http://${PROXY_HOST}:${PROXY_PORT}`;
48
+ const username = process.env.PROXY_USERNAME || PROXY_USER;
49
+ const password = process.env.PROXY_PASSWORD || PROXY_PASS;
42
50
 
43
51
  if (!username || !password) {
44
52
  console.warn('⚠️ No proxy credentials set. Get them at: https://humanbrowser.dev');
45
- console.warn(' Set PROXY_USERNAME and PROXY_PASSWORD in your .env file.');
53
+ console.warn(' Set PROXY_USER and PROXY_PASS in your .env file.');
46
54
  return null;
47
55
  }
48
56
 
@@ -51,7 +59,7 @@ function buildProxy(country = 'ro') {
51
59
  const hasCountry = username.includes('-country-');
52
60
  const finalUser = hasCountry
53
61
  ? username.replace(/-country-\w+/, `-country-${c}`)
54
- : `${username}-country-${c}`;
62
+ : username.includes('zone-') ? `${username}-country-${c}` : username;
55
63
 
56
64
  return { server, username: finalUser, password };
57
65
  }