Human Browser Use

# human-browser-use Skill

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "Human Browser Use" with this command: npx skills add andyless/human-browser-use

human-browser-use Skill

Human-like browser automation extension for browser-use.

When to use

Use human-browser-use instead of raw browser-use when:

  • The target site has anti-bot detection (Cloudflare, reCAPTCHA, DataDome, etc.)
  • You need mouse movements to look like a real person
  • You need typing to have natural rhythm and occasional typos
  • You need to hide automation fingerprints (navigator.webdriver, WebGL, etc.)

Installation

pip install human-browser-use

CLI (preferred for quick tasks)

hbu open https://example.com       # Navigate
hbu state                           # See elements
hbu click 5                         # Click (human-like trajectory)
hbu type "Hello"                    # Type (human-like dynamics)
hbu screenshot page.png             # Screenshot
hbu close                           # Close

All browser-use CLI commands work with hbu. The browser stays alive between commands.

Python API

import asyncio
from human_browser_use import HumanBrowserSession, HumanBrowserProfile, HumanBehaviorConfig

async def main():
    session = HumanBrowserSession(
        human_config=HumanBehaviorConfig(),
        browser_profile=HumanBrowserProfile(headless=False),
    )
    await session.start()
    await session.navigate_to("https://example.com")

    page = await session.get_current_page()           # Returns HumanPage
    els = await page.get_elements_by_css_selector("input")  # Returns HumanElement[]
    await els[0].click()                               # Human-like Bezier trajectory
    await els[0].fill("hello world")                   # Human-like typing dynamics
    await page.press("Enter")

    await session.reset()

asyncio.run(main())

With browser-use Agent

from browser_use import Agent
from langchain_openai import ChatOpenAI
from human_browser_use import HumanBrowserSession, HumanBrowserProfile, HumanBehaviorConfig

agent = Agent(
    task="Your task here",
    llm=ChatOpenAI(model="gpt-4o"),
    browser_session=HumanBrowserSession(
        human_config=HumanBehaviorConfig(),
        browser_profile=HumanBrowserProfile(headless=False),
    ),
)
await agent.run()

API reference

ClassReplacesPurpose
HumanBrowserSessionBrowserSessionSession with human behavior + stealth JS
HumanBrowserProfileBrowserProfileChrome flags to hide automation fingerprints
HumanBehaviorConfigMaster config (mouse, keyboard, scroll, timing)

HumanBrowserSession

session = HumanBrowserSession(human_config=config, browser_profile=profile)
await session.start()
await session.navigate_to(url)
page = await session.get_current_page()   # HumanPage
pages = await session.get_pages()         # list[HumanPage]
await session.reset()

HumanPage (returned by session)

elements = await page.get_elements_by_css_selector("selector")  # list[HumanElement]
element = await page.get_element("selector")                     # HumanElement | None
await page.press("Enter")
await page.goto("https://...")

HumanElement (returned by page)

await element.click()                    # Bezier trajectory + variable press duration
await element.fill("text")              # Lognormal delays + typo simulation
await element.fill("text", clear=False) # Append without clearing

Configuration cheatsheet

config = HumanBehaviorConfig()

# Mouse
config.mouse.overshoot_probability = 0.15    # Overshoot chance
config.mouse.click_offset_sigma = 3.0        # Click position randomness (px)
config.mouse.press_duration_range = (0.05, 0.15)

# Keyboard
config.keyboard.delay_mu = 4.17              # Lognormal mean → ~65ms
config.keyboard.typo_probability = 0.02      # Typo chance per key
config.keyboard.common_bigram_factor = 0.7   # "th","er" 30% faster

# Scroll
config.scroll.impulse_delta_range = (80, 200)
config.scroll.inertia_decay = 0.85

# Timing
config.timing.pre_action_delay_range = (0.1, 0.3)

# Feature toggles
config.enable_stealth = True
config.enable_human_mouse = True
config.enable_human_keyboard = True
config.enable_human_scroll = True

Important rules

  • Always import from human_browser_use, not browser_use
  • Use HumanBrowserSession + HumanBrowserProfile (not BrowserSession / BrowserProfile)
  • Get elements via page.get_elements_by_css_selector() — they return HumanElement with human-like behavior
  • Do NOT use base Element class directly — it bypasses human behavior
  • If using a local proxy, set os.environ['no_proxy'] = 'localhost,127.0.0.1' before creating the session

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

Agent Browser Stealth

Stealth browser automation with anti-detection. Launches Chromium with fingerprint randomization, webdriver flag removal, Canvas/WebGL spoofing, and permissi...

Registry SourceRecently Updated
1430Profile unavailable
Coding

Ghost Browser

Automated Chrome browser using nodriver for AI agent web tasks. Full CLI control with LLM-optimized commands — text-based interaction, markdown output, sessi...

Registry SourceRecently Updated
5200Profile unavailable
Automation

Gemini Browser

Query Google Gemini via browser automation using OpenClaw's Browser Relay. Use when you need to ask Gemini questions and get AI responses. Requires OpenClaw...

Registry SourceRecently Updated
2880Profile unavailable
Automation

Virtual Desktop Pro v4 -- Universal Browser Execution

Persistent authenticated browser for OpenClaw via kasmweb/chrome Docker sidecar. Principal logs in once via noVNC — sessions saved permanently in Docker volu...

Registry SourceRecently Updated
2800Profile unavailable