휴대폰에서 기존 Claude, Codex, OpenCode 세션에 접근하는 방법
프로바이더 네이티브 세션을 찾아 휴대폰에서 열고, 프로바이더 기반으로 둘지 장기적인 연속성을 위해 가져올지 결정하는 방법.
- CLI
- 0.2.17
- 프리뷰 ref
- a2c45c8
세션은 가끔 다른 곳에서 시작됩니다.
- 터미널에서 시작한 Codex 실행
- 급하게 시작한 Claude Code 세션
- 자체 서버/저장소에 있는 OpenCode 세션
나중에 휴대폰을 열었을 때 세션을 다시 만들거나 맥락을 다시 설명하고 싶지는 않습니다.
목표는 그 기존 프로바이더 세션을 찾아서 휴대폰에서 열고, 맥락을 새 채팅에 복사하지 않고 계속하는 것입니다.
까다로운 점은 대부분의 도구가 "목록에서 기존 세션을 고르고, 얼마나 이식 가능하게 만들지 정하는" 깔끔한 워크플로를 제공하지 않는다는 것입니다.
요약
- 어떤 연속성을 원하는지 정합니다:
- 프로바이더 기반(기존 프로바이더 세션을 그대로 열기)
- 가져오기/동기화(기록과 앞으로의 작업을 앱이 관리하는 세션 하나에 함께 두기)
- 프로바이더 세션이 있는 머신에 Happier를 설정합니다(휴대폰도 연결).
- Direct sessions → Browse provider sessions로 기존 세션을 엽니다.
- 장기적인 연속성이 필요하면 살펴본 뒤 Take over + import로 전환합니다.
문제
"휴대폰에서 이어가고 싶다"고 할 때, 완전히 다른 두 가지를 뜻할 수 있습니다.
- 정확히 같은 프로바이더 세션에서 계속(프로바이더 기반 연속성)
- 그 세션을 이식 가능하고 앱이 관리하는 곳으로 옮기기(가져오기/동기화 연속성)
둘 다 타당합니다.
문제는 대부분의 도구가 둘을 뭉뚱그려서, 차이를 나중에야 알아챈다는 것입니다.
- "노트북이 오프라인이 되니 이 세션이 왜 업데이트를 멈췄지?"
- "머신을 바꾸니 왜 다른 세션처럼 느껴지지?"
두 소유 모델에 이름을 붙이면 나머지 워크플로가 훨씬 명확해집니다.
일반적인 방법과 트레이드오프
- 휴대폰에서 새 세션 시작: 되지만 기존 스레드를 잃습니다.
- 맥락을 새 세션에 복사/붙여넣기: 되지만 항상 뭔가 빠지고, 최신으로 유지하기 어렵습니다.
- 모든 걸 원래 머신에 두고 원격 접속(SSH/tmux/원격 데스크톱): 되지만 휴대폰에서는 무겁습니다.
- Happier(Direct sessions + Take over + import): "먼저 기존 세션을 열고, 그다음 가져올지 정하는" 깔끔한 워크플로를 제공합니다.
Happier가 처음이라면 (무엇이고 어디서 받는지)
Happier를 처음 본다면: Claude Code, Codex, OpenCode 같은 AI 코딩 에이전트를 위한 오픈 소스 컴패니언 앱(모바일/웹/데스크톱)입니다.
여기서의 워크플로: 세션과 리포지토리는 직접 관리하는 머신에 두고, 휴대폰에서 Happier로 열고/모니터링하고/이어갑니다.
설정하기:
- 휴대폰에서 Happier 사용하는 방법
- GitHub: https://github.com/happier-dev/happier
- 설치/다운로드: https://github.com/happier-dev/happier#how-it-works
- Discord (커뮤니티 + 지원): https://discord.gg/W6Pb8KuHfg
실제로 쓸 수 있는 워크플로 (단계별)
참고: 기능 매트릭스 (영어)에 따르면 Direct sessions(프로바이더 네이티브 세션 탐색과 열기)는 실험적 기능입니다. 가져오기 전까지 소유 머신에 접근할 수 있어야 합니다. 0.2.16부터 가져오기 진행 상황을 확인하고 Stop할 수 있으며, 이미 가져온 기록은 계속 사용할 수 있습니다.
1) 먼저 기존 세션 열기 (무언가를 가져오기로 정하기 전에)
대부분의 도구가 제대로 지원하지 않는 단계입니다.
Happier에서의 흐름:
- 세션 목록을 엽니다.
- Direct 탭으로 전환합니다.
- Browse provider sessions를 선택합니다.
- 다음을 고릅니다:
- 머신
- 프로바이더(Codex / Claude / OpenCode)
- 소스
Happier가 그 선택으로 찾을 수 있는 기존 프로바이더 세션 목록을 보여 줍니다.
하나를 골라 바로 Direct 세션으로 열 수 있습니다(즉, 프로바이더 기반이며 머신에 묶인 세션).
2) 먼저 Direct로 열기 (나중에 동기화할 계획이라도)
이렇게 프로바이더 세션을 열면 Happier는 Direct 세션으로 엽니다.
다음을 할 수 있어 유용합니다.
- 트랜스크립트 살펴보기
- 새 트랜스크립트 항목 따라가기
- 실시간 세션 모니터링
…아직 가져오기/동기화를 결정하지 않고도요.
3) 결정: Direct 유지 vs Take over + import
세션을 연 뒤에는 두 가지 "이어가기" 방식이 있습니다.
옵션 A: Direct로 유지
Direct로 두는 경우:
- 프로바이더 세션을 마찰 없이 열고 싶다
- 프로바이더가 진실 공급원이어도 괜찮다
- 필요할 때 소유 머신이 온라인일 것이다
트레이드오프가 중요합니다.
- 세션이 아직 Direct인데 머신이 오프라인이 되면 Happier는 프로바이더 트랜스크립트를 따라가거나 새로 고칠 수 없습니다
옵션 B: Take over + import
Take over + import를 쓰는 경우:
- 앞으로는 Happier가 트랜스크립트를 맡았으면 한다
- 원래 머신이 오프라인이어도 기기 간 연속성이 필요하다
- 세션이 일반 Happier 동기화 세션처럼 동작했으면 한다
개념적으로 Take over + import는:
- 프로바이더 트랜스크립트를 읽고
- 그 기록을 Happier 세션으로 가져오고
- 세션을 Direct에서 Synced로 전환합니다
4) Resume ID가 더 나은 경우 알기
프로바이더 세션 탐색은 목록을 보고 고르고 싶을 때 좋습니다.
하지만 이미 ID가 있거나, 새 세션 흐름에서 ID로 재개하고 싶을 때도 있습니다.
그럴 때 Resume ID를 씁니다.
- 새 Happier 세션 시작
- 프로바이더의 재개 가능한 세션 ID 입력
- (사용 가능하면) Resume ID 옆의 Browse 선택기로 채우기
짚어 둘 세부 사항: Resume ID 탐색 선택기는 새 세션 화면에서 선택한 머신/프로바이더/인증 맥락으로 범위가 정해집니다(그래서 실제로는 재개되지 않을 다른 "홈"의 세션을 고르지 않게 됩니다).
동작하는 이유 (그리고 깨지는 경우)
Happier가 하나의 보편적인 세션 모델이 있는 척하지 않기 때문에 동작합니다.
다리를 놓아 줍니다.
- 프로바이더 세션을 있는 그대로 열기(Direct)
- Happier 네이티브 연속성이 필요할 때만 동기화/가져오기
명백한 Direct 세션의 경우에 깨집니다.
- 머신 오프라인 → Direct 세션을 따라가거나 제어할 수 없음
흔한 실수
- 모든 걸 즉시 동기화 → 먼저 Direct로 열고, 오래 쓸 것이 확실한 세션만 동기화하세요.
- Direct가 머신에 묶인다는 걸 잊음 → "그 머신이 잠들어 있어도 동작"해야 한다면 동기화하세요.
- Resume ID와 탐색을 혼동 → 탐색은 목록 선택기이고, Resume ID는 "이 특정 세션 ID를 새 Happier 세션으로 재개"하기 위한 것입니다.
FAQ
"Take over + import"가 프로바이더 세션을 삭제하나요?
아니요. Happier에서의 가져오기/연속성 동작입니다.
여러 Codex 홈의 세션을 탐색할 수 있나요?
Codex에는 홈이 둘 이상 있을 수 있습니다(네이티브 vs 연결된 서비스 기반). Resume ID 선택기는 의도적으로 현재 인증/홈 선택으로 범위가 정해집니다.