브라우저 자동화 문제를 해결하기 위해 Claude Code로 Chromium을 포크했습니다
I forked Chromium with Claude Code to solve my browser automation issues
핵심 요약
브라우저 자동화의 비효율을 해결하고자 에이전트 전용 경량 Chromium 포크인 'Shuttle'을 개발했습니다.
- Shuttle 개발 — 에이전트별 독립적 세션과 저장소를 갖춘 Chromium 포크를 제작함
- UX 개선 — 에이전트별 색상 구분 탭 그룹과 내장 MCP 서버로 제어 편의성을 높임
- 불필요 요소 제거 — 구글 로그인, 동기화, 텔레메트리 등 브라우저 내 불필요한 기능을 삭제함
- 유지보수 우려 — Chromium의 잦은 업데이트 주기로 인해 향후 패치 관리에 대한 회의적 시각이 존재함

브라우저 작업할 때 Claude Code를 엄청 많이 쓴다. 주로 에이전트용으로 만들어진 적 없는 툴을 돌리거나, 내가 짠 코드 스모크 테스트하고, 관심 있는 거 웹 서핑할 때 쓴다.
빡쳤던 점:
-
chrome-devtools-mcp 이 새끼는 자꾸 일회용 인스턴스랑 프로필을 쳐만드는데, 정리를 안 함.
-
--autoConnect쓸 때마다 뜨는 "원격 디버깅 허용할 거냐?" 팝업. -
페이지마다 상단에 뜨는 "Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다" 문구.
-
창은 수십 개씩 떠 있는데, 어떤 탭이 어떤 세션 건지, 닫아도 되는 건지 알 수가 없음.
-
에이전트끼리 서로 탭 뺏어 먹으면서 방해함.
--isolated쓰면 해결은 되는데 로그인이 유지가 안 됨. -
chrome-devtools-mcp프로세스 여러 개(개당 270MB 정도)랑 크롬 인스턴스 때문에 RAM을 기가바이트 단위로 처먹음. 보통 4GB는 우습게 넘어감. -
클라우드 브라우저 서비스 이것저것 써봤는데, 대부분 불안정하거나 비쌈. 게다가 비주거용 IP 주소 때문에 봇 탐지 걸려서 차단당하는 경우가 태반임.
그래서 Chromium 포크해서 Shuttle이라고 이름 붙임:
-
모든 에이전트는 고유한 저장소를 가진 이름 있는 개체(이름, 색상, 아바타)임. 에이전트가 한 번 로그인하면 계속 유지됨.
-
에이전트마다 **제어 평면(control plane)**이 따로 있음: MCP를 통해 에이전트 프로필, 세션, 탭을 생성 가능.
-
MCP 서버가 내장되어 있음(기본값은 http, 루프백 전용). 중간 매개체 필요 없음.
-
모든 에이전트는 창 안에서 색상별로 구분된 탭 그룹에서 작업함. 이게 나한테는 제일 큰 UX 개선임. 에이전트가 뭘 하는지 한눈에 보이니까.
-
DX(개발자 경험) 쾌적함: 디버깅 다이얼로그 없고, 자동화 바 없고, 는 false고, 에이전트가 필요할 때까지 창도 안 뜸.

