요약
Claude Code 에서 브라우저를 부릴 때(Claude in Chrome) 스크린샷 한 장, 클릭 한 번마다 「허용하시겠습니까?」 창이 뜨는 문제가 있다. 권한 모드를 bypass 로 바꿔도, 허용 목록에 도구를 전부 등록해도, 확장 프로그램에서 사이트를 전부 열어줘도 듣지 않는다.
원인은 설정 파일이 아니라 환경변수 하나다. 처방도 한 줄이다.
// Claude Code CLI 가 도는 컴퓨터의 ~/.claude/settings.json
"env": { "CLAUDE_CHROME_CLASSIFIER_FLOOR": "0" }이 값을 넣고 새 세션을 열면 묻지 않는다. 2026년 10월 10일 CLI 2.1.295 에서 확인했다. 공개 이슈에는 이 처방이 「새 세션에서는 미확인」으로 올라와 있었는데, 그 칸을 메운 것이 이 글이다.
바로 해보려면 — 자기 Claude 에게 그대로 던질 지시문
설정 파일을 직접 열 필요 없다. 아래 회색 칸을 통째로 복사해 쓰고 있는 Claude 에게 붙여넣으면 알아서 고치고 확인까지 한다. 원리가 궁금하면 그 아래 1절부터 읽으면 된다.
Claude Code 가 브라우저를 쓸 때마다 허용 창이 떠. 아래 순서대로 고쳐줘.
1. 먼저 Claude Code CLI 가 도는 컴퓨터가 지금 이 컴퓨터가 맞는지 확인해줘.
원격으로 붙여 쓰는 구성이면 브라우저가 떠 있는 쪽이 아니라 CLI 가 도는 쪽을 고쳐야 해.
2. ~/.claude/settings.json 을 백업부터 떠줘.
3. 그 파일 최상위에 아래 키를 넣어줘. "env" 가 이미 있으면 그 안에 키만 더해.
기존 내용은 하나도 지우지 말고, JSON 이 깨지지 않게 해줘.
"env": { "CLAUDE_CHROME_CLASSIFIER_FLOOR": "0" }
4. 고친 파일이 올바른 JSON 인지 검사해줘. 깨졌으면 백업으로 되돌리고 멈춰.
5. 여기까지 됐으면 "세션을 새로 열어야 적용된다"고 알려줘.
환경변수는 프로그램이 시작할 때 읽히니까 지금 이 세션에서는 안 들어.
--- 여기부터는 새 세션을 연 뒤에 시킬 것 ---
6. env | grep CLAUDE_CHROME 으로 값이 들어왔는지 봐줘.
/proc/<pid>/environ 으로는 재지 마. 거기엔 안 찍히는 값이라 멀쩡해도 0건으로 나와.
7. 아무 웹페이지나 연 다음 화면 스크린샷을 한 번 찍어줘.
허용 창이 안 뜨고 이미지가 나오면 성공이야.
페이지 글자 읽기나 주소 이동으로 확인하지 마. 그 둘은 원래 안 물어보는 거라
고쳐진 걸로 착각하게 돼.
8. 그래도 물으면 멈추고 어디서 막혔는지 알려줘.
다른 설정을 혼자 건드리지는 마.
1. 증상 — 내 설정 탓이 아니라는 판별법
다음 두 가지가 동시에 맞으면 설정을 더 뒤질 필요가 없다.
~/.claude/settings.json의permissions.allow에 해당 도구가 이미 들어 있는데도 묻는다.- 같은 세션의 다른 도구(파일 읽기·셸 명령)는 전혀 묻지 않는다. 브라우저 도구만 묻는다.
도구에 따라 갈리는 것도 특징이다. 실측하면 이렇게 나뉜다.
| 도구 | 프롬프트 |
|---|---|
tabs_context_mcp · navigate · get_page_text | 안 묻는다 |
computer(스크린샷·클릭·타이핑) · browser_batch | 묻는다 |
이 갈림이 나중에 중요해진다. 처방이 들었는지 확인할 때 앞의 셋으로 재면 안 된다.
2. 왜 설정이 하나도 안 듣는가
Claude Code 는 도구마다 권한 모드를 다시 계산한다. 그 계산에 브라우저 도구에만 걸리는 하한선이 하나 박혀 있다.
- 세션 모드가 bypass 거나 auto 이고,
- 호출한 도구가 Chrome MCP 도구이고,
chromeClassifierFloorEnabled가 켜져 있으면
→ 그 호출만 모드가 auto 또는 default 로 강등된다. 계정에 auto 분류기가 없으면 default 로 떨어지고, default 는 매 호출 묻는다.
여기서 끝이 아니다. 이 하한선이 켜져 있는 동안에는 도구 단위 허용 규칙을 아예 건너뛴다. 허용 목록에 스무 개를 박아도 읽지 않는다는 뜻이다. 두더지잡기가 영원히 안 끝나던 이유가 이것이다.
그리고 이 하한선의 기본값이 「켜짐」이다. 아무것도 안 건드린 상태가 곧 묻는 상태다.
하한선을 켜고 끄는 값이 환경변수 CLAUDE_CHROME_CLASSIFIER_FLOOR 다. 값이 비어 있으면 서버 쪽 기능 플래그(tengu_cowork_chrome_automode_default)로 넘어가는데, 그래서 사람마다·버전마다 증상이 달라 보인다.
3. 처방
Claude Code CLI 가 실제로 도는 컴퓨터의 ~/.claude/settings.json 을 연다.
{
"env": {
"CLAUDE_CHROME_CLASSIFIER_FLOOR": "0"
}
}세 가지를 짚어둔다.
- 브라우저가 떠 있는 컴퓨터가 아니라 CLI 가 도는 컴퓨터다. 크롬에 모드를 통보하는 주체가 CLI 쪽이다. 원격으로 붙여 쓰는 구성이면 이 둘이 다른 기계일 수 있다.
- 환경변수는 프로세스가 시작할 때 읽힌다. 값을 넣은 그 세션에서는 안 듣는다. 새 세션을 열어야 한다.
- 다른 글에서 같이 권하는
CLAUDE_CHROME_PERMISSION_MODE는 혼자서는 듣지 않는다는 보고가 공개 이슈에 올라와 있다. 해롭지 않으니 같이 둘 수는 있지만, 그 값이 고쳤다고 말하면 안 된다.
4. 검증 — 여기서 가짜 합격이 난다
처방이 들었는지 확인할 때 반드시 computer 로 스크린샷을 찍어라.
navigate 로 아무 페이지나 연다
→ computer action=screenshot 을 1회 호출한다
→ 허용 창이 안 뜨고 이미지가 돌아오면 성공
navigate 나 get_page_text 로 재면 안 된다. 그 둘은 처방과 무관하게 원래 안 묻는다. 그걸로 재고 「고쳐졌다」고 적었다가 바로 다음 호출에서 다시 물은 일이 있었다. 통과한 도구 하나를 처방의 증거로 쓰면 안 된다.
환경변수가 들어왔는지 확인하는 법 (리눅스·맥)
/proc/<pid>/environ 으로 재면 안 보인다. 거기에는 프로세스가 실행된 순간의 환경만 담기고, settings.json 의 env 는 CLI 가 시작한 뒤에 자기 프로세스 환경에 꽂는 값이라 영영 찍히지 않는다. 이걸 모르고 「0건」을 보면 멀쩡한 처방을 실패로 적게 된다.
Claude 에게 셸 명령을 시키면 그 셸은 CLI 의 현재 환경을 물려받는다. 그래서 이렇게 재야 한다.
env | grep CLAUDE_CHROME5. 그래도 묻는다면 — 훅으로 막는 2차 수단
버전에 따라 하한선 처방이 안 들을 수 있다. 그럴 땐 권한 요청 자체를 가로채는 훅을 건다. 공개 이슈에 올라온 우회책이고, 세션 재시작 없이 듣는다고 보고돼 있다.
"hooks": {
"PermissionRequest": [{
"matcher": "mcp__claude-in-chrome__.*",
"hooks": [{ "type": "command", "command": "<자동 허용 스크립트 경로>" }]
}]
}다만 이건 모든 브라우저 동작을 묻지 않고 통과시키는 설정이다. 거부·확인 규칙은 그대로 살아 있지만, 브라우저가 남의 계정에 로그인된 상태라면 무엇을 열어도 그냥 열린다는 뜻이기도 하다. 켜기 전에 그 브라우저에 어떤 세션이 살아 있는지 먼저 보라.
하한선 처방이 듣기 전까지 당장 일을 끝내야 한다면, 읽기는 get_page_text·find, 입력은 form_input 으로 돌리면 프롬프트 없이 간다. 스크린샷이 꼭 필요할 때만 한 번 승인한다.
6. 안 듣는 것들 — 여기에 시간 쓰지 마라
| 흔히 권하는 처방 | 왜 안 듣나 |
|---|---|
| 확장 프로그램 사이트 권한을 전부 열기 | 확장이 이미 모든 사이트에 열려 있어도 묻는다. 그 축이 아니다 |
permissions.allow 에 브라우저 도구 전부 등재 | 하한선이 허용 규칙을 통째로 건너뛴다 |
| 권한 모드를 bypass 로 바꾸기 | bypass 가 맞는 방향인데 하한선이 그 위를 덮는다 |
| 다이얼로그의 「항상 허용」 누르기 | 저장이 일회성으로 들어가 승인 목록이 비는 버그가 따로 보고돼 있다 |
| 앱 설정의 「허용된 사이트」 | 내장 브라우저 쪽 설정이고, 도메인을 하나씩 넣는 구조라 답이 아니다 |
CLAUDE_CHROME_PERMISSION_MODE 단독 | 혼자서는 안 듣는다는 보고가 있다 |
7. 관련 공개 이슈
모두 anthropics/claude-code 저장소이고, 2026년 10월 10일 기준 전부 열려 있다.
- #96096 — bypass 모드에서 브라우저 도구가 매 호출 묻는다. 「항상 허용」이 안 먹는다. 2.1.280 에서 생긴 회귀로 보고됐고, 2.1.271·2.1.275 에서는 수백 번 호출해도 0회였다고 한다. 하한선 분석과 환경변수 처방이 이 이슈의 댓글에서 나왔다.
- #84355 — 허용 규칙 193개, 권한 모드 전부, 확장 승인 목록,
CLAUDE_CHROME_PERMISSION_MODE까지 네 가지가 모두 실패했다는 보고. 90분에 813건을 묻힌 사례가 있다. 훅 우회책이 여기 댓글에 있다. - #74715 — 「항상 허용」이 일회성으로 저장돼 승인 목록이 계속 비는 문제.
- #66125 — 전역 「모두 허용」 기능 요청. 아직 없다.
8. 돌아온 길에서 배운 것
이 문제를 잡는 데 여러 날을 썼다. 확장 프로그램 설정을 의심하고, 권한 모드를 의심하고, 실행 파일을 네 번 뜯어봤다. 전부 틀린 자리였다.
막혔을 때 들은 말이 길을 바꿨다. 「검색해봐. 이 문제를 다른 사람들이 그냥 두고 있지는 않을 것이다.」 실제로 공개 이슈가 여러 개 열려 있었고, 원인 분석까지 남이 해놓은 상태였다.
널리 쓰이는 도구에서 막히면, 내려가서 역산하기 전에 같은 것을 쓰는 사람들의 이슈 트래커를 먼저 보라. 혼자 뜯는 시간보다 남이 적어둔 한 줄이 빠르다.
그리고 하나 더. 고쳤는지 잴 때는 원래 안 묻던 것으로 재지 마라. 통과한 것 하나가 처방의 증거가 되지 않는다.