[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9975":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":15,"starSnapshotCount":15,"syncStatus":38,"lastSyncTime":39,"discoverSource":40},9975,"browserless","browserless\u002Fbrowserless","Deploy headless browsers in Docker. Run on our cloud or bring your own. Free for non-commercial uses.","https:\u002F\u002Fbrowserless.io",null,"TypeScript",13321,1014,75,26,0,11,48,192,43,44.02,"Other",false,"main",true,[5,26,27,28,29,30,31,32,33,34],"chrome","docker","firefox","nodejs","playwright","puppeteer","typescript","webkit","websocket","2026-06-12 02:02:15","\u003C!-- markdownlint-disable commands-show-output first-line-h1 no-emphasis-as-heading no-inline-html -->\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fbrowserless.io\" align=\"center\">\n    \u003Ccenter align=\"center\">\n      \u003Cpicture>\n        \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\".\u002Fassets\u002Flogo-white.svg\" width=\"600\">\n        \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\".\u002Fassets\u002Flogo.svg\" width=\"600\">\n        \u003Cimg src=\".\u002Fassets\u002Flogo.svg\" alt=\"Browserless logo\" width=\"600\">\n      \u003C\u002Fpicture>\n    \u003C\u002Fcenter>\n  \u003C\u002Fa>\n\n  \u003Ch3>Deploy headless browsers in Docker. Run on our cloud or bring your own.\u003C\u002Fh3>\n\n  \u003Cp>\n    \u003Ca href=\"https:\u002F\u002Fbrowserless.io\u002F\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🧪_Try_on_Cloud-4A90E2?style=for-the-badge\" alt=\"Try on Cloud\" \u002F>\n    \u003C\u002Fa>\n    &nbsp;&nbsp;\n    \u003Ca href=\"#-1-minute-quickstart\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F📦_Run_Locally-34A853?style=for-the-badge\" alt=\"Run Locally\" \u002F>\n    \u003C\u002Fa>\n    &nbsp;&nbsp;\n    \u003Ca href=\"https:\u002F\u002Fdocs.browserless.io\u002F\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F📘_Dev_Docs-5C6AC4?style=for-the-badge\" alt=\"Developer Docs\" \u002F>\n    \u003C\u002Fa>\n  \u003C\u002Fp>\n\n  \u003Cp>\n    \u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F4378\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Ftrendshift.io\u002Fapi\u002Fbadge\u002Frepositories\u002F4378\" alt=\"browserless%2Fbrowserless | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"\u002F>\u003C\u002Fa>\n  \u003C\u002Fp>\n\n  \u003Cp>\n    \u003Ca href=\"https:\u002F\u002Fhub.docker.com\u002Fr\u002Fbrowserless\u002Fchrome\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fpulls\u002Fbrowserless\u002Fchrome?style=flat-square\" alt=\"Docker pulls\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbrowserless\u002Fbrowserless\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fbrowserless\u002Fbrowserless?style=flat-square\" alt=\"GitHub stars\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbrowserless\u002Fbrowserless\u002Ftags\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fpackage-json\u002Fv\u002Fbrowserless\u002Fchrome?style=flat-square\" alt=\"Version\" \u002F>\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fstatus.browserless.io\u002F\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FStatus-Operational-success?style=flat-square\" alt=\"Status\" \u002F>\n    \u003C\u002Fa>\n  \u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\n## 📋 Table of Contents\n\n- [Get Started in Seconds](#-get-started-in-seconds)\n- [Features](#-features)\n- [Customisable Deployment Options](#-customisable-deployment-options)\n- [Why Browserless?](#-why-browserless)\n- [Licensing](#-licensing)\n\n\n## 🚀 Get Started in Seconds!\n\nGet up and running in three simple steps:\n\n### Step 1: Run the Docker image\n```bash\ndocker run -p 3000:3000 ghcr.io\u002Fbrowserless\u002Fchromium\n```\n### Step 2: Open the docs in your browser\nVisit http:\u002F\u002Flocalhost:3000\u002Fdocs\n\n**✅ Success!** Your browser service is live at `ws:\u002F\u002Flocalhost:3000`\n\n### Step 3: Connect your script with Puppeteer or Playwright\n\n\u003Cdetails open>\n\u003Csummary>\u003Cb>📘 Puppeteer Example\u003C\u002Fb>\u003C\u002Fsummary>\n\n```js\nimport puppeteer from 'puppeteer-core';\n\nconst browser = await puppeteer.connect({\n  browserWSEndpoint: 'ws:\u002F\u002Flocalhost:3000',\n});\n\nconst page = await browser.newPage();\nawait page.goto('https:\u002F\u002Fexample.com');\nconsole.log(await page.title());\nawait browser.close();\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🎭 Playwright Example\u003C\u002Fb>\u003C\u002Fsummary>\n\n```js\nimport pw from 'playwright-core';\n\nconst browser = await pw.firefox.connect(\n  'ws:\u002F\u002Flocalhost:3000\u002Ffirefox\u002Fplaywright'\n);\n\nconst page = await browser.newPage();\nawait page.goto('https:\u002F\u002Fexample.com');\nconsole.log(await page.title());\nawait browser.close();\n```\n\n **Note:** Use `ghcr.io\u002Fbrowserless\u002Ffirefox` or `ghcr.io\u002Fbrowserless\u002Fmulti` for Firefox\u002FWebkit support.\n\n\u003C\u002Fdetails>\n\n\u003C\u002Fbr>\n\n### Output:\n```\nExample Domain\n```\n\n\n## ✨ Features\n\n### General Features\n\n- **Parallelism and queueing** — Handle multiple sessions with configurable concurrency limits\n- **Debug Viewer** — Actively view and debug running browser sessions in real-time\n- **Unforked libraries** — Works seamlessly with standard Puppeteer and Playwright\n- **Fonts & emoji** — All system fonts and emoji support out-of-the-box\n- **Configurable timeouts** — Set session timers and health-checks to keep things running smoothly\n- **Error tolerant** — If Chrome crashes, Browserless won't\n- **ARM64 architecture support** — Full support for ARM64 platforms including Apple Silicon; some browsers (Edge, Chrome) have limited ARM64 compatibility\n\n### Premium Features\n\nOur [Self-serve cloud and Enterprise offerings](https:\u002F\u002Fwww.browserless.io\u002Fpricing\u002F) include all the general features plus extras, such as:\n\n- **[BrowserQL](https:\u002F\u002Fwww.browserless.io\u002Ffeature\u002Fbrowserql)** for avoiding detectors and solving captchas\n- **[Hybrid automations](https:\u002F\u002Fdocs.browserless.io\u002Fbaas\u002Finteractive-browser-sessions\u002Fhybrid-automation)** for streaming live browser sessions during scripts\n- **[Persistent Sessions](https:\u002F\u002Fdocs.browserless.io\u002Fbaas\u002Fsession-management\u002Fpersisting-state)** for persisting browser state (cookies, cache, localStorage) across multiple sessions with configurable data retention up to 90 days\n- **[Session Replay](https:\u002F\u002Fdocs.browserless.io\u002Fbaas\u002Finteractive-browser-sessions\u002Fsession-replay)** for recording and debugging browser sessions with event capture and video playback\n- **[Chrome Extensions Support](https:\u002F\u002Fdocs.browserless.io\u002Fbaas\u002Ffeatures\u002Fbrowser-extensions)** for loading custom extensions including ad blockers, captcha solvers, etc.\n- **[Advanced Captcha\u002FStealth Routes](https:\u002F\u002Fdocs.browserless.io\u002Fbrowserql\u002Fbot-detection\u002Foverview)** for enhanced anti-detection with Captcha solving, fingerprint randomization, and residential proxy rotation\n- **[REST APIs](https:\u002F\u002Fwww.browserless.io\u002Ffeature\u002Frest-apis)** for tasks such as retrieving HTML, PDFs or Screenshot etc.\n- **[Inbuilt residential proxy](https:\u002F\u002Fwww.browserless.io\u002Fblog\u002Fresidential-proxying\u002F)** for automatic IP rotation and geo-targeting with residential proxy networks\n- **[\u002Fsmart-scrape API](https:\u002F\u002Fdocs.browserless.io\u002Frest-apis\u002Fsmart-scrape)** for intelligently scraping any URL using cascading strategies (HTTP fetch, proxy, headless browser, captcha solving)\n- **[\u002Fcrawl API](https:\u002F\u002Fdocs.browserless.io\u002Frest-apis\u002Fcrawl)** for asynchronously crawling entire websites and scraping every discovered page into structured, LLM-ready data\n- **[\u002Fmap API](https:\u002F\u002Fdocs.browserless.io\u002Frest-apis\u002Fmap)** for discovering all URLs on a website via sitemaps and link extraction, with search-based relevance ranking\n- **[\u002Fsearch API](https:\u002F\u002Fdocs.browserless.io\u002Frest-apis\u002Fsearch)** for searching the web and optionally scraping each result page into structured formats (markdown, HTML, links, or screenshots)\n- **[MCP Server](https:\u002F\u002Fdocs.browserless.io\u002Fmcp\u002Fbrowserless-mcp-server)** for connecting AI assistants (Claude Desktop, Cursor, VS Code, Windsurf) directly to Browserless browser automation\n- **[Webhook Integrations](https:\u002F\u002Fdocs.browserless.io\u002Fenterprise\u002Fdocker\u002Fwebhooks)** for queue alerts, rejections, timeouts, errors, and health failures\n\n## 🚢 Customisable Deployment Options\n\nSelect the deployment model that best fits your needs:\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"50%\" valign=\"top\">\n\n### 🔓 Open Source (Self-Hosted)\n\nFree, self-hosted solution with core browser automation capabilities.\n\n**Best for:** Testing, development, and small projects\n\n[↓ Quickstart above](#-get-started-in-seconds)\n\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\" valign=\"top\">\n\n### 🏢 Enterprise Docker (Self-Hosted)\n\nFull Enterprise features in a self-hosted container.\n\n**Best for:** Production workloads requiring data sovereignty\n\n[→ Learn More](https:\u002F\u002Fwww.browserless.io\u002Fpricing\u002F)\n\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd width=\"50%\" valign=\"top\">\n\n### ☁️ Cloud (Self-Serve)\n\nFully managed, pay-as-you-go service with automatic scaling.\n\n**Best for:** Quick starts and rapid prototyping\n\n[→ Start Free](https:\u002F\u002Fbrowserless.io\u002F)\n\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\" valign=\"top\">\n\n### 🔒 Private Deployment\n\nCustom Enterprise infrastructure across major cloud providers.\n\n**Best for:** Large-scale enterprise deployments\n\n[→ Contact Sales](https:\u002F\u002Fwww.browserless.io\u002Fcontact)\n\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\n> **Want to dive deeper?** Check out this [detailed guide](.\u002FLEARN_MORE.md) for advanced stuff including Docker configuration, hosting providers, SDK extensions, and more.\n\n\n## 💡 Why Browserless?\n\n**Running Chrome in the cloud or CI sucks.**\n\nMissing fonts. Random crashes. Dependency hell. Lambda limits. You know the drill.\n\n**Browserless solves this** by handling browsers as a managed service — locally or in our cloud — so you can focus on automation, not infrastructure. We've taken care of the hard parts: system packages, font libraries, security patches, scaling strategies, and CVEs.\n\nYou still own your script. You still control your code. We just make sure the Browser runs smoothly, every time.\n\n## 📜 Licensing\n\nSPDX-License-Identifier: SSPL-1.0 OR Browserless Commercial License.\n\nIf you want to use Browserless to build commercial sites, applications, or in a continuous-integration system that's closed-source then you'll need to purchase a commercial license. This allows you to keep your software proprietary whilst still using browserless. [You can purchase a commercial license here](https:\u002F\u002Fwww.browserless.io\u002Fcontact). A commercial license grants you:\n\n- Priority support on issues and features.\n- On-premise running as well as running on public cloud providers for commercial\u002FCI purposes for proprietary systems.\n- Ability to modify the source (forking) for your own purposes.\n- A new admin user-interface.\n\nNot only does it grant you a license to run such a critical piece of infrastructure, but you are also supporting further innovation in this space and our ability to contribute to it.\n\nIf you are creating an open source application under a license compatible with the Server Side License 1.0, you may use Browserless under those terms.\n\n\u003Cdiv align=\"center\">\n\n**Happy hacking!**\n\nNeed help? Reach out to us at **support@browserless.io**\n\n\u003C\u002Fdiv>\n","browserless 是一个用于在 Docker 中部署无头浏览器的工具，支持在云端运行或自托管。其核心功能包括通过 Puppeteer 或 Playwright 连接和控制 Chrome、Firefox 等浏览器实例，提供高度可定制化的部署选项，并且易于快速上手。技术特点涵盖 TypeScript 编写、WebSocket 通信以及与 Node.js 生态系统的良好集成。该工具非常适合需要进行网页自动化测试、截图、PDF 生成等场景的企业和个人开发者使用，尤其适用于非商业用途下的免费应用。",2,"2026-06-11 03:25:52","top_topic"]