Chrome extension (browser relay)
OpenClaw Chrome extension을 사용하면, 별도의 openclaw-managed Chrome profile을 띄우는 대신 기존 Chrome 탭(평소 사용하는 Chrome 창)을 agent가 제어할 수 있습니다. attach/detach는 단일 Chrome toolbar button으로 수행됩니다.What it is (concept)
구성 요소는 세 가지입니다.- Browser control service (Gateway 또는 node): agent/tool이 호출하는 API(경유지는 Gateway)
- Local relay server (loopback CDP): control server와 extension 사이를 연결하는 브리지(기본값
http://127.0.0.1:18792) - Chrome MV3 extension:
chrome.debugger를 사용해 active tab에 attach하고 CDP 메시지를 relay로 전달
browser tool surface를 통해 attach된 탭을 제어합니다. 적절한 profile을 선택하는 방식입니다.
Install / load (unpacked)
- extension을 안정적인 로컬 경로에 설치합니다.
- 설치된 extension 디렉터리 경로를 출력합니다.
- Chrome에서
chrome://extensions를 엽니다.
- “Developer mode” 활성화
- “Load unpacked” → 위에서 출력된 디렉터리 선택
- extension을 pin 합니다.
Updates (no build step)
extension은 OpenClaw release(npm package) 안에 정적 파일로 포함됩니다. 별도의 “build” 단계는 없습니다. OpenClaw 업그레이드 후:openclaw browser extension install을 다시 실행해 OpenClaw state 디렉터리 아래의 설치 파일을 갱신- Chrome →
chrome://extensions→ extension에서 “Reload” 클릭
Use it (set gateway token once)
OpenClaw는 기본 relay port를 사용하는chrome browser profile을 내장하고 있습니다.
처음 attach 하기 전에 extension Options에서 다음을 설정하세요.
Port(기본값18792)Gateway token(gateway.auth.token/OPENCLAW_GATEWAY_TOKEN과 일치해야 함)
- CLI:
openclaw browser --browser-profile chrome tabs - Agent tool:
browserwithprofile="chrome"
Custom Gateway ports
custom gateway port를 쓰는 경우 extension relay port는 자동 계산됩니다. Extension Relay Port = Gateway Port + 3 예:gateway.port: 19001이면:
- Extension relay port:
19004(gateway + 3)
Attach / detach (toolbar button)
- OpenClaw가 제어할 탭을 엽니다.
- extension icon을 클릭합니다.
- attach되면 badge에
ON이 표시됩니다.
- attach되면 badge에
- 다시 클릭하면 detach됩니다.
Which tab does it control?
- “지금 보고 있는 탭”을 자동으로 제어하지는 않습니다.
- toolbar button을 눌러 명시적으로 attach한 탭만 제어합니다.
- 다른 탭으로 바꾸려면 그 탭을 열고 extension icon을 다시 클릭하세요.
Badge + common errors
ON: attach 완료, OpenClaw가 해당 탭 제어 가능…: local relay에 연결 중!: relay에 도달할 수 없거나 인증 실패 가장 흔한 원인: relay server 미실행, gateway token 누락/불일치
!가 보이면:
- Gateway가 로컬에서 실행 중인지 확인하세요(기본 구성 기준). Gateway가 다른 머신에 있다면 이 머신에서 node host를 실행하세요.
- extension Options 페이지를 열면 relay reachability와 gateway-token auth를 검증합니다.
Remote Gateway (use a node host)
Local Gateway (same machine as Chrome) - usually no extra steps
Gateway가 Chrome과 같은 머신에서 실행되면, loopback에 browser control service를 띄우고 relay server도 자동 시작합니다. extension은 local relay와 통신하고, CLI/tool call은 Gateway로 들어갑니다.Remote Gateway (Gateway runs elsewhere) - run a node host
Gateway가 다른 머신에 있다면, Chrome이 실행되는 머신에서 node host를 시작하세요. Gateway가 browser action을 해당 node로 프록시하므로, extension + relay는 browser 머신에만 로컬로 남습니다. 여러 node가 연결되어 있다면gateway.nodes.browser.node로 하나를 고정하거나 gateway.nodes.browser.mode를 설정하세요.
Sandboxing (tool containers)
agent session이 sandboxed(agents.defaults.sandbox.mode != "off")라면 browser tool은 제한될 수 있습니다.
- 기본적으로 sandboxed session은 종종 host Chrome이 아니라 sandbox browser(
target="sandbox")를 대상으로 합니다. - Chrome extension relay takeover는 host browser control server를 제어해야 합니다.
- 가장 쉬운 방법: non-sandboxed session/agent에서 extension 사용
- 또는 sandboxed session에서도 host browser control을 허용:
browser가 deny되지 않았는지 확인하고, 필요하면 browser 호출에 target="host"를 지정하세요.
디버깅: openclaw sandbox explain
Remote access tips
- Gateway와 node host를 같은 tailnet에 두고, relay port를 LAN이나 public Internet에 노출하지 마세요.
- node pairing은 의도적으로 수행하고, 원하지 않으면 browser proxy routing을 비활성화하세요(
gateway.nodes.browser.mode="off"). - 정말 cross-namespace가 필요한 경우가 아니라면 relay는 loopback에 유지하세요. WSL2 같은 split-host 구성에서는
browser.relayBindHost를0.0.0.0같은 명시적 bind 주소로 설정할 수 있지만, 그 경우에도 Gateway auth, node pairing, private network로 접근을 제한해야 합니다.
How “extension path” works
openclaw browser extension path는 extension 파일이 들어 있는 설치된 디스크 경로를 출력합니다.
CLI는 의도적으로 node_modules 경로를 출력하지 않습니다. 먼저 openclaw browser extension install을 실행해 extension을 OpenClaw state 디렉터리 아래의 안정적인 위치로 복사하세요.
이 설치 디렉터리를 이동하거나 삭제하면, 유효한 경로로 다시 로드할 때까지 Chrome은 extension을 깨진 상태로 표시합니다.
Security implications (read this)
이 기능은 강력하지만 위험합니다. 모델에게 “당신의 브라우저를 직접 다루는 손”을 준다고 생각해야 합니다.- extension은 Chrome의 debugger API(
chrome.debugger)를 사용합니다. attach된 동안 모델은 다음을 할 수 있습니다.- 클릭/입력/탐색
- 페이지 내용 읽기
- 해당 탭의 로그인 세션으로 접근 가능한 내용 사용
- 이 방식은 전용 openclaw-managed profile처럼 격리되지 않습니다.
- 평소 사용하는 profile/tab에 attach하면, 그 계정 상태 전체에 접근 권한을 주는 셈입니다.
- extension relay는 개인 브라우징과 분리된 전용 Chrome profile에서 사용하는 편이 낫습니다.
- Gateway와 node host는 tailnet 전용으로 유지하고, Gateway auth + node pairing에 의존하세요.
- relay port를 LAN(
0.0.0.0)에 노출하지 말고, Funnel(public)도 피하세요. - relay는
/cdp,/extension모두에서 비-extension origin을 차단하고 gateway-token auth를 요구합니다.