"승인 대기"에서 멈추는 문제 해결: Claude Code, Codex, OpenCode 권한 프롬프트 정리(완전한 YOLO 없이)
진짜 승인을 기다리는 것인지, 설정이 적용되지 않은 것인지, UI나 연결 문제인지 구분하는 실용적인 방법과 세션을 안전하게 계속 진행하는 방법.
- CLI
- 0.2.17
- 프리뷰 ref
- a2c45c8
Claude Code, Codex, OpenCode에서 시간을 크게 잃는 원인은 크래시가 아닙니다.
바로 이런 상황입니다.
세션을 시작하고, 잘 돌아가는 걸 보고 자리를 비웁니다. 돌아와 보면 이런 메시지가 떠 있습니다.
- "waiting for approval"(승인 대기)
- "needs permission"(권한 필요)
- "waiting for input"(입력 대기)
터미널 앞에 있다면 보통 5초면 끝나는 결정입니다.
휴대폰으로 보거나(또는 무슨 작업 중이었는지 잊어버린 뒤라면) 둘 중 하나가 되기 쉽습니다.
- 승인할 생각이 없던 것을 승인하거나
- 알아채지 못해 한 시간 동안 아무것도 하지 않거나
이 가이드는 그 중간 지점을 다룹니다.
승인을 "완전한 YOLO"로 바꾸지 않고 세션이 계속 진행되게 하기.
요약
- 먼저 어떤 종류의 "승인"인지 판단합니다.
- 진짜 권한 프롬프트(예상된 상황)
- 설정이 적용되지 않는 문제(흔함)
- UI나 연결 문제(이것도 흔함)
- Codex를 쓴다면 승인 설정의 계층 구조와 프로젝트 신뢰 설정을 확인합니다.
- 휴대폰이라면, 승인하기 전에 요청을 맥락 속에서 보여 주는 UI로 세션을 여는 것이 안전합니다.
- Happier는 여기에 도움이 되는 선택지 중 하나입니다. 승인과 권한 요청이 Inbox에 사라지지 않고 남고, 알림을 누르면 올바른 세션과 서버로 바로 이동합니다.
문제(쉽게 말하면)
승인은 안전을 위한 경계선입니다.
문제는 "승인이 있다는 것"이 아닙니다. 승인이 다음과 같아질 때가 문제입니다.
- 보이지 않음(알아채지 못함)
- 모호함(무엇을 승인하는지 확실하지 않음)
- 일관되지 않음(설정을 바꿨는데 계속 물어봄)
그리고 이 세 가지는 휴대폰에서 더 심해집니다.
일반적인 방법과 트레이드오프
- 전부 끄기(YOLO / "never ask"): 빠르지만 피곤할 때는 위험합니다.
- 끝날 때까지 터미널 앞에 있기: 안전하지만 긴 세션을 돌리는 의미가 없어집니다.
- 휴대폰에서 SSH: 되긴 하지만, 작은 터미널에서 승인 내용을 검토하는 것은 무척 불편합니다.
승인을 명시적으로 하고 휴대폰에서 검토하고 싶다면, Happier는 Claude Code, Codex, OpenCode 등 여러 에이전트를 크로스 디바이스로 실행하고 오케스트레이션할 수 있는 오픈 소스 앱입니다.
Happier가 처음이라면(무엇이고 어디서 받는지)
Happier는 Claude Code, Codex, OpenCode 같은 세션을 위한 오픈 소스 컴패니언 앱(모바일 / 웹 / 데스크톱)입니다.
워크플로는 신뢰하는 머신에서 세션을 계속 실행하고, 휴대폰의 Happier에서 맥락과 함께 승인을 검토하는 것입니다.
설정하기:
- 휴대폰에서 Happier 사용하는 방법
- GitHub: https://github.com/happier-dev/happier
- 설치 / 다운로드: https://github.com/happier-dev/happier#how-it-works
- Discord: https://discord.gg/W6Pb8KuHfg
1단계: "승인"의 종류 구분하기
경우 A: 진짜 권한 프롬프트
건강한 경우입니다. 세션이 부작용이 있는 작업을 하려는 것입니다.
Happier를 쓴다면, 권한 모드는 바로 확인 빈도를 조절하기 위해 있습니다.
- Default
- Read-only
- Safe YOLO(읽기는 자동 허용, 쓰기 전에는 확인)
- YOLO(프로바이더가 허용하는 만큼 확인 생략)
모든 프로바이더가 모든 모드를 지원하지는 않습니다. Happier는 실제로 적용되는 정책을 보여 줍니다.
경우 B: 설정이 적용되지 않음(Codex가 흔한 예)
Codex에는 실제 설정 계층 모델이 있습니다.
무언가를 바꿨는데 아무 변화가 없다면, 흔한 원인은 다음과 같습니다.
- 잘못된 위치의 설정 파일을 수정했다
- 우선순위가 더 높은 계층에서 설정이 덮어쓰이고 있다
- 프로젝트가 신뢰되지 않아 프로젝트 설정이 로드되지 않는다
- 조직 정책이 제약을 강제하고 있다
Codex 문서에서는 이렇게 나타납니다.
- 사용자 설정은
~/.codex/config.toml - 프로젝트 단위 설정과 "신뢰" 기반 제어
approval_policy,sandbox_mode같은 설정 항목
중요한 단서: "never ask"라고 적힌 설정을 공유했는데도 계속 물어본다는 글을 본다면, 착각이 아닙니다. 정확히 그렇게 보이는 환경별 버그가 있습니다.
경우 C: UI는 정상이지만 연결이 끊김
세션은 기다리고 있는데, 오래된 스트림을 보고 있을 때가 있습니다.
머신이 절전 모드에 들어갔거나 네트워크를 바꿨다면 이런 상태가 될 수 있습니다.
- 세션은 막혀 있다
- 하지만 프롬프트가 보이지 않는다
이 경우 "해결책"은 다시 연결하고 올바른 세션을 여는 것입니다.
2단계: 위험에 맞는 워크플로 고르기
유용한 규칙:
- 실제 부작용이 있는 작업(쓰기, 설치)을 승인하기 전에 확인한다.
- 무엇을 하려는지
- 어디서 하려는지
- 최근에 무엇이 바뀌었는지
그래서 휴대폰에서 쓰기 편한 UI가 중요합니다.
Happier 워크플로(승인을 명시적으로 하고 싶을 때)
Happier는 "내 확인이 필요한 것"을 실제 데이터로 다룹니다.
- 전체 Inbox
- 승인 요청
- 권한 요청
- 사용자 작업 요청("Exit Plan Mode" 등)
화면을 이동해도 사라지지 않는다는 점이 중요합니다. 놓쳐 버린 모달이 아닙니다.
모바일에서는 알림 라우팅도 엄격합니다.
- 올바른 세션으로 바로 이동한다
- 알 수 없는 서버에서 자동 승인하지 않는다
문제 해결
approval_policy = "never"로 설정했는데 계속 물어본다
다음 중 하나로 보세요.
- 신뢰 설정이나 설정 계층 불일치
- 환경별 클라이언트 버그
시도할 것:
- 어떤 설정 계층이 로드되는지 확인한다
- 같은 세션을 다른 환경(WSL / VM)에서 테스트한다
- 도구를 업데이트한다(이런 문제는 조용히 고쳐지는 경우가 많습니다)
휴대폰에서 프롬프트가 보이지 않는다
보통은 다음 중 하나입니다.
- 알림 라우팅이나 서버 프로필 불일치
- 실제로 프롬프트가 떠 있는 세션을 열지 않았다
여러 세션을 훑어보는 대신, 하나의 "처리할 목록"(Inbox)을 쓰세요.