@ulpi/browse

AI Agent Integration

Set up @ulpi/browse with Claude Code, Cursor, Cline, and Windsurf.

Claude Code

The fastest way to integrate browse with Claude Code is via the built-in skill:

browse install-skill

This grants all necessary permissions and teaches Claude Code the browse command reference.

Manual Setup

If you prefer manual setup, add browse commands to your .claude/settings.json permissions:

{
  "permissions": {
    "allow": [
      "Bash(browse:*)"
    ]
  }
}

Example Workflow

You: "Go to https://app.com and fill in the login form"

Claude Code:
  $ browse goto https://app.com
  $ browse wait --network-idle
  $ browse snapshot -i
  @e1 [textbox] "Email"
  @e2 [textbox] "Password"
  @e3 [button] "Sign In"
  $ browse fill @e1 "user@example.com"
  $ browse fill @e2 "password123"
  $ browse click @e3

Cursor

Cursor can use browse through its bash tool. No special setup needed — just ask Cursor to run browse commands:

"Use browse to navigate to https://example.com and take a screenshot"

Cursor will execute browse goto, browse screenshot, etc. through its terminal integration.

Cline

Cline supports browse through its execute command tool. Configure the tool use permissions in Cline's settings to allow browse commands.

Windsurf

Windsurf can execute browse commands through its terminal tool. Use browse as you would any CLI tool — Windsurf handles the execution.

Tips for All Agents

  1. Always wait after navigation: browse wait --network-idle ensures the page is fully loaded
  2. Use snapshots for interaction: browse snapshot -i gives the agent numbered refs to click/fill
  3. Use --json for structured output: Easier for agents to parse responses
  4. Use --content-boundaries: Prevents prompt injection from untrusted page content

On this page