remote-access — Playbook (범용 반복작업 매뉴얼)
원격 세션에서 실제 브라우저 GUI 띄우고 코디가 제어하기 (구글/OAuth 로그인 필요 작업)
적용 대상: 어떤 프로젝트든, 페페가 원격(사무실PC→VS Code Remote)으로 미니PC(POIN-MINI)를 쓰는 중에 브라우저 GUI를 페페에게 보여주며 사람 로그인이 필요한 작업(구글/Pinterest/OAuth 로그인, 계정 폼 제출 등)을 할 때. 2026-07-15 Pinterest Standard 승격 폼 제출에서 확립.
왜 어려운가 — 함정 3개 연쇄
- 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. - Playwright가 launch한 크롬은 구글 로그인 차단:
launch_persistent_context(channel='chrome')로 Playwright가 실행한 크롬은 CDP 피제어라 구글이 자동화로 감지→로그인 거부.--no-sandbox배너도 뜬다.ignore_default_args·navigator.webdriver숨김으로도 안 풀림(실측). - → 정답: 순수 크롬을 사람이 로그인 → 코디는 연결(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"
- 전용
--user-data-dir필수: 기본 프로필은 이미 실행중인 크롬 인스턴스가 잡아 새 창이 그 세션으로 가로채임 → Session1에 독립적으로 못 뜬다. - TR엔 chrome.exe 직접 지정(배치의
start ""는 schtasks 컨텍스트에서 세션1에 못 띄우는 경우 있음). - 검증:
curl -s http://127.0.0.1:9222/json/version(Browser 응답) + 크롬 프로세스SessionId==1.
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(헤드풀 로그인 브리지).