휴대폰에서 AI 코딩 세션을 재개하는 방법: Claude Code, Codex를 처음부터 다시 하지 않기

비활성 세션을 처음부터 다시 하지 않고 재개하는 방법. "재개"가 실제로 무엇을 뜻하는지, 언제 가능한지, 불가능할 때는 어떻게 하는지 설명합니다.

기준 버전
CLI
0.2.17
프리뷰 ref
a2c45c8

정말 답답한 중단은 크래시가 아닙니다. 돌아와서 이런 사실을 깨닫는 순간입니다.

  • 세션이 비활성 상태다
  • 그래도 여전히 이어서 하고 싶다
  • 그런데 지금 같은 세션을 재개하려는 건지, 실수로 새 세션을 시작하려는 건지 확실하지 않다

데스크톱에서는 대개 정리할 수 있습니다. 휴대폰에서는 포기하고 처음부터 다시 하기 쉽습니다.

그래서 문제는 단순합니다.

새 세션이 아니라 같은 세션을, 휴대폰에서 이어가기.

흔한 방법(SSH, 새 세션 시작, 요약 복사·붙여넣기)은 모두 무언가를 잃습니다.

Happier는 코딩 에이전트를 크로스 디바이스로 실행하고 오케스트레이션하는 오픈 소스 앱으로, "attach와 resume"을 엄격하게 구분하며 재개에 실패했을 때 조용히 새 세션을 시작하지 않습니다.

요약

  • Attach = 아직 실행 중인 세션에 다시 연결하기.
  • Resume = 비활성 상태가 된 뒤 같은 프로바이더 세션을 다시 열기(프로바이더가 지원할 때만).

휴대폰에서는:

  1. 어느 경우인지 파악합니다. 세션이 아직 실행 중인지(attach), 비활성인지(resume).
  2. Happier를 쓴다면 세션을 열고 다음 메시지를 보냅니다. 지원되는 경우 먼저 재개를 시도합니다.
  3. 재개할 수 없다면, 실패 시 안전하게 멈추는(조용히 새 세션을 시작하지 않는) 도구가 필요합니다. Happier에서는 이것이 기본 동작입니다. 그 시점에서 attach하거나(실제로 아직 실행 중이라면) 새 세션을 시작합니다.

문제

AI 코딩 에이전트로 실제 작업을 할 때 "세션 연속성"은 다음의 차이를 만듭니다.

  • 흐름을 유지하느냐
  • 맥락을 다시 설명하느라 한 시간을 잃느냐

하지만 모든 프로바이더 세션을 재개할 수 있는 것은 아니고, 모든 비활성 Happier 세션을 재개할 수 있는 것도 아닙니다.

그래서 목표는 "항상 재개하기"가 아닙니다. 목표는 이것입니다.

무엇을 재개하는지 알고, 실수로 새 세션을 시작해 작업을 갈라지게 하지 않기.

Attach와 resume(이것만 알아도 혼란의 대부분이 풀립니다)

Attach

세션이 아직 로컬에서 실행 중이고 실행 중인 프로세스에 다시 연결하고 싶을 뿐이라면 attach를 씁니다.

Resume

세션이 비활성이고 프로바이더가 같은 세션을 다시 여는 것을 지원한다면 resume을 씁니다.

Happier에서 재개는 엄격한 워크플로입니다.

  1. 기존 Happier 세션을 찾는다
  2. 벤더 쪽에서 실제로 재개 가능한지 확인한다
  3. 프로바이더 백엔드에 같은 벤더 세션을 재개하도록 요청한다
  4. 실패하면 오류를 보여 준다(조용히 새 세션을 시작하지 않는다)

이 엄격함은 의도된 것입니다. 하나의 세션 정체성과 하나의 신뢰할 수 있는 대화 기록을 유지해 줍니다.

세션을 재개할 수 있는 조건

다음 조건을 모두 만족할 때만 세션을 재개할 수 있습니다.

  • 일반적인 Happier 관리 세션이다
  • 현재 비활성이다
  • 보관(archive)되지 않았다
  • Happier가 세션 메타데이터에 유효한 프로바이더 재개 ID를 저장하고 있다
  • 선택한 백엔드나 프로바이더가 그 세션의 재개를 지원한다
  • 설정에서 해당 백엔드를 끄지 않았다

하나라도 만족하지 않으면 Happier는 그 세션을 재개 불가로 처리합니다.

Happier가 처음이라면(무엇이고 어디서 받는지)

Happier는 Claude Code, Codex, OpenCode 같은 AI 코딩 에이전트를 위한 오픈 소스 컴패니언 앱(모바일 / 웹 / 데스크톱)입니다.

여기서의 워크플로는 세션을 소유한 머신(노트북 / 서버 / 개발 머신)에서 세션이 계속 실행되는 동안, 휴대폰의 Happier로 재개하거나 이어가는 것입니다.

이 가이드에서는, 무언가 비활성이 될 때마다 처음부터 다시 하는 대신 하나의 세션(과 하나의 대화 기록)을 유지할 수 있다는 뜻입니다.

설정하기:

휴대폰 워크플로: 비활성 세션 재개하기

1) 세션 열기

휴대폰에서 이어가고 싶은 비활성 세션을 엽니다.

보통 보게 되는 상태:

  • 비활성 + 재개 가능 + 머신 접근 가능 → 입력할 수 있고, 메시지를 보내면 먼저 재개됩니다
  • 비활성 + 재개 불가 → 입력할 수 없습니다
  • 비활성 + 머신 오프라인 → 소유 머신에 접근할 수 있을 때까지 입력할 수 없습니다

2) 다음 메시지 보내기(입력할 수 있다면)

세션을 재개할 수 있다면, 다음 프롬프트를 보내기만 하면 됩니다.

Happier가 먼저 프로바이더 세션을 재개한 다음 메시지를 전달합니다.

3) 입력할 수 없다면 대신 무엇을 할지 정하기

세션을 재개할 수 없을 때의 선택지:

  • 실제로는 아직 실행 중이라면: 소유 머신의 터미널에서 attach한다.
  • 정말 끝났다면: 새 세션을 시작하고 관련 파일이나 요약을 넘긴다.
  • 머신이 오프라인이라면: 먼저 머신을 다시 온라인으로 만든다.

Codex 참고(재개가 가끔 예상과 다른 이유)

Happier에서 Codex는 여러 백엔드로 실행될 수 있습니다.

현재 Happier 빌드에서는:

  • Codex 기본값은 App Server(메타데이터가 있을 때 일반적으로 재개 가능한 경로)
  • 순수 MCP로도 새 세션은 실행되지만, 벤더 재개 경로는 아닙니다
  • 재개는 엄격합니다. Codex 재개에 실패해도 Happier는 새 세션으로 대체하지 않습니다

그래서 Codex에서 재개 가능 여부는 다음에 달려 있습니다.

  • 세션에 유효한 재개 메타데이터가 있는지
  • 현재 백엔드 경로가 그 세션의 재개를 지원하는지
  • 그 재개 경로에 필요한 의존성이 머신에 있는지

문제 해결

증상: 세션은 비활성인데 메시지를 입력할 수 없다

가능한 원인:

  • 벤더 쪽에서 재개할 수 없다(지원하지 않는 백엔드, 재개 ID 없음)
  • 세션이 보관되었다
  • 소유 머신이 오프라인이거나 접근할 수 없다

해결:

  • 머신이 온라인인지 확인한다
  • 재개할 수 없다면 새 세션을 시작한다(재개되길 기대하며 계속 시도하지 않는다)

증상: 재개를 기대했는데 새 세션이 시작됐다

Happier에서 명시적 재개는 실패 시 안전하게 멈추도록 설계되어 있습니다.

"새 세션" 같은 느낌이 든다면 보통 다음 중 하나입니다.

  • 재개한 것이 아니라 새 세션을 만들었다
  • Happier 관리 동기화 세션이 아니라 Direct 세션이나 프로바이더 네이티브 세션을 다시 열었다

해결:

  • 원하는 기존 Happier 세션 ID로 작업하고 있는지 다시 확인한다

증상: 데스크톱에서는 재개되는데 휴대폰에서는 안 된다

가능한 원인:

  • 휴대폰에서 다른 서버나 프로필을 쓰고 있다
  • 휴대폰에 같은 서버를 추가하거나 신뢰하지 않았다

해결:

  • 모바일에서 같은 서버나 프로필로 전환한 뒤 세션을 다시 연다

자주 묻는 질문

재부팅 후에도 재개할 수 있나요?

경우에 따라 다릅니다.

재개는 머신이 재부팅되었는지가 아니라 프로바이더 지원과 저장된 재개 메타데이터에 달려 있습니다. 프로바이더가 같은 세션을 다시 열 수 있다면 재개할 수 있습니다.

왜 재개가 엄격한가요?

"조용히 새 세션을 시작하면" 연속성을 금방 잃기 때문입니다. 실패 시 멈추는 것은 그 순간에는 조금 답답하지만, 세션의 의미를 지켜 줍니다.

관련 가이드

mobilesessionsresumeworkflows
마지막 업데이트: 2026-10-26