# Vibium - AI와 인간을 위한 브라우저 자동화 도구

> Clean Markdown view of GeekNews topic #25327. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=25327](https://news.hada.io/topic?id=25327)
- GeekNews Markdown: [https://news.hada.io/topic/25327.md](https://news.hada.io/topic/25327.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-12-25T17:32:38+09:00
- Updated: 2025-12-25T17:32:38+09:00
- Original source: [github.com/VibiumDev](https://github.com/VibiumDev/vibium)
- Points: 14
- Comments: 1

## Summary

**Vibium**은 Selenium의 창시자 Jason Huggins가 21년 만에 다시 선보인 **AI 중심 브라우저 자동화 인프라**입니다. 단일 Go 바이너리 **Clicker**가 Chrome 실행부터 WebDriver BiDi 프록시, MCP 서버까지 통합 관리하며, AI 모델이나 JS 클라이언트가 별도 설정 없이 브라우저를 제어할 수 있습니다. `npm install vibium` 한 줄로 설치가 가능하고, **Claude Code** 같은 LLM 에이전트는 단일 명령으로 브라우저 제어 기능을 확장할 수 있습니다. AI 에이전트와 테스트 자동화 모두를 위한 새로운 표준형 브라우저 제어 환경을 지향합니다.

## Topic Body

- 21년전 **Selenium**을 개발했던 Jason Huggins가 **AI 에이전트를 염두에 두고 다시 개발**한 브라우저 자동화 오픈소스 프로젝트  
- **Vibium**은 AI 에이전트를 위한 **브라우저 자동화 인프라**로, 단일 바이너리로 브라우저 수명주기와 WebDriver BiDi 프로토콜을 관리하고 MCP 서버를 노출함  
- 10MB짜리 싱글 Go 바이너리 **Clicker** 는 Chrome을 자동 감지·실행하며, BiDi 프록시와 MCP 서버를 통해 **AI 모델이나 JS 클라이언트가 브라우저를 제어**할 수 있게 함  
- **JS/TS 클라이언트**는 동기·비동기 API를 모두 지원하며, `npm install vibium`으로 설치 후 즉시 사용 가능  
- **Claude Code** 같은 LLM 에이전트는 `claude mcp add vibium` 명령 한 줄로 브라우저 제어 기능을 추가할 수 있음  
- AI 자동화와 테스트 자동화 모두에 적합하며, **설정 없는 브라우저 제어 환경**을 제공함  
  
---  
  
### Vibium 개요  
- **Vibium**은 AI 에이전트와 인간 사용자를 위한 **브라우저 자동화 인프라스트럭처**  
  - 단일 Go 바이너리로 브라우저 관리, WebDriver BiDi 프록시, MCP 서버 기능을 통합  
  - Claude Code, Codex, Gemini 등 다양한 LLM 모델과 호환  
- **설치 과정 없이 즉시 작동**하는 구조로, AI 에이전트나 테스트 자동화 환경에서 활용 가능  
  
### 구성 요소  
- **Clicker**: 약 10MB 크기의 Go 바이너리로, 다음 기능을 수행  
  - Chrome 자동 탐지 및 BiDi 모드 실행  
  - WebSocket 기반 **BiDi 프록시 서버**로 명령 전달  
  - **MCP 서버**를 통해 LLM 에이전트와 통신  
  - **Auto-Wait** 기능으로 요소 대기 후 상호작용  
  - **스크린샷 캡처** 기능 제공  
- **JS/TS 클라이언트**: npm 패키지로 제공되며, 동기(`browserSync`)와 비동기(`browser`) API 모두 지원  
  - `vibe.go()`, `vibe.find()`, `vibe.click()`, `vibe.quit()` 등 간단한 명령으로 브라우저 제어  
  - 스크린샷 저장, 요소 탐색, 클릭 등 기본 자동화 기능 포함  
  
### AI 에이전트 통합  
- **Claude Code**에 브라우저 제어 기능을 추가하는 명령:  
  ```bash  
  claude mcp add vibium -- npx -y vibium  
  ```  
  - Chrome이 자동 다운로드되어 별도 설정 불필요  
- 제공 명령 목록  
  - `browser_launch`: 브라우저 실행  
  - `browser_navigate`: URL 이동  
  - `browser_find`: CSS 셀렉터로 요소 탐색  
  - `browser_click`: 요소 클릭  
  - `browser_type`: 텍스트 입력  
  - `browser_screenshot`: 뷰포트 캡처  
  - `browser_quit`: 브라우저 종료  
  
### 인간 사용자를 위한 설치  
- `npm install vibium` 명령으로 자동 설치  
  - 플랫폼별로 Clicker 바이너리와 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 모두 지원  
  
### 빠른 시작  
- **라이브러리 사용 예시**  
  ```typescript  
  import { browser } from "vibium";  
  const vibe = await browser.launch();  
  await vibe.go("https://example.com");  
  const el = await vibe.find("a");  
  await el.click();  
  await vibe.quit();  
  ```  
- **Claude Code 연동 예시**  
  - 설치 후 “Go to example.com and click the first link”와 같은 명령으로 브라우저 조작 가능  
  
### 로드맵  
- **V1**: MCP 및 JS 클라이언트를 통한 브라우저 제어에 집중  
- **V2 계획**  
  - Python 및 Java 클라이언트  
  - **Cortex**(메모리·내비게이션 계층)  
  - **Retina**(녹화 확장 기능)  
  - 비디오 녹화, AI 기반 요소 탐색 기능

## Comments



### Comment 48237

- Author: neo
- Created: 2025-12-25T17:32:38+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=46377597) 
- Selenium 덕분에 커리어에 큰 변화를 겪었음. 진심으로 고마움을 전함  
  요즘은 Playwright를 쓰고 있지만, **Vibium**의 새로운 접근이 궁금함  
  - Playwright는 **WebSockets+JSON** 기반의 빠른 브라우저 제어로 큰 진전을 이뤘음. Vibium은 이에 대응하는 **W3C WebDriver BiDi** 표준을 사용 중임. 목표는 Playwright처럼 “클릭 몇 번이면 끝나는” 멋진 개발 경험을 제공하는 것임  
  - 이미 Playwright를 쓰고 있다면 [Stagehand](https://github.com/browserbase/stagehand)를 써보길 추천함. API는 유사하지만 **테스트용이 아닌 자동화용**으로 설계됨  

- Vibium이 **JS 주입**, DOM 수정, 네트워크 요청 감시·변경을 지원하는지 궁금함. Playwright를 쓸 때 거의 항상 이 기능들을 사용함  
  - 아직은 지원하지 않지만, **로드맵에 포함되어 있음**. Playwright의 장점을 받아들이고 그 이상을 확장하는 것이 목표임  
  - 개인적으로는 네트워크 요청 모니터링만 있어도 충분함. Flutter + Amazon AppSync 앱은 디버깅이 너무 어려움  

- 흥미로움. 최근 [dev-browser](https://github.com/SawyerHood/dev-browser)를 사용해 **컨텍스트 절약과 속도 향상**을 얻고 있었음. Vibium도 꼭 시도해볼 예정임  
  - Vibium에서도 이런 **skill 기반 확장성**을 지원할 계획임  

- 10년 넘게 UI 자동화로 생계를 이어온 입장에서 Selenium에 감사함. 지금은 Playwright가 사실상 표준이지만, Selenium이 원조 브라우저 드라이버였음. Vibium은 Playwright와 어떻게 다른지 궁금함  
  - Playwright가 “속도” 면에서는 앞서지만, Selenium은 여전히 **전 세계적으로 깊게 뿌리내린 생태계**를 가짐. Vibium은 Selenium 사용자들이 자연스럽게 **미래형 에이전트 코딩**으로 넘어갈 수 있는 다리를 만들 계획임  

- 예전에 Selenium으로 Atlassian의 테스트 확장을 도왔던 사람임. 13~15년 전쯤 대화했던 기억이 있음. 여전히 이 분야에서 활동 중이라 반가움  

- 오래된 Selenium 스크립트를 Vibium으로 옮기면 **테스트 실패 시 자가 복구(self-heal)** 기능을 활용할 수 있을지 궁금함  
  - 비유하자면, 나는 지금 **섬 리조트**를 짓는 중임. 다리(마이그레이션 경로)는 나중에 만들 예정임. 우선 리조트가 매력적이면 다리를 놓을 이유가 생길 것임. 지금은 리조트 건설에 집중 중이지만, 다리도 꼭 만들고 싶음  

- 에이전트가 `browser_screenshot`으로 화면을 캡처한 뒤 클릭하려면 **CSS 셀렉터를 어떻게 찾는지** 궁금함. 스크린샷만으로는 요소 타입을 알기 어려움  
  - 현재 MCP 서버는 완전한 자율 탐색 기능이 부족함. 내 포크에서는 `browser_evaluate` 도구를 추가해 JS로 **접근성 트리**를 가져오고 이를 기반으로 탐색 가능하게 했음. 자세한 내용은 [V2 로드맵](https://github.com/VibiumDev/vibium/blob/main/V2-ROADMAP.md) 참고 바람  

- Claude 같은 도구가 브라우저 자동화를 자유롭게 쓰게 하려면, **특정 URL만 허용하는 브라우저 잠금 기능**이 필요함. 이런 기능이 로드맵에 있는지 궁금함  
  - Claude Code를 쓴다면 `browser_navigate` 훅으로 간단히 제어 가능함. 화이트리스트용 스크립트는 5분이면 설정 가능함. 더 복잡한 정책은 [cupcake](https://github.com/eqtylab/cupcake)와 Rego로 구현 가능함. 참고: [Claude Code Hooks 문서](https://code.claude.com/docs/en/hooks#mcp-tool-naming)  
  - Claude의 **“blast radius” 위험성**을 잘 알고 있음. 나도 Vibium 개발은 UTM VM 안에서 함. 네트워크 규칙 추가도 고려 중임. 이미 V2 로드맵을 올렸고, V3 초안도 준비해야 할 듯함  
  - 가장 확실한 방법은 **방화벽이 있는 컨테이너** 안에서 짧은 화이트리스트만 허용하는 것임  

- Skyvern과 비슷한 걸 만들 생각이었는데, 왜 Selenium 확장이 아니라 **새로운 Vibium을 만든 이유**가 궁금함  
  - [Vibium v1 발표문](https://github.com/VibiumDev/vibium/blob/main/docs/updates/2025-12-11-v1-announcement.md#why-vibium)에 일부 설명했음. Selenium이나 Playwright는 **AI 중심 설계가 아니었음**. Vibium은 처음부터 **AI 기반 “vibe coding”** 을 위해 최적화된 구조로 설계됨  

- 브라우저와 LLM 간의 **컨텍스트 부하(context bloat)** 문제를 어떻게 처리하는지 궁금함. Playwright처럼 트레이싱 파일을 노출하거나 JS 실행을 허용할 계획이 있는지도 물음  
  - 브라우저 노출은 점차 확대할 예정임. 컨텍스트 부하는 아직 완벽히 해결된 곳이 없음. 장기적으로는 “MCP를 쓰지 않는 방향”이 답일 수도 있음. 현재 Vibium은 **MCP 서버와 JS/TS API** 두 가지를 제공함. JS/TS API에서는 임의의 JS 실행이 가능함. 에이전트가 Vibium 스크립트를 작성해 실행하도록 하는 방식이 **컨텍스트 부하를 줄이는 우회로**가 될 수도 있음
