3.7 KB · 수정 2026-07-15 17:27
목차

remote-access — Playbook (범용 반복작업 매뉴얼)

원격 세션에서 실제 브라우저 GUI 띄우고 코디가 제어하기 (구글/OAuth 로그인 필요 작업)

적용 대상: 어떤 프로젝트든, 페페가 원격(사무실PC→VS Code Remote)으로 미니PC(POIN-MINI)를 쓰는 중에 브라우저 GUI를 페페에게 보여주며 사람 로그인이 필요한 작업(구글/Pinterest/OAuth 로그인, 계정 폼 제출 등)을 할 때. 2026-07-15 Pinterest Standard 승격 폼 제출에서 확립.

왜 어려운가 — 함정 3개 연쇄

  1. Session 0 격리: Claude Code Bash background 프로세스는 Session 0(비대화형)에서 돈다. 페페가 보는 미니PC 데스크톱은 Session 1(console/delix/Active). Session 0에서 띄운 크롬은 렌더·스크린샷은 되지만 페페 화면·작업표시줄엔 안 뜬다. 확인: (Get-Process -Id $PID).SessionId=0, Get-Process explorer.SessionId=1.
  2. Playwright가 launch한 크롬은 구글 로그인 차단: launch_persistent_context(channel='chrome')로 Playwright가 실행한 크롬은 CDP 피제어라 구글이 자동화로 감지→로그인 거부. --no-sandbox 배너도 뜬다. ignore_default_args·navigator.webdriver 숨김으로도 안 풀림(실측).
  3. 정답: 순수 크롬을 사람이 로그인 → 코디는 연결(connect)만.

절차 (복붙 가능)

1) 순수 chrome.exe를 전용 프로필 + 디버깅 포트로 Session1 실행 (schtasks /it /ru delix):

schtasks //Delete //TN "gui_chrome_cdp" //F 2>/dev/null
schtasks //Create //TN "gui_chrome_cdp" //TR "\"C:\Program Files\Google\Chrome\Application\chrome.exe\" --user-data-dir=C:\dev\<tool>\.chrome-login --remote-debugging-port=9222 --no-first-run --new-window <URL>" //SC ONCE //ST 23:59 //RL LIMITED //IT //RU delix //F
schtasks //Run //TN "gui_chrome_cdp"

2) 페페가 그 창에서 직접 로그인 (순수 크롬이라 구글/OAuth 정상). 로그인은 .chrome-login 프로필에 저장됨.

3) 코디는 CDP로 "연결"만 — Playwright launch 금지:

from playwright.sync_api import sync_playwright
with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp('http://127.0.0.1:9222')
    ctx = browser.contexts[0]
    page = next((pg for pg in ctx.pages if '<대상URL조각>' in pg.url), ctx.pages[-1])
    page.bring_to_front()
    # ... 폼 자동작성(el.fill), 파일 업로드(input[type=file].set_input_files(경로)) 등
    browser.close()   # 연결만 끊음, 크롬 창은 유지됨

4) reCAPTCHA·최종 제출은 페페가 그 창에서 직접(봇 감지라 코디 자동클릭 불가).

요지

원격 세션에서 "사람 로그인 + 코디 자동조작"이 둘 다 필요 → 순수 크롬을 schtasks Session1 + 디버깅 포트로(사람 로그인), 코디는 connect_over_cdp로 붙는다. Playwright가 크롬을 launch하면 로그인이 막히므로 절대 launch하지 말 것. 정리: 끝나면 schtasks //Delete, .chrome-login은 로그인 유지 위해 남겨둘 수 있음(민감하면 삭제).

관련: 코디 메모리 remote-real-chrome-gui-cdp, cody-acad-capture-noninvasive(Session0/DCOM COM 실패), chatgpt-plus-bridge(헤드풀 로그인 브리지).