freshcrate
Home > Frameworks > clawbird

clawbird

AI-native browser automation for OpenClaw, LangChain, and AI agents. Automate job applications, price monitoring, trading bots, web scraping. Puppeteer/Selenium alternative with 40+ capabilities.

Description

AI-native browser automation for OpenClaw, LangChain, and AI agents. Automate job applications, price monitoring, trading bots, web scraping. Puppeteer/Selenium alternative with 40+ capabilities.

README

๐Ÿฆ ClawBird - AI-Powered Browser Automation

License: MIT Node.js OpenClaw Playwright

The AI-native browser automation engine โ€” Built for OpenClaw, usable by any AI agent, bot, or automation workflow.

ClawBird is a production-ready browser automation driver that bridges the gap between AI assistants and web browsers. Unlike traditional automation tools, it's designed from the ground up for AI agents to interact with websites programmatically.

๐ŸŽฏ What Makes ClawBird Different

Feature Traditional Tools ClawBird
AI-Native โŒ โœ… Built for LLM agents
OpenClaw Integration โŒ โœ… First-class support
CDP + Playwright Pick one โœ… Both combined
Element References XPath/CSS โœ… AI-friendly aria-refs
No Extension Required โŒ โœ… Standalone browser
Workflow Automation Limited โœ… Job apps, trading, monitoring

๐Ÿš€ Quick Start

# Clone the repository
git clone https://github.com/premsagar/clawbird.git
cd clawbird

# Install dependencies
npm install

# Start using immediately
node driver.js

๐Ÿ’ก Use Cases

๐Ÿค– AI Agent Integration

  • OpenClaw Skill: Seamless integration with OpenClaw personal AI assistant
  • LangChain Tool: Use as a browser tool in LangChain agents
  • Custom AI Bots: Power your own AI assistants with web browsing capabilities

๐Ÿ’ผ Job Application Automation

// Auto-fill job applications across LinkedIn, Indeed, company sites
const workflow = new JobApplicationWorkflow();
await workflow.applyToJobs({
  keywords: 'software engineer',
  location: 'remote',
  autoFill: true
});

๐Ÿ“Š Price Monitoring & Trading

// Monitor prices, stocks, crypto in real-time
const monitor = new PriceMonitor();
await monitor.watch({
  urls: ['amazon.com/product', 'ebay.com/item'],
  alertOnChange: true,
  screenshot: true
});

๐Ÿ“ฐ News Aggregation

// AI-powered news monitoring and summarization
const news = new NewsAggregator();
const headlines = await news.fetchFrom([
  'techcrunch.com',
  'hackernews.com',
  'reddit.com/r/programming'
]);

๐Ÿงช Web Scraping & Data Extraction

// Extract structured data from any website
const data = await driver.extract({
  url: 'example.com/products',
  schema: {
    name: '.product-title',
    price: '.product-price',
    image: '.product-img@src'
  }
});

๐Ÿ“ธ Visual Documentation

// Automated screenshots for documentation
const docs = new ScreenshotDocumenter();
await docs.captureSiteMap('https://docs.openclaw.ai');

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    AI Agent / OpenClaw                   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                      โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                  ClawBird Driver                         โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚   CDP Layer  โ”‚  โ”‚  Playwright  โ”‚  โ”‚   Actions    โ”‚  โ”‚
โ”‚  โ”‚  (Chrome     โ”‚  โ”‚   (Advanced  โ”‚  โ”‚   (Click,    โ”‚  โ”‚
โ”‚  โ”‚   DevTools)  โ”‚  โ”‚    Actions)  โ”‚  โ”‚   Type, etc) โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                      โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              Chrome / Brave / Edge                       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ฆ Installation

As OpenClaw Plugin

# Install to OpenClaw plugins
mkdir -p ~/.openclaw/plugins
cp -r clawbird ~/.openclaw/plugins/custom-browser

# Configure OpenClaw
cat >> ~/.openclaw/openclaw.json << 'EOF'
{
  "browser": {
    "profiles": {
      "custom": {
        "driver": "custom",
        "executablePath": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
        "cdpPort": 19000,
        "userDataDir": "~/.openclaw/browser/custom"
      }
    }
  }
}
EOF

openclaw gateway restart

As Standalone Library

npm install clawbird
const { ClawBird } = require('clawbird');

const browser = new ClawBird();
await browser.start();
const page = await browser.open('https://example.com');
await page.screenshot({ path: 'example.png' });
await browser.stop();

๐Ÿ”ง Features

Core Capabilities

  • โœ… Browser Lifecycle: Start, stop, manage browser instances
  • โœ… Tab Management: List, open, close, focus tabs
  • โœ… Navigation: Navigate to URLs with wait conditions
  • โœ… Screenshots: Full page, element, or viewport captures
  • โœ… Snapshots: HTML source and ARIA accessibility tree

Advanced Actions (Powered by Playwright)

  • โœ… Click: Single, double, with modifiers (Ctrl, Shift, Alt)
  • โœ… Type: Fill text inputs, submit forms
  • โœ… Keyboard: Press any key or key combination
  • โœ… Hover: Mouse hover with precise positioning
  • โœ… Drag & Drop: Inter-element dragging
  • โœ… Select: Dropdown and multi-select handling
  • โœ… Form Fill: Batch form population
  • โœ… Resize: Viewport and window resizing
  • โœ… Wait: Time-based, element, or text conditions
  • โœ… Upload: File upload automation
  • โœ… Download: File download monitoring

AI-Friendly Features

  • โœ… Element References: ARIA-based refs (e12, e34) instead of fragile XPath
  • โœ… Accessibility Tree: Structured page representation for AI parsing
  • โœ… Smart Waiting: Auto-wait for elements before interaction
  • โœ… Error Recovery: Automatic retry and fallback mechanisms

Monitoring & Debugging

  • โœ… Console Logs: Capture browser console output
  • โœ… Network Monitoring: Track requests and responses
  • โœ… Device Emulation: Mobile, tablet, custom viewports
  • โœ… Geolocation: Override location and timezone

๐ŸŽฎ API Reference

Basic Usage

const driver = new CustomBrowserDriver();

// Start browser
await driver.start({
  name: 'my-profile',
  executablePath: '/path/to/chrome',
  cdpPort: 19000
});

// Open a page
const tab = await driver.open('https://example.com');

// Take screenshot
await driver.screenshot(tab.targetId, { path: 'screenshot.png' });

// Perform actions
await driver.act(tab.targetId, {
  kind: 'click',
  ref: 'e12'  // AI-friendly element reference
});

// Get page snapshot
const snapshot = await driver.snapshot(tab.targetId);

// Stop browser
await driver.stop();

Workflow Automation

const { WorkflowRunner } = require('clawbird/workflows');

const runner = new WorkflowRunner();

// Define a workflow
const workflow = {
  name: 'Job Application',
  steps: [
    { action: 'navigate', url: 'https://linkedin.com/jobs' },
    { action: 'type', selector: '[name="keywords"]', text: 'Software Engineer' },
    { action: 'click', selector: 'button[type="submit"]' },
    { action: 'screenshot', name: 'search-results' }
  ]
};

// Execute
await runner.run(workflow);

๐Ÿงช Testing

# Run all tests
npm test

# Run specific test suites
npm run test:actions      # Playwright action tests
npm run test:complete     # Full integration tests
npm run test:workflows    # Workflow automation tests

๐Ÿ“ Project Structure

clawbird/
โ”œโ”€โ”€ driver.js              # Core browser driver (CDP + Playwright)
โ”œโ”€โ”€ index.js               # OpenClaw plugin entry point
โ”œโ”€โ”€ package.json           # Dependencies and scripts
โ”œโ”€โ”€ config-example.json    # Configuration template
โ”œโ”€โ”€ workflows/             # Pre-built automation workflows
โ”‚   โ”œโ”€โ”€ price-monitor.js   # Price tracking automation
โ”‚   โ”œโ”€โ”€ news-aggregator.js # News monitoring
โ”‚   โ”œโ”€โ”€ form-filler.js     # Form automation
โ”‚   โ””โ”€โ”€ screenshot-documenter.js  # Visual documentation
โ”œโ”€โ”€ test*.js               # Test suites
โ””โ”€โ”€ README.md              # This file

๐Ÿ”— Integrations

OpenClaw

// In OpenClaw agent
const browser = await openclaw.browser.start('custom');
await browser.open('https://example.com');

LangChain

// As a LangChain tool
const tool = new ClawBirdTool();
const result = await tool.invoke({
  action: 'search',
  query: 'latest AI news'
});

Custom AI Agents

// Direct integration
const driver = new CustomBrowserDriver();
// Use in your agent's toolset

๐Ÿค Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Development Setup

git clone https://github.com/premsagar/clawbird.git
cd clawbird
npm install
npm run dev

๐Ÿ“ License

MIT License - see LICENSE file for details.

๐Ÿ™ Acknowledgments

๐ŸŒŸ Star History

Star History Chart


๐Ÿ’ฌ Keywords for AI Discovery

browser automation ai agent openclaw playwright chrome devtools cdp web scraping job automation price monitoring trading bot form filler screenshot automation ai assistant llm tool langchain puppeteer alternative selenium alternative web testing e2e testing headless browser browser driver automation framework rpa robotic process automation ai-native agentic ai


Built with โšก by Premsagar
GitHub โ€ข OpenClaw

Release History

VersionChangesUrgencyDate
0.0.0No release found โ€” using repo HEADLow2/21/2026
main@2026-02-21Latest activity on main branchLow2/21/2026
main@2026-02-21Latest activity on main branchLow2/21/2026
main@2026-02-21Latest activity on main branchLow2/21/2026
main@2026-02-21Latest activity on main branchLow2/21/2026
main@2026-02-21Latest activity on main branchLow2/21/2026
main@2026-02-21Latest activity on main branchLow2/21/2026
main@2026-02-21Latest activity on main branchLow2/21/2026
main@2026-02-21Latest activity on main branchLow2/21/2026
main@2026-02-21Latest activity on main branchLow2/21/2026

Dependencies & License Audit

Loading dependencies...

Similar Packages

agent-browser-workspaceAutomate local Chrome browsing with isolated profiles, extract content, save pages to Markdown, and run searches using CLI tools and Node.js APIs.main@2026-04-21
miniclaw-osWe gave AI agents a brain. Memory, planning, continuity, and self-repair โ€” the missing cognitive architecture layer. Runs on your Mac.v0.1.8
Perplexity-Comet-MCPNo descriptionmain@2026-04-21
claudekit๐Ÿ› ๏ธ Accelerate your Python and JavaScript development with Claude Kit's toolkit, featuring specialized agents, slash commands, and advanced context management.main@2026-04-21
YOAP-A2AConnect AI agents representing humans through the A2A protocol for seamless, secure interaction across apps and tools.main@2026-04-21