{"id":51026558,"url":"https://github.com/gitstq/browser-use-lite","last_synced_at":"2026-06-21T20:02:03.500Z","repository":{"id":364888091,"uuid":"1269610529","full_name":"gitstq/browser-use-lite","owner":"gitstq","description":"Lightweight AI-powered browser automation agent for Node.js - 轻量级AI浏览器自动化代理","archived":false,"fork":false,"pushed_at":"2026-06-14T23:41:21.000Z","size":78,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-15T01:14:46.279Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gitstq.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-14T23:29:45.000Z","updated_at":"2026-06-14T23:41:18.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gitstq/browser-use-lite","commit_stats":null,"previous_names":["gitstq/browser-use-lite"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/gitstq/browser-use-lite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitstq%2Fbrowser-use-lite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitstq%2Fbrowser-use-lite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitstq%2Fbrowser-use-lite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitstq%2Fbrowser-use-lite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gitstq","download_url":"https://codeload.github.com/gitstq/browser-use-lite/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitstq%2Fbrowser-use-lite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34623906,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-21T02:00:05.568Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-21T20:02:02.702Z","updated_at":"2026-06-21T20:02:03.490Z","avatar_url":"https://github.com/gitstq.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003c!-- Logo Placeholder --\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/logo.svg\" alt=\"browser-use-lite Logo\" width=\"180\" height=\"180\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003e🌐 Browser Use Lite\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eLightweight AI Browser Automation Agent — Zero-Config Startup\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/gitstq/browser-use-lite/actions/workflows/ci.yml\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/gitstq/browser-use-lite/ci.yml?style=flat-square\u0026logo=github\u0026label=CI\" alt=\"CI Status\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/browser-use-lite\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/browser-use-lite?style=flat-square\u0026logo=npm\u0026color=cb3837\" alt=\"npm version\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://nodejs.org/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/node-%3E%3D18.0.0-339933?style=flat-square\u0026logo=node.js\" alt=\"Node.js Version\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"./LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/gitstq/browser-use-lite?style=flat-square\u0026color=2b9348\" alt=\"License\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/gitstq/browser-use-lite/stargazers\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/gitstq/browser-use-lite?style=flat-square\u0026logo=github\u0026color=fbbf24\" alt=\"GitHub Stars\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"./README.md\"\u003e简体中文\u003c/a\u003e |\n  \u003ca href=\"./README.zh-TW.md\"\u003e繁體中文\u003c/a\u003e |\n  \u003ca href=\"./README.en.md\"\u003eEnglish\u003c/a\u003e\n\u003c/p\u003e\n\n\u003c/div\u003e\n\n---\n\n## 🎉 Introduction\n\n**Browser Use Lite** is a lightweight browser automation library designed specifically for AI agents. It enables Large Language Models (LLMs) to browse the web, click buttons, fill out forms, and extract data just like a human — all with just a few lines of code.\n\nUnlike traditional automation tools, Browser Use Lite focuses on an **AI-native experience** — it automatically transforms web pages into structured representations that LLMs can understand, allowing AI to make autonomous decisions about the next steps.\n\n### Why Choose Browser Use Lite?\n\n| Feature | Browser Use Lite | Traditional Tools |\n|---------|-----------------|-------------------|\n| AI-Native Support | ✅ Built-in | ❌ Requires manual integration |\n| Startup Config | ✅ Zero-config | ❌ Complex configuration |\n| Page Understanding | ✅ Auto-structured | ❌ Raw HTML |\n| Learning Curve | ✅ Minimal | ❌ Steep |\n\n---\n\n## ✨ Core Features\n\n- 🤖 **AI-Native Design** — Automatically transforms web pages into LLM-friendly structured representations\n- 🚀 **Zero-Config Startup** — Start automating with a single command\n- 🎯 **Precise Control** — Stable browser control powered by Puppeteer\n- 📊 **Data Extraction** — Built-in Zod schema validation for type-safe data scraping\n- 🔧 **Highly Extensible** — Plugin-based architecture for easy customization\n- 🌐 **Proxy Support** — Built-in HTTP/HTTPS/SOCKS proxy configuration\n- 📱 **Multi-Platform** — Supports Windows, macOS, and Linux\n- 🧪 **Test-Friendly** — Built-in testing tools and mock environments\n\n---\n\n## 🚀 Quick Start\n\n### Requirements\n\n- [Node.js](https://nodejs.org/) \u003e= 18.0.0\n- npm \u003e= 9.0.0 or pnpm \u003e= 8.0.0\n\n### Installation\n\n#### Using npm (Recommended)\n\n```bash\nnpm install browser-use-lite\n```\n\n#### Using pnpm\n\n```bash\npnpm add browser-use-lite\n```\n\n#### For Users in Mainland China (Using Mirror Registry)\n\n```bash\n# Use npmmirror temporarily\nnpm install browser-use-lite --registry=https://registry.npmmirror.com\n\n# Or using pnpm\npnpm add browser-use-lite --registry=https://registry.npmmirror.com\n```\n\n### Minimal Runnable Example\n\n```typescript\nimport { BrowserAgent } from 'browser-use-lite';\n\nasync function main() {\n  // Create a browser agent instance\n  const agent = new BrowserAgent({\n    headless: false, // Set to true to run in background\n  });\n\n  try {\n    // Launch browser and execute task\n    const result = await agent.run({\n      task: 'Search for \"browser-use-lite\" on GitHub and return the title and link of the first result',\n    });\n\n    console.log('Task completed!');\n    console.log('Result:', result);\n  } catch (error) {\n    console.error('Task execution failed:', error);\n  } finally {\n    // Close the browser\n    await agent.close();\n  }\n}\n\nmain();\n```\n\n### Running Examples\n\n```bash\n# Clone the repository\ngit clone https://github.com/gitstq/browser-use-lite.git\ncd browser-use-lite\n\n# Install dependencies\nnpm install\n\n# Run example\nnpx ts-node examples/basic-search.ts\n```\n\n---\n\n## 📖 Detailed Usage Guide\n\n### Basic Configuration\n\n```typescript\nimport { BrowserAgent } from 'browser-use-lite';\n\nconst agent = new BrowserAgent({\n  // Browser configuration\n  headless: true,           // Headless mode\n  slowMo: 100,              // Operation delay (ms)\n  viewport: {               // Viewport size\n    width: 1920,\n    height: 1080,\n  },\n\n  // LLM configuration\n  llm: {\n    provider: 'openai',     // Supports openai / anthropic / azure, etc.\n    model: 'gpt-4o',\n    apiKey: process.env.OPENAI_API_KEY,\n  },\n\n  // Proxy configuration (recommended for users in Mainland China)\n  proxy: {\n    server: 'http://127.0.0.1:7890', // Clash/V2Ray local proxy address\n  },\n});\n```\n\n### Proxy Configuration Guide (For Users in Mainland China)\n\nIf you are in Mainland China, you may need to configure a proxy to access certain websites or APIs:\n\n```typescript\n// For Clash users\nconst agent = new BrowserAgent({\n  proxy: {\n    server: 'http://127.0.0.1:7890',\n  },\n});\n\n// For V2RayN users\nconst agent = new BrowserAgent({\n  proxy: {\n    server: 'http://127.0.0.1:10809',\n  },\n});\n\n// Using SOCKS5\nconst agent = new BrowserAgent({\n  proxy: {\n    server: 'socks5://127.0.0.1:10808',\n  },\n});\n\n// Proxy with authentication\nconst agent = new BrowserAgent({\n  proxy: {\n    server: 'http://proxy.example.com:8080',\n    username: 'your-username',\n    password: 'your-password',\n  },\n});\n```\n\n### Data Extraction (with Zod Validation)\n\n```typescript\nimport { z } from 'zod';\nimport { BrowserAgent } from 'browser-use-lite';\n\n// Define data structure\nconst ProductSchema = z.object({\n  name: z.string(),\n  price: z.number(),\n  rating: z.number().min(0).max(5).optional(),\n  url: z.string().url(),\n});\n\nconst agent = new BrowserAgent({\n  llm: { provider: 'openai', model: 'gpt-4o', apiKey: process.env.OPENAI_API_KEY },\n});\n\nasync function scrapeProducts() {\n  const products = await agent.extract({\n    url: 'https://example.com/products',\n    schema: ProductSchema,\n    instruction: 'Extract all product information from the page',\n  });\n\n  console.log('Extracted products:', products);\n  // Type-safe: products is automatically inferred as z.infer\u003ctypeof ProductSchema\u003e[]\n}\n```\n\n### Multi-Step Tasks\n\n```typescript\nconst agent = new BrowserAgent();\n\nawait agent.run({\n  task: [\n    'Open https://github.com/login',\n    'Enter username \"example\" and password \"password\"',\n    'Click the login button',\n    'Navigate to the Settings page',\n    'Extract the user\\'s email address',\n  ],\n  maxSteps: 10, // Maximum number of execution steps\n});\n```\n\n### Custom Actions\n\n```typescript\nimport { BrowserAgent, defineAction } from 'browser-use-lite';\n\nconst customAction = defineAction({\n  name: 'screenshot-element',\n  description: 'Take a screenshot of a specified element',\n  parameters: z.object({\n    selector: z.string(),\n    outputPath: z.string(),\n  }),\n  async execute({ page, parameters }) {\n    const element = await page.$(parameters.selector);\n    if (!element) throw new Error('Element not found');\n    await element.screenshot({ path: parameters.outputPath });\n    return { success: true, path: parameters.outputPath };\n  },\n});\n\nconst agent = new BrowserAgent({\n  actions: [customAction],\n});\n```\n\n---\n\n## 💡 Design Philosophy \u0026 Roadmap\n\n### Architecture\n\n```\nbrowser-use-lite/\n├── src/\n│   ├── core/           # Core engine\n│   │   ├── agent.ts    # Main agent logic\n│   │   ├── browser.ts  # Browser management\n│   │   └── planner.ts  # Task planner\n│   ├── llm/            # LLM integration layer\n│   │   ├── openai.ts\n│   │   ├── anthropic.ts\n│   │   └── base.ts\n│   ├── actions/        # Browser action set\n│   │   ├── click.ts\n│   │   ├── type.ts\n│   │   ├── navigate.ts\n│   │   └── extract.ts\n│   ├── types/          # TypeScript type definitions\n│   └── utils/          # Utility functions\n├── examples/           # Example code\n├── tests/              # Test suite\n└── docs/               # Documentation\n```\n\n### Core Design Principles\n\n1. **AI-First** — All API designs prioritize LLM usability\n2. **Type Safety** — Full TypeScript + Zod for compile-time and runtime guarantees\n3. **Minimal Dependencies** — Core features with zero dependencies, extensions loaded on demand\n4. **Observability** — Built-in detailed logging and debugging tools\n\n### Iteration Roadmap\n\n| Version | Planned Features | ETA |\n|---------|-----------------|-----|\n| v0.1.x | Core browsing features, basic LLM integration | ✅ Completed |\n| v0.2.x | Multi-LLM provider support, plugin system | 🚧 In Progress |\n| v0.3.x | Visual understanding (screenshot analysis), OCR support | 📅 Planned |\n| v0.4.x | Parallel task execution, distributed browsing | 📅 Planned |\n| v1.0.0 | Stable API, complete documentation, production-ready | 📅 Planned |\n\n---\n\n## 📦 Packaging \u0026 Deployment Guide\n\n### Local Build\n\n```bash\n# Clone the repository\ngit clone https://github.com/gitstq/browser-use-lite.git\ncd browser-use-lite\n\n# Install dependencies (use mirror for users in Mainland China)\nnpm install --registry=https://registry.npmmirror.com\n\n# Build the project\nnpm run build\n\n# Run tests\nnpm test\n```\n\n### Publish to npm\n\n```bash\n# Login to npm (if not already logged in)\nnpm login\n\n# Version bump\nnpm version patch  # or minor / major\n\n# Publish\nnpm publish\n\n# For users in Mainland China publishing to npmmirror\nnpm publish --registry=https://registry.npmmirror.com\n```\n\n### Docker Deployment\n\n```dockerfile\nFROM node:18-alpine\n\nWORKDIR /app\n\nCOPY package*.json ./\nRUN npm ci --only=production\n\nCOPY dist/ ./dist/\n\nEXPOSE 3000\n\nCMD [\"node\", \"dist/index.js\"]\n```\n\n```bash\n# Build image\ndocker build -t browser-use-lite .\n\n# Run container\ndocker run -d \\\n  -p 3000:3000 \\\n  -e OPENAI_API_KEY=your-api-key \\\n  --name browser-use-lite \\\n  browser-use-lite\n```\n\n---\n\n## 🤝 Contributing Guide\n\nWe welcome all forms of contributions! Whether it's bug reports, feature suggestions, or code contributions.\n\n### Development Environment Setup\n\n```bash\n# Fork and clone the repository\ngit clone https://github.com/YOUR_USERNAME/browser-use-lite.git\ncd browser-use-lite\n\n# Install dependencies\nnpm install\n\n# Start development mode\nnpm run dev\n\n# Run tests\nnpm test\n\n# Run linter\nnpm run lint\n\n# Auto-fix code style\nnpm run lint:fix\n```\n\n### Commit Convention\n\nWe follow the [Conventional Commits](https://www.conventionalcommits.org/) specification:\n\n```bash\n# Feature commit\ngit commit -m \"feat: add new browser action\"\n\n# Fix commit\ngit commit -m \"fix: resolve element positioning issue on click\"\n\n# Documentation commit\ngit commit -m \"docs: update example code in README\"\n\n# Refactor commit\ngit commit -m \"refactor: optimize LLM call logic\"\n```\n\n### Pull Request Process\n\n1. Fork this repository and create your branch (`git checkout -b feature/amazing-feature`)\n2. Commit your changes (`git commit -m 'feat: add some feature'`)\n3. Push to the branch (`git push origin feature/amazing-feature`)\n4. Open a Pull Request\n\n### Code of Conduct\n\n- Be respectful to every contributor\n- Accept constructive criticism\n- Focus on what's best for the community\n- Show empathy towards other community members\n\n---\n\n## 📄 License\n\nThis project is open-sourced under the [MIT License](https://opensource.org/licenses/MIT).\n\n```\nMIT License\n\nCopyright (c) 2024-present gitstq\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n\n---\n\n## 🙏 Acknowledgements\n\n- [Puppeteer](https://pptr.dev/) — Powerful Node.js browser automation library\n- [Zod](https://zod.dev/) — TypeScript-first schema validation library\n- [OpenAI](https://openai.com/) — Providing powerful LLM APIs\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cp\u003e\n  \u003csub\u003eBuilt with ❤️ by \u003ca href=\"https://github.com/gitstq\"\u003egitstq\u003c/a\u003e\u003c/sub\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\n  \u003ca href=\"https://github.com/gitstq/browser-use-lite/stargazers\"\u003e⭐ Star Us\u003c/a\u003e ·\n  \u003ca href=\"https://github.com/gitstq/browser-use-lite/issues\"\u003e🐛 Submit Issue\u003c/a\u003e ·\n  \u003ca href=\"https://github.com/gitstq/browser-use-lite/discussions\"\u003e💬 Join Discussion\u003c/a\u003e\n\u003c/p\u003e\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitstq%2Fbrowser-use-lite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgitstq%2Fbrowser-use-lite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitstq%2Fbrowser-use-lite/lists"}