홈 서버에서 Claude Code, Codex, OpenCode를 실행하고 휴대폰 브라우저로 진행 상황 확인하는 방법
안정적인 머신에서 세션을 실행하고 휴대폰으로 모니터링하는 실용적인 설정과, 클라우드 UI, SSH, 휴대폰 중심 대시보드 사이의 솔직한 트레이드오프.
- CLI
- 0.2.17
- 프리뷰 ref
- a2c45c8
진짜 작업은 키보드 앞에서 하는 겁니다.
하지만 오래 실행되는 세션을 지켜보는 일까지 그럴 필요는 없습니다.
Claude Code, Codex, OpenCode 세션이 20~60분 걸린다면, 휴대폰으로 상태를 확인할 수 있으면 좋겠죠.
제대로 된 SSH 환경이 아니라.
원격 데스크톱도 아니라.
그냥 브라우저를 열고, 무엇을 하는지 보고, 필요한 것에 답하고, 할 일을 계속하는 것.
"휴대폰은 브라우저만" 조건은 단순해 보이지만, 큰 갈림길이 숨어 있습니다.
- 클라우드 UI(휴대폰에서 쓰기 쉽지만, 기본적으로 로컬 저장소가 아님)
- 로컬 실행(저장소와 도구는 거기 있지만, 원격으로 다룰 화면이 필요함)
이 가이드는 로컬 실행과 휴대폰 확인을 모두 만족하는 설정을 다룹니다.
요약
- 어느 쪽을 원하는지 정합니다.
- 클라우드 UI: 휴대폰 접속은 편하지만, 저장소 워크플로를 클라우드 프로젝트나 패치 중심으로 다시 짜야 합니다.
- 로컬 / 서버 실행: 저장소와 도구는 내 머신에 남지만, 원격으로 다룰 화면이 필요합니다.
- 로컬 / 서버 실행을 고른다면, 절전되지 않는 머신(홈 서버 / 데스크톱 / 개발 머신)에서 세션을 실행합니다.
- 휴대폰에서 브라우저만으로 접속하려면 HTTPS(보안 컨텍스트)가 필요합니다. 셀프 호스팅이라면 Tailscale Serve로
https://*.ts.netURL을 얻는 것이 간단합니다. - Happier는 여기서 잘 맞는 선택지 중 하나입니다. 제공되는 웹 UI가 휴대폰에서 쓰기 편하고, 문서에서도 Tailscale Serve를 공식 경로로 다룹니다.
문제
여기에는 두 가지 별개의 고통이 있습니다.
- 세션이 어디서 실행되는가(노트북 절전, Wi-Fi 끊김, 터미널 닫힘).
- 휴대폰에서 어떻게 보고 제어하는가.
대부분의 워크플로는 (1)은 해결해도 (2)는 해결하지 못합니다.
- 서버에서 실행하면 도움이 되지만, 그렇다고 좋은 휴대폰 UI가 저절로 생기지는 않습니다.
- 클라우드 UI는 휴대폰 UI를 주지만, 그렇다고 로컬 저장소가 저절로 따라오지는 않습니다.
일반적인 방법과 트레이드오프
- 휴대폰에서 SSH: 되긴 하지만 휴대폰이 터미널이 됩니다.
- 원격 데스크톱: 되긴 하지만 무겁고 잘못 누르기 쉽습니다.
- 클라우드 UI: 휴대폰 경험은 훌륭하지만 "이건 내 저장소"라는 전제가 달라집니다.
더 잘 맞는 것은 다음 조합입니다.
- 저장소를 가진 안정적인 머신에서 세션 실행
- 휴대폰에서 쓰기 편한 브라우저 UI
Happier는 이 조합에 맞는 도구 중 하나입니다.
선택지 지도: 실제로 쓰는 세 가지 방법
선택지 A: 클라우드 UI(휴대폰 우선, 로컬 저장소는 뒷전)
"휴대폰은 브라우저만"을 간단히 실현하는 경로입니다.
트레이드오프: 동기화나 패치 워크플로에 공을 들이지 않으면, 보통 로컬 파일 시스템과 도구 체인을 그대로 쓰지 못합니다.
선택지 B: 터미널 중심(SSH / Mosh) + 사용성은 감수
모든 것이 로컬에 남습니다.
트레이드오프: 여전히 휴대폰으로 터미널 작업을 합니다.
선택지 C: 로컬 실행 + 제대로 된 원격 화면
"저장소는 내 머신에"와 "휴대폰 확인은 쉽게"를 함께 만족하는 지점입니다.
원격 화면은 다음이 될 수 있습니다.
- 공식 원격 UI(Claude Remote Control)
- 셀프 호스팅 대시보드
- Happier 같은 컴패니언 앱 / 웹 UI
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
실제로 통하는 워크플로(Happier + Tailscale Serve)
머신을 직접 관리한다면, 브라우저만 쓸 때 권장하는 워크플로입니다.
1) 세션을 소유한 머신에서 Happier 실행하기
안정적인 머신을 고릅니다.
- 홈 서버
- 데스크톱
- 항상 켜져 있는 개발 머신
2) 웹 UI용 HTTPS URL 마련하기(보안 컨텍스트)
브라우저는 http://localhost를 안전하다고 보지만, http://<lan-ip>와 http://<tailscale-ip>는 보안 컨텍스트가 아닙니다.
그래서 휴대폰 원격 접속에는 HTTPS를 씁니다.
Happier가 권장하는 경로는 Tailscale Serve로, tailnet 안에서 쓸 수 있는 https://*.ts.net URL을 줍니다.
Happier 스택 도구에서 빠른 시작은 이렇습니다.
hstack tailscale enable
hstack tailscale url그다음 그 https://*.ts.net URL을 휴대폰(역시 Tailscale에 로그인한 상태)에서 엽니다.
3) 머신이 여러 대라면 다중 서버를 정리해 두기
서버가 여러 개가 되면(개인 + 업무 + 셀프 호스팅), 서버 프로필을 제대로 다루세요.
- 인증은 서버별
- 알림은 서버를 구분
"브라우저로만 확인"은 엉뚱한 서버 프로필에 있으면 실패하기 때문에 중요합니다.
4) 휴대폰 확인을 명확한 루프로 만들기
휴대폰에서는 단순하게:
- 세션을 연다
- 승인을 기다리고 있는지 확인한다
- 질문 하나에 답하거나 후속 지시 하나를 보낸다
본격적인 편집이나 리팩터링이 필요하면 키보드 앞으로 돌아갈 때까지 기다리세요.
문제 해결
웹 UI는 열리는데 암호화 기능이 동작하지 않는다
거의 항상 "보안 컨텍스트가 아님"이 원인입니다.
LAN의 일반 HTTP 대신 HTTPS(Tailscale Serve / 제대로 된 TLS)를 쓰세요.
머신에는 접근되는데 세션이 보이지 않는다
확인할 것:
- 올바른 서버 프로필을 쓰고 있는지
- 그 머신의 데몬이나 런타임이 같은 서버에 연결되어 있는지