- โปรเจกต์โอเพนซอร์สด้านระบบอัตโนมัติบนเบราว์เซอร์ที่ Jason Huggins ผู้พัฒนา Selenium เมื่อ 21 ปีก่อน กลับมาสร้างใหม่โดยคำนึงถึง AI agent
- Vibium คือ โครงสร้างพื้นฐานสำหรับการทำงานอัตโนมัติบนเบราว์เซอร์ สำหรับ AI agent โดยจัดการวงจรชีวิตของเบราว์เซอร์และโปรโตคอล WebDriver BiDi ด้วยไบนารีเดียว พร้อมเปิดให้ใช้งาน MCP server
- Clicker ซึ่งเป็น Go single binary ขนาด 10MB จะตรวจหาและเปิด Chrome อัตโนมัติ และทำให้ โมเดล AI หรือ JS client สามารถควบคุมเบราว์เซอร์ ได้ผ่าน BiDi proxy และ MCP server
- JS/TS client รองรับทั้ง API แบบ synchronous และ asynchronous ติดตั้งได้ด้วย
npm install vibium และพร้อมใช้งานได้ทันที
- LLM agent อย่าง Claude Code สามารถเพิ่มความสามารถควบคุมเบราว์เซอร์ได้ด้วยคำสั่งบรรทัดเดียว
claude mcp add vibium
- เหมาะทั้งกับงานอัตโนมัติสำหรับ AI และการทดสอบแบบอัตโนมัติ พร้อมมอบ สภาพแวดล้อมควบคุมเบราว์เซอร์แบบไม่ต้องตั้งค่า
ภาพรวมของ Vibium
- Vibium คือ โครงสร้างพื้นฐานสำหรับการทำงานอัตโนมัติบนเบราว์เซอร์ สำหรับทั้ง AI agent และผู้ใช้ทั่วไป
- รวมการจัดการเบราว์เซอร์, WebDriver BiDi proxy และความสามารถของ MCP server ไว้ใน Go binary เดียว
- รองรับ LLM หลายรุ่น เช่น Claude Code, Codex, Gemini เป็นต้น
- ออกแบบมาให้ ทำงานได้ทันทีโดยไม่ต้องผ่านขั้นตอนติดตั้ง จึงนำไปใช้ได้ทั้งในสภาพแวดล้อมของ AI agent และระบบทดสอบอัตโนมัติ
องค์ประกอบ
- Clicker: Go binary ขนาดประมาณ 10MB ที่ทำหน้าที่ดังนี้
- ตรวจหา Chrome อัตโนมัติและรันในโหมด BiDi
- ส่งต่อคำสั่งผ่าน BiDi proxy server บนพื้นฐาน WebSocket
- สื่อสารกับ LLM agent ผ่าน MCP server
- มีฟีเจอร์ Auto-Wait เพื่อรอองค์ประกอบก่อนโต้ตอบ
- มีฟังก์ชัน จับภาพหน้าจอ
- JS/TS client: ให้บริการเป็นแพ็กเกจ npm และรองรับทั้ง API แบบ synchronous(
browserSync) และ asynchronous(browser)
- ควบคุมเบราว์เซอร์ได้ด้วยคำสั่งง่าย ๆ เช่น
vibe.go(), vibe.find(), vibe.click(), vibe.quit()
- มีความสามารถพื้นฐานสำหรับงานอัตโนมัติ เช่น บันทึกภาพหน้าจอ, ค้นหาองค์ประกอบ, คลิก
การผสานรวมกับ AI agent
การติดตั้งสำหรับผู้ใช้ทั่วไป
- ติดตั้งอัตโนมัติด้วยคำสั่ง
npm install vibium
- ดาวน์โหลด Clicker binary, Chrome for Testing และ chromedriver ลงแคชตามแพลตฟอร์ม
- Linux:
~/.cache/vibium/, macOS: ~/Library/Caches/vibium/, Windows: %LOCALAPPDATA%\vibium\
- สามารถข้ามการดาวน์โหลดเบราว์เซอร์ได้ด้วยตัวแปรแวดล้อม
VIBIUM_SKIP_BROWSER_DOWNLOAD=1
การรองรับแพลตฟอร์ม
- รองรับ Linux x64, macOS(Intel/Apple Silicon), Windows x64
เริ่มต้นใช้งานอย่างรวดเร็ว
โรดแมป
- V1: มุ่งเน้นที่การควบคุมเบราว์เซอร์ผ่าน MCP และ JS client
- แผนสำหรับ V2
- Python และ Java client
- Cortex (ชั้นหน่วยความจำและการนำทาง)
- Retina (ความสามารถเสริมด้านการบันทึก)
- การบันทึกวิดีโอ, ความสามารถค้นหาองค์ประกอบด้วย AI
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
Selenium ทำให้เส้นทางอาชีพของฉันเปลี่ยนไปมาก ขอบคุณจากใจจริง
ทุกวันนี้ใช้ Playwright อยู่ แต่ก็สนใจแนวทางใหม่ของ Vibium
อยากรู้ว่า Vibium รองรับ การฉีด JS, การแก้ไข DOM, และการเฝ้าดูหรือแก้ไข network request หรือไม่ ตอนใช้ Playwright ฉันแทบใช้ฟีเจอร์พวกนี้ตลอด
น่าสนใจ ช่วงนี้ฉันใช้ dev-browser แล้วได้ประโยชน์เรื่อง ประหยัดคอนเท็กซ์และเพิ่มความเร็ว อยู่พอดี เดี๋ยวจะลอง Vibium แน่นอน
ในฐานะคนที่หาเลี้ยงชีพด้วย UI automation มานานกว่าสิบปี ขอบคุณ Selenium มาก ตอนนี้ Playwright กลายเป็นมาตรฐานโดยพฤตินัยไปแล้ว แต่ Selenium คือ browser driver รุ่นบุกเบิก อยากรู้ว่า Vibium ต่างจาก Playwright อย่างไร
ฉันคือคนที่เคยช่วยขยายการทดสอบของ Atlassian ด้วย Selenium จำได้ว่าเราเคยคุยกันเมื่อราว 13~15 ปีก่อน ดีใจที่ยังทำงานอยู่ในวงการนี้
อยากรู้ว่าถ้าย้ายสคริปต์ Selenium เก่ามา Vibium จะใช้ฟีเจอร์ self-heal เมื่อการทดสอบล้มเหลวได้ไหม
ถ้าเอเจนต์จับภาพหน้าจอด้วย
browser_screenshotแล้วจะคลิกต่อ อยากรู้ว่า มันหา CSS selector ได้อย่างไร เพราะดูจากสกรีนช็อตอย่างเดียวก็บอกชนิดขององค์ประกอบได้ยากbrowser_evaluateเพื่อดึง accessibility tree มาด้วย JS และใช้สิ่งนั้นเป็นฐานในการสำรวจ ดูรายละเอียดเพิ่มได้ที่ V2 โรดแมปถ้าจะให้เครื่องมืออย่าง Claude ใช้ browser automation ได้อย่างอิสระ จำเป็นต้องมี ฟีเจอร์ล็อกเบราว์เซอร์ให้เข้าได้เฉพาะ URL ที่กำหนด อยากรู้ว่ามีอยู่ในโรดแมปไหม
browser_navigateสคริปต์สำหรับ whitelist ตั้งค่าได้ใน 5 นาที ถ้าต้องการนโยบายที่ซับซ้อนกว่านั้น ใช้ cupcake กับ Rego ได้ ดูเพิ่มเติม: เอกสาร Claude Code Hooksฉันก็เคยคิดจะสร้างอะไรคล้าย Skyvern แต่อยากรู้ว่าทำไมถึงไม่ต่อยอดจาก Selenium แต่เลือกสร้าง Vibium ใหม่ แทน
อยากรู้ว่าจัดการปัญหา context bloat ระหว่างเบราว์เซอร์กับ LLM อย่างไร และมีแผนจะเปิดเผยไฟล์ tracing หรืออนุญาตการรัน JS แบบ Playwright หรือไม่