이동 중에도 클로드 코드 쓰기 - Claude Code On-The-Go
(granda.org)- 스마트폰만으로 6개의 Claude Code 에이전트를 병렬 실행하며 개발 작업을 수행하는 구성 설명
- Termius와 mosh, Tailscale VPN, Vultr VM을 조합해 노트북 없이도 안정적인 원격 개발 환경 유지
- tmux 세션 유지와 Poke 웹훅 알림을 통해 비동기 개발이 가능하며, Claude가 입력을 요청할 때만 푸시 알림으로 응답
- 보안은 Tailscale 전용 접근, nftables, fail2ban 등 다중 방어 구조로 강화
- 커피를 기다리거나 이동 중에도 PR 검토·리팩터링·버그 수정이 가능한, 완전한 모바일 개발 워크플로우 구현
전체 구성 개요
- 스마트폰에서 Termius 앱을 통해 mosh로 Tailscale VPN을 거쳐 Vultr VM에 접속하는 구조
- VM 내부에서 Claude Code가 실행되고, PreToolUse hook이 Poke 웹훅을 호출해 푸시 알림을 전송
- 사용자는 알림을 받고 Claude의 질문에 응답하는 순환 구조
- 이 방식으로 비동기 개발 루프를 구성, 언제 어디서나 작업 가능
인프라 세부 구성
-
Vultr VM은 실리콘밸리 리전에 위치하며, 사양은
vhf-8c-32gb- 비용은 시간당 $0.29, 하루 약 $7 수준
- Tailscale 전용 접근으로 SSH는 비공개, 퍼블릭 포트는 모두 차단
-
vm-start와 vm-stop 스크립트로 VM의 시작과 종료를 자동화
- iOS 단축어를 통해 Vultr API로 직접 VM을 시작할 수 있음
- 보안 계층은 클라우드 방화벽, nftables, fail2ban으로 구성
모바일 터미널 환경
-
Termius가 iOS/Android에서 SSH와 mosh를 지원
- mosh는 네트워크 전환에도 연결이 유지되어, Wi-Fi ↔ 셀룰러 전환이나 절전 모드에서도 세션 지속
- 명령 예시:
mosh --ssh="ssh -p 47892" [email protected]
- 단점으로 SSH agent 포워딩 미지원, GitHub 인증이 필요한 작업은 tmux 내에서 일반 SSH 사용
세션 지속성
- 로그인 시 자동으로 tmux 세션에 연결되도록
.zshrc설정- Termius를 닫았다가 다시 열어도 세션이 그대로 유지
- 여러 Claude 에이전트를 tmux 창으로 병렬 실행
-
C-a c로 새 창 생성,C-a n으로 전환
-
푸시 알림 시스템
-
Claude Code의 AskUserQuestion 이벤트 발생 시 PreToolUse hook이 실행
-
poke-notify.sh스크립트가 질문을 추출해 Poke 웹훅으로 POST 요청 전송 - 휴대폰에서 알림을 받고, 질문을 확인 후 즉시 응답 가능
-
- 이 기능으로 사용자는 터미널을 계속 확인할 필요 없이 완전한 비동기 개발 가능
신뢰 및 보안 모델
-
Claude Code는 permissive 모드로 실행되며, VM은 격리되어 프로덕션 시스템 접근 불가
- 개발에 필요한 최소한의 비밀정보만 포함
- 예기치 않은 동작이 발생해도 VM은 폐기 가능
- 비용 제어를 통해 리스크 최소화, 하루 최대 비용이 제한됨
병렬 개발 구조
-
Git worktree를 활용해 여러 기능 브랜치를 동시에 운영
- 예:
myproject-sidebar,myproject-dark-mode등
- 예:
- 각 worktree는 독립된 tmux 창과 Claude 에이전트를 가짐
- 포트는 브랜치명 해시 기반으로 결정되어 충돌 없음
- 예시 계산식:
django_port = 8001 + (hash_val % 99)
- 최대 6개의 에이전트를 한 번에 실행
활용 시나리오
- 커피를 기다리거나 이동 중에도 PR 리뷰, 리팩터링, 버그 수정 수행 가능
- Claude가 10~20분 걸리는 작업을 수행하는 동안 사용자는 다른 일을 하다가, 알림을 받고 응답 후 다시 진행
- 데스크톱 없이도 완전한 개발 주기를 스마트폰에서 실현
구성 요소 요약
- Vultr: 시간당 $0.29의 클라우드 VM
- Tailscale: 안전한 사설 네트워크
- Termius: 모바일 SSH 클라이언트
- mosh: 네트워크 복원력 있는 셸
- tmux: 세션 지속성 유지
- Poke: 웹훅 기반 푸시 알림
- Claude Code: 실제 개발 작업 수행
결론
- 전체 환경은 하나의 Claude Code 세션으로 구축 가능
- Vultr API 키와 GitHub 접근 권한만 제공하면 Claude가 보안 개발 VM을 자동 구성
- 결과적으로 스마트폰만으로 완전한 개발 환경을 구현, 이동성과 효율성을 극대화한 사례
클로드 코드 웹 버전 쓰면서 타이핑하지 않고 음성으로 명령 내릴 수 있으면 좋겠다 싶더라구요. 한국어 음성을 텍스트로 인식하게 할 수 있는 방법 같은걸 몰라서..
Hacker News 의견들
-
판도라의 상자가 열렸음. 이제 화이트칼라 노동자들은 24시간 내내 일하게 될 세상으로 가고 있음
설거지나 개 산책, 장보는 중에도 LLM과 대화하며 무의미한 기능을 만들고, 결국 아이들이 살아갈 환경을 파괴하게 되는 모순을 느끼고 있음
LLM은 매일 유용하게 쓰지만, 장기적으로 생각하면 인지적 불협화음이 너무 큼- 이 기술은 원래 우리를 해방시켜야 할 도구였음. 인터넷 전체를 우리가 함께 만들어서 이런 모델이 가능해졌는데, 지금은 자본의 이익만을 위해 작동하는 구조 속에 갇혀 있음
결국 우리는 이 체제를 바꿀 수 없다고 믿거나, 그 안에서 개인적 이익을 찾으려는 파우스트식 거래를 하고 있음 - 예전에 Continuous Delivery가 나왔을 때도 비슷한 비판이 있었음. 하지만 실제로는 완전 자동화된 배포를 하는 회사는 거의 없었음
결국 인간이 개입하는 균형이 필요함. LLM 기반 자동화도 비슷한 길을 걸을 것 같음
너무 비관하지 말고, 아직 숨을 고를 여유가 있음 - 나는 이제 은퇴가 가까워서 다행이라고 생각함. 어릴 때부터 내가 직접 코드를 짜는 게 즐거웠음
도구가 대신하는 세상은 흥미도, 재미도 없음. 세상이 변하겠지만, 그건 젊은 세대의 몫임 - 나는 재택근무 중이지만 절대 야근하지 않음.
개인 프로젝트에서는 Claude Code를 커피숍이나 짧은 시간에 활용함
결국 스스로 경계선을 설계하면 부정적 흐름의 희생자가 되지 않을 수 있음 - 앞으로는 화이트칼라 노동자가 아니라 화이트칼라 Claude 에이전트만 남을지도 모름
- 이 기술은 원래 우리를 해방시켜야 할 도구였음. 인터넷 전체를 우리가 함께 만들어서 이런 모델이 가능해졌는데, 지금은 자본의 이익만을 위해 작동하는 구조 속에 갇혀 있음
-
나는 사무실 책상에 빠른 MacBook Pro를 두고 tmux, tailscale, git worktree로 환경을 구성했음
tailscale과 ssh 덕분에 휴대폰으로도 vibecode 작업이 가능하지만, 품질 높은 작업은 여전히 책상 앞에서만 가능함
SaaS 제품을 만들 때는 코드 리뷰, 로그, 메트릭, 사용자 행동 분석까지 꼼꼼히 해야 함
결국 큰 화면과 키보드가 필요함. 세상이 변해도 기본은 변하지 않음 -
꽤 정교한 세팅임. 특히 Tailscale을 활용한 부분이 마음에 듦
나는 더 단순한 방법으로 Claude Code for Web을 iPhone 앱에서 사용 중임
Anthropic이 세션마다 21GB VM을 여러 개 띄워주는데, 추가 요금이 없음
종종 개 산책 중에도 여러 세션을 동시에 돌림. 꽤 잘 작동함- 나는 Claude Code Web이 planning mode가 없어서 별로였음. 결과물도 CLI 버전보다 약했음
지금은 Tailscale + Terminus(iPad) + 홈 머신 조합을 사용 중이며, 여러 기능을 동시에 다루는 방법을 찾는 중임 - “웹 샌드박스” 환경에서 실제 소스코드 접근 없이 일하는 게 놀라움.
LLM을 완전히 신뢰할 수 있을 만큼 자신감이 생긴 건가 싶음 - 내가 만든 superconductor.dev를 써보길 추천함.
라이브 앱 미리보기, docker-in-docker, 다중 에이전트 기능을 한 모바일 앱에서 제공함
- 나는 Claude Code Web이 planning mode가 없어서 별로였음. 결과물도 CLI 버전보다 약했음
-
나도 비슷한 걸 만들고 있음 — clauderon 프로젝트
서버에서 세션을 Docker, K8s, Zellij로 실행하고, Git worktree + proxy로 격리함
웹 UI나 앱으로 Claude Code 세션을 관리할 수 있고, 컨테이너에는 인증 정보가 없음
Claude Code Web보다 환경 제어가 자유로워서 더 안정적임
아직 WIP지만, 더 친화적인 UX를 목표로 함- 멋져 보임. 직접 써볼 예정임
-
나는 휴대폰으로 긴 문장을 입력하는 걸 싫어해서 이 워크플로우는 맞지 않음
대신 Claude Code가 입력을 요청하면 Home Assistant가 푸시 알림을 보내고, 컴퓨터로 돌아가서 작업을 이어감
작은 메시지나 리뷰 코멘트에는 한계가 있음.
Claude 모바일 앱이 Claude Code를 미러링할 수 있게 되면 좋겠음- 나도 긴 입력이 싫어서 Dictate를 씀.
원하는 AI 제공자를 통해 고품질 음성 전사가 가능함 - 지금의 폰은 불편하지만, 이런 수요가 PDA나 초소형 노트북의 부활을 이끌 수도 있음
gpdstore.net 같은 곳에서 접이식 듀얼 스크린 모델도 나옴 - 나도 비슷한 걸 찾다가 tmux+ttyd 조합을 씀.
ttyd는 터미널을 http로 공유해 휴대폰 브라우저에서 음성 입력으로 조작 가능함
- 나도 긴 입력이 싫어서 Dictate를 씀.
-
Claude가 실수하거나 수천 줄의 코드를 추가했을 때는 어떻게 할지 궁금함
테스트나 품질 관리가 없는 사이드 프로젝트라면 몰라도, 유지보수 악몽이 될 수도 있음 -
Jules와 GitHub Copilot Agent만으로도 비슷한 워크플로우가 가능함
Claude Code for Web 문서도 참고할 만함- Copilot Agent와 Claude Code는 자체 샌드박스를 써서 설정은 간단하지만, 테스트 범위가 제한적임
직접 클라우드 환경을 구성하면 데이터베이스나 특정 툴 호출까지 엔드투엔드 테스트가 가능함
- Copilot Agent와 Claude Code는 자체 샌드박스를 써서 설정은 간단하지만, 테스트 범위가 제한적임
-
나도 회사에서 비슷한 걸 만들었음
SSH 세션에서 이미지 붙여넣기를 지원하도록 수정했음
로컬 파일 경로를 감지하면 자동으로 서버에 업로드하고, 원래 입력을 그대로 전달함
이제 Finder에서 파일을 드래그하면 자동으로 서버에 올라감. 투명한 동기화가 인상적임 -
브랜치 이름으로 포트를 해시하는 방식은 충돌 확률이 약 14% 정도임
6개의 브랜치와 99개의 포트 슬롯이면 “충돌 없음”이라 하기엔 비효율적 해싱임 -
대안으로 exe.dev에서 VM을 띄우는 방법도 있음
모바일 접근이 기본 지원된다고 함.
나는 노트북에서만 써봤지만, 브라우저 기반 코딩 에이전트가 터미널보다 편했음