휴대폰에서 Codex 사용하는 방법: 모니터링, 승인, diff 검토까지 모바일로
신뢰하는 머신에서 Codex 세션을 시작한 뒤, 휴대폰에서 모니터링, 지시, 승인, 검토, 재개까지 하는 방법. 휴대폰을 터미널로 만들 필요가 없습니다.
- CLI
- 0.2.17
- 프리뷰 ref
- a2c45c8
Codex는 잘 동작하지만, 세션이 "한 번 앉아서 끝나는" 길이를 넘어가면 기본 사용성이 불편해집니다.
터미널에서 벗어나는 순간, 보통 손쉬운 제어 루프를 잃습니다.
- 진행 상황 확인
- 보충 지시 보내기
- 도구 권한 승인
- 변경 사항 검토
휴대폰에서도 SSH로 억지로 할 수는 있습니다. 다만 휴대폰은 터미널로 쓰기에 불편합니다.
그래서 문제는 이렇습니다. Codex는 세션을 소유한 머신에서 계속 실행되고, 휴대폰에서 세션을 진행시킵니다(후속 지시, 승인, 검토).
Happier는 휴대폰, 데스크톱, 웹에서 Codex, Claude Code 등 여러 에이전트를 크로스 디바이스로 실행하고 오케스트레이션할 수 있는 오픈 소스 앱입니다. 트레이드오프: 원하는 흐름(attach / resume 등)에 맞게, 세션을 소유한 머신에서 인증과 올바른 백엔드 설정이 필요합니다.
요약
- Happier를 설정하고 머신에서 Codex를 인증합니다 (CLI 또는 연결된 서비스).
- Happier(휴대폰 / 웹 / 데스크톱)에서 Codex 세션을 시작하고 실행할 머신을 선택합니다.
- Happier 0.2.13부터 Codex CLI 0.131.0 이상과 함께 사용하면: 네이티브 Codex TUI와 Happier 앱이 같은 App Server 스레드에 연결됩니다. 터미널에서 입력하면서 휴대폰에서 승인할 수 있고, 둘 다 같은 세션에서 실시간으로 동작합니다.
- 휴대폰에서: 트랜스크립트를 따라가고, 후속 지시를 보내고, 승인을 처리하고, diff를 검토합니다.
- 언제든
happier attach <session-id>로 터미널로 전환할 수 있습니다. 세션은 계속 공유됩니다 (App Server를 쓰는 macOS / Linux).
Happier를 거치지 않고 codex로 직접 시작한 Codex 스레드는 실행 중에 Happier가 참여할 수 없습니다. Codex는 스레드당 활성 작성자를 하나로 제한하기 때문입니다.
문제
Codex는 작업 자체는 잘합니다.
번거로운 것은 그 주변입니다.
- "세션이 어디서 실행되고 있지?"
- "노트북 앞에 없을 때 어떻게 계속 진행시키지?"
- "세션을 분기시키지 않고 터미널로 돌아가려면?"
인증: Codex 로그인을 문제없이 하기
Codex는 머신별 인증을 다음 위치에서 관리할 수 있습니다.
- Settings → AI provider settings → Codex
여기서 할 수 있는 일:
- 선택한 머신에서 Codex에 로그인되어 있는지 확인
- Happier가 CLI 로그인과
OPENAI_API_KEY중 무엇을 감지했는지 확인 - Happier 안에서 바로
codex login열기
Happier의 연결된 서비스로 인증할 수도 있습니다.
- 구독 인증 (디바이스 / 붙여넣기 흐름)
- 또는 API 키
CLI 예시:
happier connect codex --device
happier connect codex --paste
happier connect codex --api-key백엔드: Codex에서 헷갈리기 쉬운 부분
이건 알아둘 만한 Codex 고유의 미묘한 점입니다.
Happier에서 Codex는 여러 백엔드로 실행할 수 있습니다.
- Codex App Server (기본값): 재개 가능성과 앱 중심 워크플로를 중요하게 생각한다면 추천하는 방법입니다.
- Codex ACP: 명시적으로 선택했을 때 쓰는 대체 경로입니다.
- Codex MCP: 새 세션에는 괜찮지만, 일반적인 벤더 재개 경로는 아닙니다.
실제로 중요한 동작은 두 가지입니다.
- 새 세션에서는 Happier가 기본으로 App Server를 사용하고, 사용할 수 없을 때 조용히 다른 방식으로 대체하지 않습니다.
- 재개에서는 Happier가 엄격합니다. 조용히 새 세션을 시작하는 대신 오류를 냅니다.
이 두 규칙을 이해하면, 휴대폰에서 Codex를 쓰는 게 더 이상 "제멋대로"라고 느껴지지 않습니다.
Happier를 처음 사용한다면 (무엇이고 어디서 받는지)
Happier는 Claude Code, Codex, OpenCode 같은 AI 코딩 에이전트를 위한 오픈 소스 컴패니언 앱(모바일 / 웹 / 데스크톱)입니다.
여기서의 워크플로는, Codex는 작업 공간이 있는 머신에서 계속 실행되고, 휴대폰의 Happier에서 모니터링, 지시, 승인, 검토를 하는 것입니다.
이 가이드 기준으로는, SSH에 붙어 있지 않고도 Codex의 "세션 감독" 부분(후속 지시, 승인, diff 검토)을 처리할 수 있다는 뜻입니다.
시작하기:
- 휴대폰에서 Happier 사용하는 방법
- GitHub: https://github.com/happier-dev/happier
- 설치 / 다운로드: https://github.com/happier-dev/happier#how-it-works
- Discord (커뮤니티 + 지원): https://discord.gg/W6Pb8KuHfg
휴대폰 워크플로: Codex 세션을 시작하고 계속 진행시키기
1) 휴대폰에서 세션 시작하기
휴대폰(앱 또는 모바일 웹 UI)에서:
- 새 세션 만들기
- Codex 선택
- 실행할 머신 선택
- 작업 보내기
2) 휴대폰으로 감독 루프 돌리기
휴대폰에서 할 수 있는 일:
- 트랜스크립트에서 진행 상황 읽기
- 후속 지시 보내기 ("잠깐 멈추고 무엇을 바꿨는지 설명해 줘", "이 파일들만 수정해 줘")
- 모드에 따라 권한 프롬프트 처리
- 커밋 전에 diff 검토
3) 터미널과 휴대폰 사이 전환하기 (둘 다 실시간 유지)
Happier 0.2.13부터, macOS / Linux에서 Codex CLI 0.131.0 이상과 함께 사용할 때:
Happier로 Codex 세션을 시작하면, 네이티브 Codex TUI와 Happier 앱이 같은 실행 중인 App Server 스레드에 연결됩니다. 양쪽이 동시에 실시간으로 유지됩니다.
- SSH로 TUI에서 프롬프트 입력 → 휴대폰 앱에 표시됨
- 휴대폰에서 명령 승인 → TUI가 계속 진행
happier attach <session-id>로 휴대폰에서 시작한 세션의 TUI를 열 수 있음
이것은 인계가 아니라 공유 제어입니다. 화면을 바꿔도 세션은 멈추지 않습니다.
제한:
- 공유 제어는 Happier로 시작한 세션에만 적용됩니다.
codex로 직접 시작한 스레드는 실행 중에 Happier가 참여할 수 없습니다 (Codex는 스레드당 활성 작성자를 하나로 제한합니다). - Windows, ACP 모드, 또는 오래된 Codex CLI에서는 제어가 배타적입니다. 휴대폰에서 보낸 메시지는 터미널 쪽 턴이 안전한 지점에 도달할 때까지 기다립니다.
- 세션을 실행하는 머신은 온라인이어야 합니다. 오프라인 머신이나 프로바이더 장애는 Happier가 해결할 수 없습니다.
세션을 소유한 머신의 노트북이나 터미널로 돌아왔다면:
happier attach <session-id>비활성 Codex 세션 재개하기 (무엇을 기대할 수 있는지)
Happier에서 Codex 재개는 보통 기본 App Server 경로를 사용합니다.
비활성 Codex 세션은 다음 조건에서 재개할 수 있습니다.
- 세션에 유효한 Codex 재개 메타데이터가 있음
- 현재 백엔드와 머신 조합이 재개를 지원함 (기본은 App Server, 명시적으로 선택하면 ACP)
- 선택한 재개 경로에 필요한 머신 의존성이 이미 설치되어 있음
CLI에서:
happier resume
# 또는
happier resume <session-id>휴대폰 / 앱 / 웹에서:
- 비활성 세션은 재개 가능할 때만 입력을 받습니다
- 메시지를 보내면 먼저 재개가 실행됩니다
권한과 모드 (짧은 버전)
프롬프트 때문에 자주 막힌다면:
- Default로 시작하세요
- 중단을 줄이려면 Safe YOLO를 써보세요
- YOLO는 의도적으로 쓰고, 나중에 diff를 검토하세요
문제 해결
증상: Codex 세션이 재개되지 않음
가능한 원인:
- 세션이 벤더 재개를 지원하지 않는 백엔드 경로에 있음 (일반 MCP를 강제했다면 흔함)
- 선택한 경로에 필요한 의존성이 설치되어 있지 않음
해결:
- 재개 가능한 세션에는 기본 App Server 경로를 사용합니다
- 머신에서 Codex를 인증된 상태로 준비해 둡니다
증상: 터미널에서 attach할 수 없음
가능한 원인:
- 세션을 소유한 머신이 아닌 다른 머신에서 작업 중
- attach 동작은 OS마다 다름 (Linux / macOS는 tmux, Windows는 다른 호스트 모드 사용)
해결:
- 세션을 소유한 머신에서 attach를 실행합니다
자주 묻는 질문
Codex의 연속성은 Claude만큼 안정적인가요?
잘 동작할 수 있지만, 문서에는 일부 경로에서 Codex의 인계와 연속성이 Claude / OpenCode보다 아직 덜 성숙하다고 명시되어 있습니다.
현재 머신 간 인계를 안정적으로 하고 싶다면 Claude / OpenCode를 선택하세요. Codex를 쓰려면 사용하는 머신에 인증과 의존성을 준비해 두세요.