非 Chromium/WebKit 分支,专为 AI 自动化设计的无头浏览器,内存峰值仅 123MB(Chromium 为 2GB),执行速度提升约 9 倍,提供 Rust/Zig/JS 多语言 API。

为 AI Agent 和自动化从零打造的无头浏览器。不是 Chromium 分支,不是 WebKit 补丁。是一台全新的浏览器,使用 Zig 编写。
在 AWS EC2 m5.large 实例上请求 933 个真实网页的网络性能。查看基准测试详情。
brew install lightpanda-io/browser/lightpanda
yay -S lightpanda-nightly-bin
可从 nightly builds 下载 Linux 和 MacOS 的 x86_64 及 aarch64 最新二进制。
curl -L -o lightpanda https://github.com/lightpanda-io/browser/releases/download/nightly/lightpanda-x86_64-linux && \
chmod a+x ./lightpanda
运行前先验证二进制:
./lightpanda version
注意:Linux 发行版二进制依赖 glibc。在基于 musl 的发行版(Alpine 等)上会因缺少 glibc 动态链接器而报错 cannot execute: required file not found。请使用基于 glibc 的基础镜像(例如 FROM debian:bookworm-slim 或 FROM ubuntu:24.04),或从源码构建。
curl -L -o lightpanda https://github.com/lightpanda-io/browser/releases/download/nightly/lightpanda-aarch64-macos && \
chmod a+x ./lightpanda
Lightpanda 没有原生 Windows 二进制。在 WSL 内按上述 Linux 步骤安装。
没有安装 WSL?以管理员身份运行 wsl --install,然后重启并打开 wsl。参见微软的 WSL 安装指南。
你的自动化客户端(Puppeteer、Playwright 等)可以在 WSL 内运行,也可以在 Windows 主机上运行。WSL 会自动转发 localhost:9222。
Lightpanda 提供官方 Docker 镜像,支持 Linux amd64 和 arm64 架构。以下命令拉取镜像并启动新容器,将 Lightpanda 的 CDP server 暴露在 9222 端口。
docker run -d --name lightpanda -p 127.0.0.1:9222:9222 lightpanda/browser:nightly
./lightpanda fetch --obey-robots --dump html --log-format pretty --log-level info https://demo-browser.lightpanda.io/campfire-commerce/
可用 --dump markdown 直接转换为 Markdown,或用 --dump png > page.png / --dump pdf > page.pdf 获取纯文本质的页面渲染。支持 --wait-until、--wait-ms、--wait-selector 和 --wait-script 调整抓取前的等待时间。
./lightpanda serve --obey-robots --log-format pretty --log-level info --host 127.0.0.1 --port 9222
CDP server 启动后,可通过配置 browserWSEndpoint 来运行 Puppeteer 脚本。
import puppeteer from 'puppeteer-core';
// use browserWSEndpoint to pass the Lightpanda's CDP server address.
const browser = await puppeteer.connect({
browserWSEndpoint: "ws://127.0.0.1:9222",
});
// The rest of your script remains the same.
const context = await browser.createBrowserContext();
const frame = await context.newPage();
// Dump all the links from the frame.
await frame.goto('https://demo-browser.lightpanda.io/amiibo/', {waitUntil: "networkidle0"});
const links = await frame.evaluate(() => {
return Array.from(document.querySelectorAll('a')).map(row => {
return row.getAttribute('href');
});
});
console.log(links);
await frame.close();
await context.close();
await browser.disconnect();
使用 --protocol webdriver 启用 Bidi 支持。可通过 --protocol webdriver --protocol cdp 同时启动 CDP 和 Bidi。
./lightpanda serve --obey-robots --log-format pretty --log-level info --host 127.0.0.1 --port 9222 --protocol webdriver
lightpanda agent 让你用一个原生 Agent 来驱动浏览器。用自然语言或斜杠命令描述你想做什么,它就会控制浏览器:导航页面、点击流程、填写表单、提取结构化数据。把它想象成一个你在指挥它使用网络的机器人,而不是一个你在与之对话的 chatbot。
因为 Agent 运行在浏览器同一个进程内,每次工具调用都是直接操作,你保留了 Lightpanda 的速度和内存优势。
agent 会话的输出是一份 PandaScript:基于 Lightpanda 原生浏览器原语的纯 JavaScript。用 /save 从当前会话导出一份,然后用 lightpanda run <script>.js 回放。脚本是确定性的且不消耗 token,你可以在开发时用 LLM 原型验证,然后无需在生产环境运行模型即可交付。
支持 Anthropic、OpenAI、Gemini、Google Vertex AI、Mistral、Hugging Face、Vercel AI Gateway(一个 key 访问数百个模型)、任何通过 OPENAI_BASE_URL 的 OpenAI 兼容端点,以及通过 Ollama 或 llama.cpp 的本地模型。也可以用 --no-llm 不使用 LLM 直接进入 REPL。完整参考见 agent 文档。
./lightpanda agent # auto-detects API key from env
./lightpanda agent --task "top story on news.ycombinator.com?"
./lightpanda agent --no-llm # basic REPL, no LLM
./lightpanda run session.js # run a recorded script
./lightpanda agent --provider gemini --task "..." # force a specific provider
./lightpanda agent --list-models # models available for the detected provider
VERTEX_API_KEY=... ./lightpanda agent --provider vertex # Vertex AI, express mode
GOOGLE_CLOUD_PROJECT=my-proj ./lightpanda agent --provider vertex # Vertex AI, token via gcloud auth
AI_GATEWAY_API_KEY=... ./lightpanda agent --provider vercel --model moonshotai/kimi-k2 # any model behind Vercel AI Gateway
OPENAI_BASE_URL=https://my-gateway/v1 OPENAI_API_KEY=... ./lightpanda agent # any OpenAI-compatible server
MCP server 通过 stdio 上的 MCP JSON-RPC 2.0 通信。
添加到你的 MCP 配置:
{
"mcpServers": {
"lightpanda": {
"command": "/path/to/lightpanda",
"args": ["mcp"]
}
}
}
要为多个 Agent 从一个进程提供服务,可通过指定端口启动基于 HTTP 的 MCP server(加 --host x.x.x.x 指定监听接口):
lightpanda mcp --port 9223
客户端向 http://host:9223/mcp 发送 JSON-RPC。每个连接会被路由到自己的浏览会话——独立的页面、cookie 和内存——所以 Agent 之间不会互相干扰:
不带 Mcp-Session-Id 头初始化的客户端会被分配一个新会话,id 在响应的 Mcp-Session-Id 头中返回。在后续请求中发送该 id 以保持同一会话(隔离)。
发送相同 Mcp-Session-Id 的两个 Agent 共享一个浏览上下文(共享模式——例如多个 Agent 在同一页面工作的workflow)。
session_new、session_list 和 session_close 工具用于显式管理会话。发送 DELETE /mcp 并带上 Mcp-Session-Id 可关闭该会话。
阅读完整文档
A skill is available in lightpanda-io/agent-skill.
默认情况下,Lightpanda 会收集并发送使用遥测数据。设置环境变量 LIGHTPANDA_DISABLE_TELEMETRY=true 可禁用。隐私政策见:https://lightpanda.io/privacy-policy。
设置 LIGHTPANDA_DISABLE_CORE_DUMP(任意值)可在启动时通过将软 RLIMIT_CORE 置零来禁止崩溃 core dump。
完整详情见 Web Platform Tests 结果。
--experimental-features cors 启用)--obey-robots 遵循 robots.txtLightpanda 使用 Zig 0.15.2 编写。你需要安装正确版本的 Zig 才能构建项目。
Lightpanda 还依赖 v8、Libcurl 和 html5ever。
构建 v8 引擎需要安装一些库:
Debian/Ubuntu 系的 Linux:
sudo apt install xz-utils ca-certificates \
pkg-config libglib2.0-dev \
clang make curl git
还需要安装 Rust。
对于使用 Nix 的系统,可以用 devShell:
nix develop
MacOS 需要 cmake 和 Rust。
brew install cmake
构建整个浏览器用 make build,debug 环境用 make build-dev。
也可以直接用 zig 命令:zig build run。
Lighpanda 使用 v8 snapshot。默认在启动时创建,但可以通过以下命令嵌入:
生成 snapshot:
zig build snapshot_creator -- src/snapshot.bin
使用 snapshot 二进制构建:
zig build -Dsnapshot_path=../../snapshot.bin
更多细节见 #1279。
可用 make test 测试 Lightpanda。
make test # Run all tests
make test F="server" # Filter by substring
TEST_FILTER="WebApi: #selector_all" make test # Filter main + subtest (separator: #)
TEST_VERBOSE=true make test
TEST_FAIL_FIRST=true make test
METRICS=true make test # Capture allocation/duration metrics as JSON
运行端到端测试需要先 clone demo 仓库到 ../demo 目录。
需要安装 demo 的 node 依赖,还需要安装 Go > v1.24。
make end2end
Lightpanda 基于标准化的 Web Platform Tests 进行测试。
我们使用一个包含自定义 testharnessreport.js 的 fork。结果每日发布。
作为参考,你可以通过 wpt.live 用浏览器轻松执行 WPT 测试用例。
要运行测试,需要 clone 仓库、配置自定义 hosts 并生成 MANIFEST.json。
用 fork 分支 clone 仓库:
git clone -b fork --depth=1 git@github.com:lightpanda-io/wpt.git
进入 wpt/ 目录。
在 /etc/hosts 中安装自定义域名:
./wpt make-hosts-file | sudo tee -a /etc/hosts
生成 MANIFEST.json:
./wpt manifest
详见 WPT 的设置指南。
外部 Go runner 由 github.com/lightpanda-io/demo/ 仓库提供,位于 wptrunner/ 目录。需要先 clone 该项目。
首先从你的 wpt/ clone 目录启动 WPT 的 HTTP server:
./wpt serve
运行 Lightpanda 浏览器:
zig build run -- --insecure-disable-tls-host-verification
然后从 demo 的 clone 目录启动 wptrunner:
cd wptrunner && go run .
或运行单个测试:
cd wptrunner && go run . Node-childNodes.html
wptrunner 命令接受 --summary 和 --json 选项修改输出,--concurrency 定义并发限制。
⚠️ 运行整个测试套件会花费很长时间。这种情况下,用 releaseFast 模式构建可以加速测试。
zig build -Doptimize=ReleaseFast run
见 CONTRIBUTING.md 指南。Pull Request 流程中需要签署 CLA。
简单的 HTTP 请求曾足以完成网页自动化。现在不再如此。JavaScript 驱动着大多数网页:
在服务器上运行完整的桌面浏览器可行,但扩展性很差。Chrome 在数百或数千实例时成本高昂:
要真正高性能地支持 JavaScript,意味着要从零构建而非 fork Chromium: