nicobailon/surf-cli
The CLI for AI agents to control Chrome. Zero config, agent-agnostic, battle-tested.
무엇을 해결하는가
Surf는 AI 에이전트가 Chrome 브라우저를 제어할 수 있도록 하는 간단하고 에이전트 불가지론적(agent-agnostic)인 CLI를 제공합니다. 복잡한 설정, 독점적인 API 키 또는 특정 AI 제공업체 종속성 없이도 에이전트가 기존 브라우저 로그인 및 세션을 사용하여 인간처럼 웹과 상호작용할 수 있도록 합니다.
작동 방식
Surf는 Unix 소켓을 통해 Chrome 확장 프로그램과 통신하는 CLI 도구로 작동합니다. CLI와 브라우저를 연결하기 위해 네이티브 메시징 호스트를 사용합니다. 이 아키텍처를 통해 Claude Code, GPT 또는 사용자 정의 셸 스크립트와 같이 셸 명령을 실행할 수 있는 모든 도구에서 사용할 수 있습니다.
주요 기술적 특징은 다음과 같습니다:
- Accessibility Tree Integration: 접근성 트리(accessibility tree)에서 안정적인 요소 참조(
e1,e2등)를 사용하여, 전통적인 CSS 선택자보다 DOM 변경에 더 탄력적으로 상호작용할 수 있게 합니다. - Session Management: 여러 독립적인 에이전트가 서로 간격 없이 동시에 브라우저 탭을 운영할 수 있도록 세션 시스템을 구현합니다.
- Remote Access: Tailscale을 통한 원격 브라우저 제어를 지원하며, 보안 인증을 위해 상호 Ed25519 challenge-response를 사용합니다.
- Smart Defaults: 토큰을 절약하기 위해 스크린샷 크기를 자동으로 조정하고, 에이전트의 왕복 횟수를 줄이기 위해 작업 후 스크린샷을 캡처합니다.
대상 사용자
헤드리스 브라우저 클러스터를 관리하거나 복잡한 API 통합의 오버헤드 없이 웹을 탐색하거나, 조사를 수행하거나, 웹 애플리케이션과 상호작용해야 하는 AI 에이전트를 구축하는 개발자.
주요 특징
- Agent-Agnostic: CLI 명령을 실행할 수 있는 모든 LLM 또는 에이전트 프레임워크와 함께 작동합니다.
- Zero Config: npm 및 Chrome 확장 프로그램을 통해 빠르게 설치할 수 있습니다.
- Semantic Locators: ARIA 역할, 텍스트 또는 레이블을 통해 요소를 찾고 상호작용합니다.
- Harnesses Browser Cookies: API 키 대신 기존 브라우저 로그인을 사용하여 ChatGPT, Gemini, Perplexity와 같은 AI 서비스를 쿼리합니다.
- Iframe Support: 중첩된 콘텐츠와 상호작용하기 위해 프레임 간 전환이 가능합니다.
- Network Capture: API 호출 필터링 및 재생을 위해 네트워크 요청을 자동으로 기록합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트