OpenClaw가 당신의 주 브라우저를 인수받게 하세요: 로그인 상태를 유지하는 완벽한 솔루션
OpenClaw가 당신의 주 브라우저를 인수받게 하세요: 로그인 상태를 유지하는 완벽한 솔루션
OpenClaw를 사용해본 친구들은 브라우저 문제를 겪어본 적이 있을 것입니다. 현재 OpenClaw는 두 가지 브라우저 모드를 제공하지만, 솔직히 말해서 둘 다 그리 유용하지 않습니다.
첫 번째는 OpenClaw에 내장된 호스팅 브라우저입니다. 이 브라우저는 완전히 새로운 Chromium 인스턴스를 시작하며, 독립적인 사용자 데이터 디렉토리를 가지고 있습니다. 문제는 명확합니다: 이것은 "완전히 새로운 컴퓨터"이며, 어떤 로그인 상태도 없습니다. AI가 당신의 백엔드 관리 페이지를 조작하도록 하길 원하나요? 죄송하지만, 먼저 로그인해야 합니다. 이중 인증이나 SMS 인증 코드가 필요하다면? 그건 거의 불가능합니다. 게다가 이 브라우저의 연결 안정성도 일반적이며, 가끔 끊어지기도 합니다.
두 번째는 Chrome 확장 중계입니다. 확장을 설치하여 OpenClaw가 확장을 통해 당신의 Chrome 탭을 제어하도록 합니다. 듣기에는 좋지만, 실제로 사용해보면 문제점이 많습니다: 확장과 OpenClaw 간의 연결이 자주 불안정하고, 탭 전환 시 제어권을 잃기 쉽습니다. 또한 매번 수동으로 확장 아이콘을 클릭하여 권한을 부여해야 하므로 무인 자동화가 불가능합니다.
간단히 말해, 우리가 진정으로 원하는 것은: AI가 내 Chrome을 직접 사용하여, 내 모든 로그인 상태를 유지하며, 안정적으로, 마치 나처럼 웹 페이지를 조작하는 것입니다.
이 요구 사항에는 사실 더 근본적이고 신뢰할 수 있는 해결책이 있습니다: Chrome의 원격 디버깅 프로토콜(CDP)을 통해 직접 연결하는 것입니다.
원리
Chrome에는 DevTools Protocol(CDP)이라는 디버깅 인터페이스가 내장되어 있습니다. 평소에 F12를 눌러 열리는 개발자 도구는 이 프로토콜을 사용합니다. 우리가 해야 할 일은 Chrome이 이 인터페이스를 로컬 포트를 통해 노출하도록 하고, OpenClaw가 연결하도록 하는 것입니다.
연결이 되면 OpenClaw는 사람처럼 브라우저를 조작할 수 있습니다: 버튼 클릭, 양식 작성, 페이지 내용 읽기 등 모두 가능합니다. 그리고 저층 프로토콜을 사용하기 때문에 확장 중계보다 훨씬 안정적입니다.
함정: user-data-dir의 제한
Chrome에 원격 디버깅 매개변수를 직접 추가합니다:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \ --remote-debugging-port=9222오류가 발생합니다: DevTools remote debugging requires a non-default data directory.
Chrome은 원격 디버깅을 위해 비기본 사용자 데이터 디렉토리를 사용해야 한다고 강제합니다. 이는 보안 제한으로, 악성 프로그램이 당신의 주 브라우저에 몰래 연결되는 것을 방지하기 위함입니다.
당신은 이렇게 생각할 수 있습니다: 그럼 내가 수동으로 기본 경로를 지정하면 되지 않나요?
--user-data-dir="$HOME/Library/Application Support/Google/Chrome"는 작동하지 않습니다. Chrome은 이것이 기본 경로임을 인식하고 여전히 거부합니다.
해결책: 구성 파일 복사
기본 디렉토리를 사용할 수 없다면, 그 디렉토리를 복사해내면 됩니다. 로그인 상태, 쿠키, 북마크 모두 이 디렉토리에 있으므로, 복사하면 그대로 가져갈 수 있습니다.
# 첫 번째 단계: Chrome을 완전히 종료합니다 (중요! 종료하지 않으면 복사된 파일이 손상됩니다) pkill -f "Google Chrome"
두 번째 단계: 구성 파일을 새 디렉토리로 복사합니다
cp -r ~/Library/Application\ Support/Google/Chrome \ ~/Library/Application\ Support/Google/ChromeDebug그런 다음 새 디렉토리에서 Chrome을 시작합니다:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \ --remote-debugging-port=9222 \ --remote-debugging-address=127.0.0.1 \ --user-data-dir="$HOME/Library/Application Support/Google/ChromeDebug"포트가 성공적으로 열렸는지 확인합니다:
curl http://127.0.0.1:9222/json/versionJSON 데이터를 반환하면 성공한 것입니다.
OpenClaw 설정
마지막 단계는 OpenClaw에 이 브라우저에 연결하도록 알려주는 것입니다. ~/.openclaw/openclaw.json을 편집합니다:
{ "browser":{ "defaultProfile":"my-browser", "profiles":{ "my-browser":{ "cdpUrl":"http://127.0.0.1:9222", "color":"#0066CC" } } } }
color 필드는 반드시 작성해야 하며, 그렇지 않으면 검증 오류가 발생합니다: browser.profiles.my-browser.color: Invalid input: expected string, received undefined.
구성이 완료되면 OpenClaw는 CDP 프로토콜을 통해 당신의 Chrome에 연결하여 모든 로그인 상태를 유지하며 웹 페이지를 조작하게 됩니다.
몇 가지 주의 사항
복사된 구성 파일은 스냅샷이며, 주 Chrome과 자동으로 동기화되지 않습니다. 주 Chrome에서 새로 로그인한 웹사이트는 디버깅용 Chrome에서 자동으로 업데이트되지 않습니다. 해결 방법은 간단합니다: 정기적으로 다시 복사하거나, 아예 디버깅 버전 Chrome을 백엔드 작업 전용 브라우저로 사용하는 것입니다.
또한 매번 긴 명령어를 입력하는 수고를 덜기 위해 시작 스크립트를 작성하는 것을 추천합니다:
#!/bin/bash
start-chrome-debug.sh
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \ --remote-debugging-port=9222 \ --remote-debugging-address=127.0.0.1 \ --user-data-dir="$HOME/Library/Application Support/Google/ChromeDebug"AI 에이전트가 진정으로 당신을 도와주길 원하는 친구들에게 브라우저의 로그인 상태는 피할 수 없는 기본 문제입니다. 이 단계를 해결하면 OpenClaw의 능력이 몇 배로 확대됩니다 — 관리 백엔드 조작, 웹 페이지 작업 일괄 처리, 자동화된 워크플로우 모두 가능해집니다.

