[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-70594":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":32,"readmeContent":33,"aiSummary":34,"trendingCount":16,"starSnapshotCount":16,"syncStatus":35,"lastSyncTime":36,"discoverSource":37},70594,"browser","lightpanda-io\u002Fbrowser","lightpanda-io","Lightpanda: the headless browser designed for AI and automation","https:\u002F\u002Flightpanda.io",null,"Zig",30891,1366,85,73,0,64,186,648,192,44.41,"GNU Affero General Public License v3.0",false,"main",[5,26,27,28,29,30,31],"browser-automation","cdp","headless","playwright","puppeteer","zig","2026-06-12 02:02:35","\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Flightpanda.io\">\u003Cimg src=\"https:\u002F\u002Fcdn.lightpanda.io\u002Fassets\u002Fimages\u002Flogo\u002Flpd-logo.png\" alt=\"Logo\" height=170>\u003C\u002Fa>\n\u003C\u002Fp>\n\u003Ch1 align=\"center\">Lightpanda Browser\u003C\u002Fh1>\n\u003Cp align=\"center\">\n\u003Cstrong>The headless browser built from scratch for AI agents and automation.\u003C\u002Fstrong>\u003Cbr>\nNot a Chromium fork. Not a WebKit patch. A new browser, written in Zig.\n\u003C\u002Fp>\n\n\u003C\u002Fdiv>\n\u003Cdiv align=\"center\">\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Flightpanda-io\u002Fbrowser)](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fbrowser\u002Fblob\u002Fmain\u002FLICENSE)\n[![Twitter Follow](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002Flightpanda_io)](https:\u002F\u002Ftwitter.com\u002Flightpanda_io)\n[![GitHub stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Flightpanda-io\u002Fbrowser)](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fbrowser)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1391984864894521354?style=flat-square&label=discord)](https:\u002F\u002Fdiscord.gg\u002FK63XeymfB5)\n\n\u003C\u002Fdiv>\n\u003Cdiv align=\"center\">\n\n[\u003Cimg width=\"350px\" src=\"https:\u002F\u002Fcdn.lightpanda.io\u002Fassets\u002Fimages\u002Fgithub\u002Fexecution-time-v2.svg\">\n](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fdemo)\n&emsp;\n[\u003Cimg width=\"350px\" src=\"https:\u002F\u002Fcdn.lightpanda.io\u002Fassets\u002Fimages\u002Fgithub\u002Fmemory-frame-v2.svg\">\n](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fdemo)\n\u003C\u002Fdiv>\n\n## Benchmarks\n\nRequesting 933 real web pages over the network on a AWS EC2 m5.large instance.\nSee [benchmark details](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fdemo\u002Fblob\u002Fmain\u002FBENCHMARKS.md#crawler-benchmark).\n\n| Metric | Lightpanda | Headless Chrome | Difference |\n| :---- | :---- | :---- | :---- |\n| Memory (peak, 100 pages) | 123MB | 2GB | ~16 less |\n| Execution time (100 pages) | 5s | 46s | ~9x faster |\n\n## Quick start\n\n### Install\n\n**Package Managers**\n\nLatest nightly from Homebrew:\n```console\nbrew install lightpanda-io\u002Fbrowser\u002Flightpanda\n```\n\nLatest nightly from Arch Linux User Repository:\n```console\nyay -S lightpanda-nightly-bi\n```\n\n**Download from the nightly builds**\n\nYou can download the last binary from the [nightly\nbuilds](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fbrowser\u002Freleases\u002Ftag\u002Fnightly) for\nLinux and MacOS for both x86_64 and aarch64.\n\n*For Linux*\n```console\ncurl -L -o lightpanda https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fbrowser\u002Freleases\u002Fdownload\u002Fnightly\u002Flightpanda-x86_64-linux && \\\nchmod a+x .\u002Flightpanda\n```\n\nVerify the binary before running anything:\n```console\n.\u002Flightpanda version\n```\n\n[Linux aarch64 is also available](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fbrowser\u002Freleases\u002Ftag\u002Fnightly)\n\n> **Note:** The Linux release binaries are linked against glibc. On musl-based distros (Alpine, etc.) the binary fails with `cannot execute: required file not found` because the glibc dynamic linker is missing. Use a glibc-based base image (e.g., `FROM debian:bookworm-slim` or `FROM ubuntu:24.04`) or [build from sources](#build-from-sources).\n\n*For MacOS*\n```console\ncurl -L -o lightpanda https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fbrowser\u002Freleases\u002Fdownload\u002Fnightly\u002Flightpanda-aarch64-macos && \\\nchmod a+x .\u002Flightpanda\n```\n\n[MacOS x86_64 is also available](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fbrowser\u002Freleases\u002Ftag\u002Fnightly)\n\n*For Windows + WSL2*\n\nLightpanda has no native Windows binary. Install it inside WSL following the Linux steps above.\n\nWSL not installed? Run `wsl --install` from an administrator shell, restart, then open `wsl`.\nSee [Microsoft's WSL install guide](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fwindows\u002Fwsl\u002Finstall) for details.\n\nYour automation client (Puppeteer, Playwright, etc.) can run either inside WSL or on the Windows host. WSL forwards `localhost:9222` automatically.\n\n**Install from Docker**\n\nLightpanda provides [official Docker\nimages](https:\u002F\u002Fhub.docker.com\u002Fr\u002Flightpanda\u002Fbrowser) for both Linux amd64 and\narm64 architectures.\nThe following command fetches the Docker image and starts a new container exposing Lightpanda's CDP server on port `9222`.\n```console\ndocker run -d --name lightpanda -p 127.0.0.1:9222:9222 lightpanda\u002Fbrowser:nightly\n```\n\n### Dump a URL\n\n```console\n.\u002Flightpanda fetch --obey-robots --dump html --log-format pretty  --log-level info https:\u002F\u002Fdemo-browser.lightpanda.io\u002Fcampfire-commerce\u002F\n```\n\nYou can use `--dump markdown` to convert directly into markdown.\n`--wait-until`, `--wait-ms`, `--wait-selector` and `--wait-script` are\navailable to adjust waiting time before dump.\n\n### Start a CDP server\n\n```console\n.\u002Flightpanda serve --obey-robots --log-format pretty  --log-level info --host 127.0.0.1 --port 9222\n```\nOnce the CDP server started, you can run a Puppeteer script by configuring the\n`browserWSEndpoint`.\n\n\u003Cdetails>\n\u003Csummary>Example Puppeteer script\u003C\u002Fsummary>\n\n```js\nimport puppeteer from 'puppeteer-core';\n\n\u002F\u002F use browserWSEndpoint to pass the Lightpanda's CDP server address.\nconst browser = await puppeteer.connect({\n  browserWSEndpoint: \"ws:\u002F\u002F127.0.0.1:9222\",\n});\n\n\u002F\u002F The rest of your script remains the same.\nconst context = await browser.createBrowserContext();\nconst frame = await context.newPage();\n\n\u002F\u002F Dump all the links from the frame.\nawait frame.goto('https:\u002F\u002Fdemo-browser.lightpanda.io\u002Famiibo\u002F', {waitUntil: \"networkidle0\"});\n\nconst links = await frame.evaluate(() => {\n  return Array.from(document.querySelectorAll('a')).map(row => {\n    return row.getAttribute('href');\n  });\n});\n\nconsole.log(links);\n\nawait frame.close();\nawait context.close();\nawait browser.disconnect();\n```\n\u003C\u002Fdetails>\n\n### Native MCP and skill\n\nThe MCP server communicates via MCP JSON-RPC 2.0 over stdio.\n\nAdd to your MCP configuration:\n```json\n{\n  \"mcpServers\": {\n    \"lightpanda\": {\n      \"command\": \"\u002Fpath\u002Fto\u002Flightpanda\",\n      \"args\": [\"mcp\"]\n    }\n  }\n}\n```\n\n[Read full documentation](https:\u002F\u002Flightpanda.io\u002Fdocs\u002Fopen-source\u002Fguides\u002Fmcp-server)\n\nA skill is available in [lightpanda-io\u002Fagent-skill](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fagent-skill).\n\n### Telemetry\nBy default, Lightpanda collects and sends usage telemetry. This can be disabled by setting an environment variable `LIGHTPANDA_DISABLE_TELEMETRY=true`. You can read Lightpanda's privacy policy at: [https:\u002F\u002Flightpanda.io\u002Fprivacy-policy](https:\u002F\u002Flightpanda.io\u002Fprivacy-policy).\n\n## Status\n\nLightpanda is in Beta and currently a work in progress. Stability and coverage are improving and many websites now work.\nYou may still encounter errors or crashes. Please open an issue with specifics if so.\n\nHere are the key features we have implemented:\n\n- [ ] CORS [#2015](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fbrowser\u002Fissues\u002F2015)\n- [x] HTTP loader ([Libcurl](https:\u002F\u002Fcurl.se\u002Flibcurl\u002F))\n- [x] HTML parser ([html5ever](https:\u002F\u002Fgithub.com\u002Fservo\u002Fhtml5ever))\n- [x] DOM tree\n- [x] Javascript support ([v8](https:\u002F\u002Fv8.dev\u002F))\n- [x] DOM APIs\n- [x] Ajax\n  - [x] XHR API\n  - [x] Fetch API\n- [x] DOM dump\n- [x] CDP\u002Fwebsockets server\n- [x] Click\n- [x] Input form\n- [x] Cookies\n- [x] Custom HTTP headers\n- [x] Proxy support\n- [x] Network interception\n- [x] Respect `robots.txt` with option `--obey-robots`\n\nNOTE: There are hundreds of Web APIs. Developing a browser (even just for headless mode) is a huge task. Coverage will increase over time.\n\n## Build from sources\n\n### Prerequisites\n\nLightpanda is written with [Zig](https:\u002F\u002Fziglang.org\u002F) `0.15.2`. You have to\ninstall it with the right version in order to build the project.\n\nLightpanda also depends on\n[v8](https:\u002F\u002Fchromium.googlesource.com\u002Fv8\u002Fv8.git),\n[Libcurl](https:\u002F\u002Fcurl.se\u002Flibcurl\u002F) and [html5ever](https:\u002F\u002Fgithub.com\u002Fservo\u002Fhtml5ever).\n\nTo be able to build the v8 engine, you have to install some libs:\n\nFor **Debian\u002FUbuntu based Linux**:\n\n```\nsudo apt install xz-utils ca-certificates \\\n    pkg-config libglib2.0-dev \\\n    clang make curl git\n```\nYou also need to [install Rust](https:\u002F\u002Frust-lang.org\u002Ftools\u002Finstall\u002F).\n\nFor systems with [**Nix**](https:\u002F\u002Fnixos.org\u002Fdownload\u002F), you can use the devShell:\n```\nnix develop\n```\n\nFor **MacOS**, you need cmake and [Rust](https:\u002F\u002Frust-lang.org\u002Ftools\u002Finstall\u002F).\n```\nbrew install cmake\n```\n\n### Build and run\n\nYou can build the entire browser with `make build` or `make build-dev` for debug\nenv.\n\nBut you can directly use the zig command: `zig build run`.\n\n#### Embed v8 snapshot\n\nLighpanda uses v8 snapshot. By default, it is created on startup but you can\nembed it by using the following commands:\n\nGenerate the snapshot.\n```\nzig build snapshot_creator -- src\u002Fsnapshot.bin\n```\n\nBuild using the snapshot binary.\n```\nzig build -Dsnapshot_path=..\u002F..\u002Fsnapshot.bin\n```\n\nSee [#1279](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fbrowser\u002Fpull\u002F1279) for more details.\n\n## Test\n\n### Unit Tests\n\nYou can test Lightpanda by running `make test`.\n\n```bash\nmake test                                       # Run all tests\nmake test F=\"server\"                            # Filter by substring\nTEST_FILTER=\"WebApi: #selector_all\" make test   # Filter main + subtest (separator: #)\nTEST_VERBOSE=true make test\nTEST_FAIL_FIRST=true make test\nMETRICS=true make test                          # Capture allocation\u002Fduration metrics as JSON\n```\n\n### End to end tests\n\nTo run end to end tests, you need to clone the [demo\nrepository](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fdemo) into `..\u002Fdemo` dir.\n\nYou have to install the [demo's node\nrequirements](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fdemo?tab=readme-ov-file#dependencies-1)\n\nYou also need to install [Go](https:\u002F\u002Fgo.dev) > v1.24.\n\n```\nmake end2end\n```\n\n### Web Platform Tests\n\nLightpanda is tested against the standardized [Web Platform\nTests](https:\u002F\u002Fweb-platform-tests.org\u002F).\n\nWe use [a fork](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fwpt\u002Ftree\u002Ffork) including a custom\n[`testharnessreport.js`](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fwpt\u002Fcommit\u002F01a3115c076a3ad0c84849dbbf77a6e3d199c56f).\n\nFor reference, you can easily execute a WPT test case with your browser via\n[wpt.live](https:\u002F\u002Fwpt.live).\n\n#### Configure WPT HTTP server\n\nTo run the test, you must clone the repository, configure the custom hosts and generate the\n`MANIFEST.json` file.\n\nClone the repository with the `fork` branch.\n```\ngit clone -b fork --depth=1 git@github.com:lightpanda-io\u002Fwpt.git\n```\n\nEnter into the `wpt\u002F` dir.\n\nInstall custom domains in your `\u002Fetc\u002Fhosts`\n```\n.\u002Fwpt make-hosts-file | sudo tee -a \u002Fetc\u002Fhosts\n```\n\nGenerate `MANIFEST.json`\n```\n.\u002Fwpt manifest\n```\nUse the [WPT's setup\nguide](https:\u002F\u002Fweb-platform-tests.org\u002Frunning-tests\u002Ffrom-local-system.html) for\ndetails.\n\n#### Run WPT test suite\n\nAn external [Go](https:\u002F\u002Fgo.dev) runner is provided by\n[github.com\u002Flightpanda-io\u002Fdemo\u002F](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fdemo\u002F)\nrepository, located into `wptrunner\u002F` dir.\nYou need to clone the project first.\n\nFirst start the WPT's HTTP server from your `wpt\u002F` clone dir.\n```\n.\u002Fwpt serve\n```\n\nRun a Lightpanda browser\n\n```\nzig build run -- --insecure-disable-tls-host-verification\n```\n\nThen you can start the wptrunner from the demo's clone dir:\n```\ncd wptrunner && go run .\n```\n\nOr one specific test:\n\n```\ncd wptrunner && go run . Node-childNodes.html\n```\n\n`wptrunner` command accepts `--summary` and `--json` options modifying output.\nAlso `--concurrency` define the concurrency limit.\n\n:warning: Running the whole test suite will take a long time. In this case,\nit's useful to build in `releaseFast` mode to make tests faster.\n\n```\nzig build -Doptimize=ReleaseFast run\n```\n\n## Contributing\n\nSee [CONTRIBUTING.md](https:\u002F\u002Fgithub.com\u002Flightpanda-io\u002Fbrowser\u002Fblob\u002Fmain\u002FCONTRIBUTING.md) for guidelines.\nYou must sign our [CLA](CLA.md) during the pull request process.\n- [Discord](https:\u002F\u002Fdiscord.gg\u002FK63XeymfB5)\n\n## Why Lightpanda?\n\n### Javascript execution is mandatory for the modern web\n\nSimple HTTP requests used to be enough for web automation. That's no longer the case. Javascript now drives most of the web:\n\n- Ajax, Single Page Apps, infinite loading, instant search\n- JS frameworks: React, Vue, Angular, and others\n\n### Chrome is not the right tool\n\nRunning a full desktop browser on a server works, but it does not scale well. Chrome at hundreds or thousands of instances is expensive:\n\n- Heavy on RAM and CPU\n- Hard to package, deploy, and maintain at scale\n- Many features are not necessary in headless made\n\n### Lightpanda is built for performance\n\nSupporting Javascript with real performance meant building from scratch rather than forking Chromium:\n\n- Not based on Chromium, Blink, or WebKit\n- Written in Zig, a low-level language with explicit memory control\n- No graphical rendering engine\n","Lightpanda 是一个专为AI代理和自动化设计的无头浏览器。它采用Zig语言从零开始构建，不基于Chromium或WebKit，因此在内存占用和执行效率上具有显著优势，例如在处理100个网页时，其峰值内存使用量仅为123MB，比Headless Chrome低约16倍，且速度快9倍。适用于需要高效网络抓取、自动化测试以及依赖于轻量级环境部署的应用场景。",2,"2026-06-11 03:32:54","high_star"]