npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, πŸ‘‹, I’m Ryan HefnerΒ  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you πŸ™

Β© 2026 – Pkg Stats / Ryan Hefner

@sashbot/uibridge

v1.6.0

Published

πŸ€– AI-friendly live session automation with REAL screenshot backgrounds (no transparency issues!) - control your EXISTING browser with visual debug panel. Perfect for AI agents!

Readme

πŸŒ‰ UIBridge - AI-Powered Browser Automation for AI Agents

Primary Method: Use PowerShell helper functions for reliable, tested browser automation with built-in error handling and JSON validation.

npm version License: MIT

🎯 What UIBridge Does

UIBridge provides reliable browser automation specifically designed for AI agents. It runs automation against a real browser with visual feedback and comprehensive error handling.

Perfect for: AI agents, automation testing, web scraping, form filling, UI testing.


πŸš€ Quick Start for AI Agents (Recommended Method)

Step 1: Install UIBridge

npm install @sashbot/uibridge

Step 2: Start the Server

# Start the UIBridge server (keep this running)
node node_modules/@sashbot/uibridge/api-server.cjs

βœ… Server Status: You should see UIBridge API Server running on http://localhost:3002

Step 3: Load PowerShell Helper Functions

# Download the helper functions (includes JSON corruption fixes)
curl -o uibridge-powershell-helpers.ps1 https://unpkg.com/@sashbot/uibridge@latest/uibridge-powershell-helpers.ps1

# Load the functions (do this first in every session)
. .\uibridge-powershell-helpers.ps1

Step 4: Verify Everything Works

# Test server connection
Test-UIBridgeServer

# Start a complete automation session (opens browser and takes screenshot)
Start-UIBridgeSession -Url "https://example.com"

πŸŽ‰ That's it! You now have reliable browser automation with proper error handling.


πŸ€– Core AI Agent Commands (Primary Method)

πŸ”— Connection & Navigation

# Always load helpers first in every session
. .\uibridge-powershell-helpers.ps1

# Test server connection
Test-UIBridgeServer

# Navigate to any URL
Open-UIBridgePage -Url "https://example.com"
Open-UIBridgePage -Url "http://localhost:3000"

# Get current page information
Get-UIBridgePageInfo

πŸ–±οΈ Clicking Elements (Robust with Multiple Strategies)

# Click by text content (RECOMMENDED - most reliable)
Click-UIBridgeText -Text "Submit"
Click-UIBridgeText -Text "Login"
Click-UIBridgeText -Text "Save Changes"

# Click by test ID (best for testing)
Click-UIBridgeTestId -TestId "submit-btn"
Click-UIBridgeTestId -TestId "login-button"

# Click by CSS selector (when other methods don't work)
Click-UIBridgeElement -Selector "#save-button"
Click-UIBridgeElement -Selector ".submit-btn"
Click-UIBridgeElement -Selector "button[type='submit']"

πŸ“Έ Screenshots (Auto-Saved with Validation)

# Basic screenshot (recommended)
Take-UIBridgeScreenshot

# Full page screenshot with options
Take-UIBridgeScreenshot -FullPage $true -Format "png" -Quality 90

# Screenshot with specific background color
Take-UIBridgeScreenshot -BackgroundColor "white"
Take-UIBridgeScreenshot -BackgroundColor "transparent"
Take-UIBridgeScreenshot -BackgroundColor "auto"  # Auto-detect page background

# List all saved screenshots
Get-UIBridgeScreenshots

πŸ”„ Complete Automation Workflows

# Complete automation session with error handling
Start-UIBridgeSession -Url "https://example.com"

# Example: Form automation workflow
. .\uibridge-powershell-helpers.ps1
Test-UIBridgeServer
Open-UIBridgePage -Url "https://example.com/form"
Take-UIBridgeScreenshot  # Before
Click-UIBridgeText -Text "Fill Form"
Take-UIBridgeScreenshot  # After
Click-UIBridgeTestId -TestId "submit-btn"
Take-UIBridgeScreenshot  # Final result
Get-UIBridgeScreenshots  # Review all screenshots

βœ… Why PowerShell Helpers Are the Primary Method

πŸ›‘οΈ Built-in Reliability (v1.2.5+ includes JSON corruption fixes)

  • JSON Validation: Every command validates JSON before sending to prevent corruption errors
  • Consistent Formatting: All JSON uses proper depth and escaping
  • Error Handling: Clear error messages with troubleshooting guidance
  • Special Character Support: Handles quotes, apostrophes, unicode, emoji correctly

🎯 AI Agent Optimized

  • Simple Function Calls: Click-UIBridgeText -Text "Submit" instead of complex JSON
  • Multiple Click Strategies: Automatic fallback between text, testId, and CSS selectors
  • Auto-Save Screenshots: Timestamps and organized file management
  • Connection Testing: Built-in server health checks

πŸ§ͺ Comprehensive Testing

  • 17 Unit Tests: JSON generation, special characters, error handling
  • Integration Tests: Real server and browser testing
  • Regression Prevention: Prevents the return of JSON corruption bugs
# Run tests to verify everything works
pwsh -ExecutionPolicy Bypass -File test-powershell-helpers.ps1

πŸ”§ When to Use Alternative Methods

The PowerShell helpers are the recommended primary method, but use alternatives for these specific scenarios:

🌐 Live Session Method (Visual Debugging)

Use when: You need to see automation happen in real-time in your own browser

<!-- Add to your web app for live visual feedback -->
<script src="http://localhost:3002/uibridge-client.js"></script>
# Download live session helpers
curl -o uibridge-live-session-helpers.ps1 https://unpkg.com/@sashbot/uibridge@latest/uibridge-live-session-helpers.ps1
. .\uibridge-live-session-helpers.ps1

# Control YOUR browser live
Click-UIBridgeLiveText -Text "Submit"  # You see it happen in your browser!

πŸ”§ Direct HTTP API

Use when:

  • Working from non-PowerShell environments (Python, Node.js, etc.)
  • Need custom JSON structures not supported by helpers
  • Building your own wrapper functions
# Direct HTTP for other languages
curl -X POST http://localhost:3002/execute \
  -H "Content-Type: application/json" \
  -d '{"command":"click","selector":{"text":"Submit"}}'

πŸ“¦ NPM Package Integration

Use when: Building JavaScript/TypeScript applications with UIBridge

import { UIBridge } from '@sashbot/uibridge';
const bridge = new UIBridge();
await bridge.click({ text: 'Submit' });

🚨 Troubleshooting & Error Resolution

Problem: JSON corruption errors

βœ… FIXED in v1.2.5+ The PowerShell helpers now generate valid JSON consistently:

# Verify the fix works
pwsh -ExecutionPolicy Bypass -File test-powershell-helpers.ps1
# Should show: All tests passed! βœ…

Problem: Server not accessible

Test-UIBridgeServer
# If this fails:
# 1. Restart server: node node_modules/@sashbot/uibridge/api-server.cjs
# 2. Check firewall/antivirus blocking port 3002
# 3. Try different port: . .\uibridge-powershell-helpers.ps1 -ServerUrl "http://localhost:3003"

Problem: Elements not found

# Try multiple strategies in order:
Click-UIBridgeText -Text "Button Text"        # Try this first (most reliable)
Click-UIBridgeTestId -TestId "button-id"      # If text doesn't work  
Click-UIBridgeElement -Selector "#button-id"  # If test ID doesn't work

# Take screenshot to see current page state
Take-UIBridgeScreenshot

Problem: Special characters in text

# These all work correctly with the fixed helpers:
Click-UIBridgeText -Text "Text with ""quotes"" and 'apostrophes'"
Click-UIBridgeText -Text "Button with emoji πŸš€"
Click-UIBridgeText -Text "Unicode: ζ΅‹θ―• Ψ§Ω„ΨΉΨ±Ψ¨ΩŠΨ© русский"

🎯 AI Agent Best Practices

βœ… DO (Primary Method):

# 1. Always load helpers first
. .\uibridge-powershell-helpers.ps1

# 2. Test connection before automating
Test-UIBridgeServer

# 3. Use text-based clicking first (most reliable)
Click-UIBridgeText -Text "Submit"

# 4. Take screenshots to verify actions
Take-UIBridgeScreenshot

# 5. Use complete workflows
Start-UIBridgeSession -Url "https://example.com"

⚠️ AVOID:

  • Don't construct JSON manually - use the helper functions
  • Don't skip Test-UIBridgeServer - always verify connection
  • Don't use complex CSS selectors if text clicking works
  • Don't forget to handle errors with try/catch blocks

πŸ“Š Helper Functions Reference

Core Functions

| Function | Purpose | Example | |----------|---------|---------| | Test-UIBridgeServer | Check server connection | Test-UIBridgeServer | | Open-UIBridgePage | Navigate to URL | Open-UIBridgePage -Url "https://example.com" | | Take-UIBridgeScreenshot | Capture page screenshot | Take-UIBridgeScreenshot -FullPage $true | | Click-UIBridgeText | Click by text content | Click-UIBridgeText -Text "Submit" | | Click-UIBridgeTestId | Click by test ID | Click-UIBridgeTestId -TestId "submit-btn" | | Click-UIBridgeElement | Click by CSS selector | Click-UIBridgeElement -Selector "#btn" | | Get-UIBridgePageInfo | Get page title/URL | Get-UIBridgePageInfo | | Get-UIBridgeScreenshots | List saved screenshots | Get-UIBridgeScreenshots | | Start-UIBridgeSession | Complete automation setup | Start-UIBridgeSession -Url "https://example.com" |

Advanced Usage

# Custom timeout for slow pages
Click-UIBridgeText -Text "Submit" -Timeout 10000

# High quality screenshot
Take-UIBridgeScreenshot -Quality 95 -Format "png"

# Multiple screenshots for comparison
Take-UIBridgeScreenshot  # Before action
Click-UIBridgeText -Text "Change Background"
Take-UIBridgeScreenshot  # After action

πŸ”¬ Testing & Validation

Run Built-in Tests

# Test JSON generation and helper functions
pwsh -ExecutionPolicy Bypass -File test-powershell-helpers.ps1

# Expected result:
# πŸ“Š Test Results Summary
# Total Tests: 17
# Passed: 17 βœ…
# Failed: 0 βœ…

Integration with CI/CD

# In your build scripts
$testResult = & pwsh -ExecutionPolicy Bypass -File test-powershell-helpers.ps1
if ($LASTEXITCODE -ne 0) {
    throw "UIBridge PowerShell helper tests failed"
}

πŸŽ‰ Why UIBridge PowerShell Helpers Are Perfect for AI Agents

  1. πŸ›‘οΈ Reliability: Built-in JSON validation prevents corruption errors
  2. 🎯 Simplicity: Click-UIBridgeText -Text "Submit" instead of complex APIs
  3. πŸ“Έ Auto-Management: Screenshots auto-save with timestamps
  4. πŸ” Error Handling: Clear error messages with troubleshooting guidance
  5. πŸ€– AI-Optimized: Functions designed specifically for AI agent workflows
  6. ⚑ Fast Setup: Load helpers, test connection, start automating
  7. πŸ§ͺ Tested: 17 unit tests ensure reliability
  8. 🌐 Universal: Works with any web application

πŸ“š Additional Resources


πŸŒ‰ Built for AI Agents: UIBridge provides the most reliable browser automation for AI agents with comprehensive error handling, JSON validation, and intuitive PowerShell functions.