Claude Code를 이용한 브라우저 자동화의 어려움을 해결하기 위해 Chromium을 포크(fork)했습니다
요약
Claude Code를 활용한 브라우저 자동화의 복잡성과 불안정성을 해결하기 위해 Chromium을 포크하여 'Shuttle'이라는 새로운 브라우저 환경을 개발했습니다. 이 솔루션은 각 에이전트가 독립적인 스토리지와 명명된 프로필을 가지며, 사용자 경험(UX)과 개발자 경험(DX) 측면에서 큰 개선을 제공합니다.
핵심 포인트
- 에이전트별 독립적 세션 및 스토리지를 구현하여 충돌 문제를 해결했습니다.
- 각 에이전트를 색상 코드로 구분하고 자체 탭 그룹으로 관리하여 가시성을 높였습니다.
- 불필요한 Google 기능(로그인, 동기화 등)을 제거하여 브라우저를 경량화하고 안정성을 확보했습니다.
- 자체 제어 평면(control plane)과 내장 MCP 서버를 통해 에이전트 간의 직접적인 통신을 가능하게 했습니다.
저는 브라우저 작업에 Claude Code를 많이 사용합니다. 주로 에이전트를 위해 설계되지 않은 도구들, 제 작업을 스모크 테스트(smoke-testing)하는 것, 그리고 제가 관심 있는 것을 웹에서 검색하는 데 필요한 도구들을 이용합니다.
계속 문제가 발생하던 점들은 다음과 같습니다: chrome-devtools-mcp는 임시(throwaway) 인스턴스와 프로필을 열어두는 경향이 있고, 이를 거의 정리하지 않습니다. 연결할 때마다 나타나는 "원격 디버깅 허용?" 프롬프트 (autoConnect 사용 시). 모든 페이지 상단에 표시되는 "Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다" 메시지 (이는 제 강박증 때문일 수도 있습니다). 탭 폭주(Tab sprawl) 현상. 한 시간 후에는 수십 개의 창이 열려 있고, 어떤 탭이 어떤 세션에 속했는지, 혹은 내가 그것을 닫을 수 있는지 알 길이 없습니다. 에이전트들 간의 충돌(stepping on each other). 공유 프로필에서 서로의 탭을 가져갔습니다. --isolated를 사용하면, 종료할 때마다 모든 로그인이 사라졌습니다. RAM 문제도 심각합니다. Claude Code 세션당 하나의 chrome-devtools-mcp가 필요하며, 크롬을 시작하기도 전에 각각 약 270MB를 차지합니다. 에이전트 10개만으로도 단일 페이지 로드 전 이미 약 2.7GB를 사용합니다.
저는 다양한 클라우드 브라우저 서비스를 시도했지만, 대부분 신뢰성이 떨어지거나/비용이 많이 들었습니다. 게다가 대부분의 사이트는 비거주(non-residential) IP 주소 때문에 봇 탐지(bot detection)에 의해 차단되었습니다.
그래서 저는 Chromium을 포크(fork)하여 에이전트들을 그 안에 통합했습니다.
Shuttle: 모든 에이전트는 자체 스토리지와 함께 이름(name), 색상(color), 아바타(avatar)를 가진 명명된 개체입니다. 제 에이전트들은 한 번 로그인하면 계속 로그인 상태를 유지합니다. Claude 에이전트는 "브라우저 에이전트(browser agent)" 인터페이스를 보고, 필요한 경우 "에이전트 프로필(Agent Profiles)", 세션 및 탭을 생성할 수 있는 자체 제어 평면(control plane)을 가집니다. MCP 서버가 내장되어 있습니다 (기본적으로 http, 루프백 전용). 따라서 중간 관리자(middle-man)가 필요하지 않습니다.
모든 에이전트는 창 내에서 자체 탭 그룹으로 작동하며 색상 코드가 지정됩니다. 이는 각 에이전트가 무엇을 하는지 명확하게 볼 수 있게 해주기 때문에 저에게 가장 큰 사용자 경험(UX) 개선점입니다. 개발자 경험(DX) 마찰도 없습니다: 디버깅 대화 상자가 없고, 자동화 바가 없으며, navigator.webdriver는 거짓이고, 에이전트가 필요할 때까지 창이 나타나지 않습니다.
깔끔하고 최소화된 MCP 인터페이스를 제공합니다: 브라우저 도구 12개 + 페이지 도구 24개. Vercel의 멋진 에이전트 브라우저가 번들로 포함되어 있어, 도구 호출이 브라우저를 직접 제어합니다. 필요에 따라 Playwright용 세션별 CDP 엔드포인트도 제공됩니다 (예: 스크립트화된 E2E 테스트).
Chromium에서 불필요한 요소를 세심하게 제거했습니다: Google 로그인, 프로필 동기화(Profile Sync), 원격 측정(Telemetry), Google AI 기능, 번역(Translate), 비밀번호 관리자(Password manager), Chrome 앱, 북마크 등 수많은 요소가 제외되었습니다. 사이트: https://www.shuttlebrowser.com 이 사이트에는 유머와 이스터 에그가 숨겨져 있습니다. 코드: https://github.com/shuttle-browser/shuttle 공개 고지: 제가 직접 만든 도구를 홍보합니다. 무료이며 오픈 소스(BSD-3)입니다. 다른 분들이 사용하고, 좋아해 주시고, 피드백과 아이디어를 공유해 주시기를 바랍니다. 저는 주로 Claude Opus 5.5를 구현에 사용했고, 적대적 검토(adversarial review)에는 Fable 5.1과 Astra를 사용했습니다. 제출자: /u/sabotizer [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/ClaudeAI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기