본문으로 건너뛰기

CloakBrowser Manager: 브라우저 프로필 관리의 산업화

정석

CloakBrowser Manager — Stealth 브라우저 프로필 관리

CloakBrowser가 10,000 스타를 넘기며 stealth Chromium의 표준이 된 지 약 두 달. 이제 그 위에 관리 레이어가 올라왔다. CloakBrowser Manager는 브라우저 프로필을 생성, 실행, 모니터링하는 웹 기반 GUI를 Docker 한 줄로 배포할 수 있게 만든다. MultiLogin의 유료 기능이던 것을 무료로, 셀프호스팅으로 제공한다.


1. 왜 지금 “프로필 관리”인가

AI 에이전트가 웹을 자동화할 때 가장 흔한 실패 패턴은 계정 연동 감지다. VPN으로 IP를 바꿔도, 쿠키를 지워도, 동일 하드웨어 핑거프린트가 남으면 플랫폼은 여러 세션을 같은 사용자로 인식한다.

해결책변경 항목계정 연동 여부
VPNIP 주소만❌ — 같은 핑거프린트
시크릿모드쿠키만 삭제❌ — 같은 하드웨어 핑거프린트
Chrome 프로필북마크/쿠키 분리❌ — 같은 하드웨어 핑거프린트
CloakBrowser전체 디바이스 아이덴티티✅ — 프로필마다 독립 ID

CloakBrowser는 이 문제를 소스 레벨 C++ 패치 32개로 해결한다. Canvas, WebGL, Audio, GPU, 폰트, 화면 크기, 타임존 등 50개 이상의 시그널을 프로필마다 다르게 생성한다. Manager는 이 프로필들을 UI로 관리하는 작업대다.


2. 아키텍처: FastAPI + React + noVNC

Manager는 세 가지 레이어로 구성된다.

┌─────────────────────────────────────────────────┐
│  React + Tailwind CSS (Web UI)                 │
│  - 프로필 생성/편집/삭제                         │
│  - 실행/중지 버튼                                │
│  - 실시간 브라우저 미리보기 (noVNC)               │
└─────────────────────────────────────────────────┘
                        ↕ CDP (Chrome DevTools Protocol)
┌─────────────────────────────────────────────────┐
│  FastAPI (Python) — API 서버                     │
│  - SQLite DB (프로필 메타데이터)                 │
│  - Docker 컨테이너 라이프사이클 관리              │
│  - CDP 프록시 (Playwright/Puppeteer 연결)        │
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
│  CloakBrowser (Stealth Chromium Binary)         │
│  - 프로필별 격리된 브라우저 인스턴스               │
│  - 고유 핑거프린트 생성                          │
│  - Cloudflare Turnstile 통과, reCAPTCHA v3 0.9  │
└─────────────────────────────────────────────────┘

핵심은 CDP (Chrome DevTools Protocol) 인터페이스다. 각 실행 중인 프로필은 로컬 서버의 CDP 엔드포인트를 노출한다. 이를 통해 Playwright나 Puppeteer로 자동화 스크립트를 실행하면서, 동시에 브라우저 UI에서 작업 과정을 실시간 모니터링할 수 있다.

from playwright.async_api import async_playwright

async with async_playwright() as pw:
    browser = await pw.chromium.connect_over_cdp(
        "http://localhost:8080/api/profiles/<profile-id>/cdp"
    )
    page = browser.contexts[0].pages[0]
    await page.goto("https://example.com")

이 패턴은 디버깅에서 운영까지 같은 스크립트를 재사용할 수 있게 한다. 자동화 스크립트를 작성할 때는 page.goto()page.click()만으로 코드를 짜고, 실행 중간중간 브라우저에서 직접 확인하고, 이상이 발견되면 CDP 연결로 직접 개입할 수 있다.


3. 프로필 설정: 어디까지 제어할 수 있는가

Manager의 웹 UI에서 설정할 수 있는 항목은 다음과 같다.

이 설정들은 각 프로필의 profiles/ 디렉토리에 persisted된다. Docker 볼륨으로 관리하면 docker stop 후 재시작해도 세션(쿠키, localStorage, 캐시)이 유지된다. CI/CD에서 일회성 브라우저가 필요한 경우와, 장기 세션 관리(로그인 상태 유지)가 필요한 경우를 모두 지원한다.


4. 에이전트 워크플로우에서의 위치

GitHub Trending에서 관찰한 AI 코딩 에이전트 생태계의 확장 방향은 이렇다:

skill 패키징 (agent-skills)
  → 라우팅 최적화 (9router)
    → 브라우저 우회 (CloakBrowser)
      → 자기 성장 (Hermes Agent)
        → 실행 환경 관리 ← 지금 여기가 CloakBrowser Manager

브라우저 자동화 프로젝트가 단순 실행 → 상태 관리 → 분산 협업 순서로 성숙하면, 반드시 마주하는 문제가 **“여러 프로필을 어떻게 동시에 관리하고 모니터링할 것인가”**다.

Manager는 그 문제에 대한 셀프호스티드 오픈소스 답안을 제공한다. 유료 MultiLogin 대신, 서버 한 대에 Docker로 올리고, API로 여러 프로필을 프로그래밍 방식으로 제어한다.


5. 배포 및 운영

Single command로 시작:

docker run -p 8080:8080 -v cloakprofiles:/data cloakhq/cloakbrowser-manager

cloakprofiles 볼륨에 모든 프로필 데이터가 저장되므로, 이미지 업데이트 후에도 데이터는 유지된다. 인증이 필요한 환경에서는 AUTH_TOKEN 환경변수로 UI와 API를 보호할 수 있다.

현재 버전은 early alpha로, 버그 보고와 기능 요청은 GitHub Issues에서 받는다. CloakBrowser core (10K+ 스타)보다 Manager는 263 스타로 초기 단계지만, core의 안정성과 CLI의 유연성을 결합하는 아키텍처는 확장성이 높다.


마치며: 브라우저 자동화의 산업화 단계

CloakBrowser가 “막히지 않는 브라우저”를 만든 후, Manager는 “막히지 않는 브라우저를 조직적으로 운영하는 방법”을 제시한다. AI 에이전트가 웹 환경에서 지속적으로 실행되려면, 단일 브라우저 인스턴스 수준에서 탐지를 회피하는 것뿐 아니라, 여러 프로필의 라이프사이클을 관리하는 시스템이 필요하다.

유료 솔루션이 지배적이던 분야에서 오픈소스 셀프호스티드 대안이 나온다는 것 자체가, 에이전트 워크플로우의 표준화가 진행 중임을 보여준다.


🔗 관련 정보

이전
OpenHuman: 개인용 AI 수퍼인텔리전스, 118개 통합으로 하루 만에 당신을 아는 에이전트
다음
DeepEval: 코딩 에이전트 평가를 개발 루프 안으로 넣는 LLM eval harness