close

Lightpanda Browser

Mã nguồn mở bởi lightpanda-io

Lightpanda là trình duyệt headless (không giao diện) viết mới từ đầu bằng Zig, dành cho AI agent và tự động hoá web. Trình duyệt chạy JavaScript như trình duyệt thật, mở cổng CDP để Puppeteer, Playwright điều khiển, và có sẵn chế độ agent, máy chủ MCP cho trợ lý AI.

Lightpanda Browser dùng để làm gì?

  • Chạy trình duyệt headless trên VPS để Puppeteer, Playwright kết nối qua cổng CDP
  • Tải một trang web đã chạy JavaScript rồi xuất ra HTML, Markdown hoặc dữ liệu có cấu trúc
  • Cho Claude, Cursor và các trợ lý AI duyệt web qua máy chủ MCP có sẵn
  • Ra lệnh cho trình duyệt bằng câu tiếng Anh ở chế độ agent rồi lưu lại thành script chạy lại không cần LLM
  • Thu thập dữ liệu từ trang dùng Ajax, React, Vue mà yêu cầu HTTP thường không lấy được

Cần biết trước khi dùng

  • Lưu ýLicense AGPL-3.0: nếu sửa mã nguồn và cho người khác dùng qua mạng thì phải công bố phần đã sửa.
  • Lưu ýTino chưa kiểm thử việc cài ứng dụng này lên VPS.

Kiểm tra tự động ngày 04/11/2026 từ dữ liệu GitHub, OSV.dev và docker-compose. Đây không phải chứng nhận bảo mật; Tino không phát triển hay bảo trì repo này.

Lightpanda Browser là gì?

Phần lớn website hiện nay dựng nội dung bằng JavaScript, nên muốn thu thập dữ liệu hay tự động hoá thao tác thì cần một trình duyệt thật chạy được script. Chạy trình duyệt desktop đầy đủ ở chế độ headless trên máy chủ thì tốn RAM, CPU và khó đóng gói khi cần nhiều phiên cùng lúc. Lightpanda được viết lại từ đầu cho đúng việc này: không dựa trên Chromium, Blink hay WebKit, không có engine vẽ đồ hoạ.

Bên trong, Lightpanda dùng v8 để chạy JavaScript, html5ever để phân tích HTML và libcurl để tải trang. Trình duyệt hỗ trợ DOM API, XHR, Fetch, cookie, header tuỳ chỉnh, proxy, chặn request mạng, chặn quảng cáo và tuỳ chọn tôn trọng robots.txt (--obey-robots). Các công cụ tự động hoá kết nối qua giao thức CDP hoặc WebDriver BiDi, mặc định ở cổng 9222.

Ngoài vai trò máy chủ CDP, Lightpanda có lệnh fetch để xuất nhanh một trang, chế độ agent điều khiển trình duyệt bằng LLM (Anthropic, OpenAI, Gemini, Mistral, OpenRouter, Ollama…) và máy chủ MCP qua stdio hoặc HTTP. Phiên làm việc ở chế độ agent lưu được thành PandaScript, tức JavaScript thường chạy lại bằng lệnh lightpanda run mà không cần gọi mô hình.

Dự án theo giấy phép AGPL-3.0 và mặc định gửi dữ liệu sử dụng (telemetry) về nhóm phát triển; tắt bằng biến LIGHTPANDA_DISABLE_TELEMETRY=true. Mức độ tương thích với chuẩn web được công bố qua kết quả Web Platform Tests trên trang của dự án.

Nên dùng khi

  • Bạn chạy crawler hoặc script Puppeteer trên VPS và cần trình duyệt chạy được JavaScript
  • Bạn xây AI agent cần đọc, bấm, điền form trên web thông qua CDP hoặc MCP
  • Bạn muốn chuyển trang web thành Markdown hoặc JSON để đưa vào LLM

Không nên dùng khi

  • Trang cần hiển thị đồ hoạ chính xác, ví dụ chụp ảnh giao diện để so sánh: Lightpanda không có engine vẽ, bản xuất PNG/PDF chỉ là bản dựng dạng chữ
  • Script cần mọi Web API như trình duyệt desktop: đây là trình duyệt mới, nên kiểm tra kết quả Web Platform Tests với trang đích trước
  • Bạn sửa mã nguồn và cung cấp thành dịch vụ qua mạng mà không muốn công bố mã: giấy phép AGPL-3.0 buộc phải công bố phần đã sửa
  • Máy chủ dùng Alpine hoặc distro musl, hoặc Windows không có WSL2: bản dựng sẵn cần glibc
  • Bạn định thu thập dữ liệu trái điều khoản của website đích: công cụ không thay bạn chịu trách nhiệm pháp lý

Tính năng chính

  • Máy chủ CDP qua WebSocket, tương thích Puppeteer và các client CDP khác
  • WebDriver BiDi bật bằng --protocol webdriver, chạy song song được với CDP
  • Lệnh fetch xuất HTML, Markdown, structured_data (JSON-LD, OpenGraph, thẻ meta) với các tuỳ chọn chờ --wait-until, --wait-selector
  • Chế độ agent điều khiển bằng LLM, hỗ trợ Anthropic, OpenAI, Gemini, Vertex AI, Mistral, OpenRouter, Ollama, llama.cpp; có --no-llm để dùng REPL
  • PandaScript: lưu phiên agent thành JavaScript chạy lại không tốn token
  • Máy chủ MCP qua stdio hoặc HTTP, mỗi kết nối HTTP có phiên duyệt (cookie, trang) riêng
  • Proxy, header tuỳ chỉnh, chặn request mạng, chặn quảng cáo, tuỳ chọn --obey-robots
  • Image Docker chính thức cho amd64 và arm64

Cách deploy Lightpanda Browser lên VPS bằng Docker

  1. Tạo VPS Chọn gói VPS 30 GB NVMe (2 vCPU · 2 GB RAM · 30 GB NVMe), hệ điều hành Ubuntu 24.04. VPS khởi tạo trong khoảng 5 phút. Tạo VPS cho Lightpanda Browser
  2. Cài Docker trên VPS (Ubuntu 24.04) Đăng nhập VPS bằng SSH với tài khoản root rồi chạy. Docker lấy từ kho phần mềm chính thức của Ubuntu.
    apt update && apt install -y docker.io docker-compose-v2 git
    systemctl enable --now docker
  3. Chạy container Lightpanda Lệnh tải image chính thức và mở máy chủ CDP ở cổng 9222. Cổng chỉ gắn vào 127.0.0.1 nên chỉ script chạy trên chính VPS mới kết nối được. Không đổi thành 0.0.0.0 nếu chưa đặt tường lửa hoặc lớp xác thực phía trước, vì ai vào được cổng này là điều khiển được trình duyệt.
    docker run -d --name lightpanda -p 127.0.0.1:9222:9222 lightpanda/browser:latest
  4. Mở ứng dụng Truy cập ws://127.0.0.1:9222 (cổng CDP, chỉ truy cập từ chính VPS) (thay IP-VPS bằng địa chỉ IP của VPS). Nên gắn tên miền và SSL trước khi dùng thật.

Lệnh cài ứng dụng chép từ README của dự án. Đọc trước khi chạy trên máy chủ thật.

Biến môi trường quan trọng

BiếnÝ nghĩa
LIGHTPANDA_DISABLE_TELEMETRYĐặt true để tắt gửi dữ liệu sử dụng; mặc định telemetry đang bật
LIGHTPANDA_DISABLE_CORE_DUMPĐặt giá trị bất kỳ để không ghi file core dump khi trình duyệt bị lỗi
ANTHROPIC_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEY…Khoá API cho chế độ agent; lightpanda agent tự nhận nhà cung cấp theo khoá đang đặt, hoặc chọn bằng --provider
OPENAI_BASE_URLTrỏ chế độ agent tới máy chủ tương thích OpenAI, ví dụ gateway nội bộ
VERTEX_API_KEY, GOOGLE_CLOUD_PROJECTDùng Google Vertex AI cho chế độ agent

Cách dùng sau khi cài

  1. Kết nối PuppeteerDùng puppeteer-core, gọi puppeteer.connect với browserWSEndpoint: "ws://127.0.0.1:9222". Phần còn lại của script giữ nguyên như khi dùng trình duyệt khác.
  2. Xuất nhanh một trangVới bản binary: ./lightpanda fetch --obey-robots --dump markdown URL để lấy nội dung dạng Markdown; đổi --dump html hoặc --dump structured_data tuỳ nhu cầu.
  3. Gắn vào trợ lý AI qua MCPThêm vào cấu hình MCP một máy chủ tên lightpanda với command là đường dẫn file lightpanda và args ["mcp"]. Muốn phục vụ nhiều agent từ một tiến trình thì chạy lightpanda mcp --port 9223 và gửi JSON-RPC tới /mcp.
  4. Dùng chế độ agent./lightpanda agent --task "..." để giao việc bằng câu lệnh; gõ /save để lưu phiên thành PandaScript, sau đó chạy lại bằng ./lightpanda run session.js mà không cần LLM.
  5. Tắt telemetryThêm -e LIGHTPANDA_DISABLE_TELEMETRY=true khi chạy container hoặc đặt biến này trước khi chạy binary.

Cập nhật và sao lưu

README không nêu quy trình cập nhật riêng cho bản Docker. Image dùng thẻ latest; bản binary là bản nightly tải lại từ trang Releases. README cũng không nêu volume hay thư mục dữ liệu nào cần sao lưu.

Câu hỏi thường gặp

Lightpanda có dùng được với Playwright không?

README ghi client tự động hoá như Puppeteer, Playwright kết nối qua cổng CDP, và chỉ đưa ví dụ cụ thể cho Puppeteer. Với Playwright, bạn nên chạy thử script của mình trước, vì Lightpanda chưa có đủ mọi Web API.

Giấy phép AGPL-3.0 ảnh hưởng gì khi tôi dùng Lightpanda trong dự án?

AGPL-3.0 yêu cầu công bố mã nguồn khi bạn sửa Lightpanda rồi cho người khác dùng bản đã sửa qua mạng. Chạy bản gốc làm công cụ nội bộ thường không phát sinh nghĩa vụ này, nhưng nếu đưa vào sản phẩm thương mại thì nên hỏi tư vấn pháp lý. Người đóng góp mã cho dự án phải ký CLA.

Có chạy Lightpanda trên Windows được không?

Không có bản Windows gốc. Bạn cài WSL2 rồi làm theo hướng dẫn cho Linux; WSL tự chuyển tiếp localhost:9222 nên script chạy trên Windows vẫn kết nối được.

Lightpanda có gửi dữ liệu về nhà phát triển không?

Có. Mặc định Lightpanda gửi dữ liệu sử dụng (telemetry). Đặt LIGHTPANDA_DISABLE_TELEMETRY=true để tắt.

Image Docker có chạy trên VPS ARM không?

Có. Image chính thức có cả bản amd64 và arm64.

Ứng dụng liên quan

Miễn trừ trách nhiệm

Tino không phát triển, không sở hữu và không liên kết với Lightpanda Browser hay nhóm phát triển lightpanda-io. Tên, logo và nhãn hiệu thuộc về chủ sở hữu tương ứng; việc nhắc tới chỉ để mô tả, không có nghĩa là dự án xác nhận hay hợp tác với Tino.

Lightpanda Browser được phân phối theo giấy phép AGPL-3.0 của nhóm phát triển. Tino không bảo đảm về tính năng, bảo mật hay mức độ phù hợp của phần mềm; bạn tự chịu trách nhiệm khi cài đặt, cấu hình và sử dụng.

Lệnh cài và thông tin trên trang lấy từ tài liệu công khai của dự án tại thời điểm cập nhật và có thể đã thay đổi. Đọc tài liệu chính thức và sao lưu dữ liệu trước khi chạy trên máy chủ thật.