남는 Mac을 Claude Code가 마음껏 쓰는 전용 머신으로 세팅하기
Setting up your spare Mac for Claude Code to control, a step-by-step guide
TL;DR Highlight
남는 Mac에 SSH·tmux를 깔았더니 Claude Code를 폰으로 부리는 격리 머신이 됐다
Who Should Read
--dangerously-skip-permissions로 에이전트를 돌리고 싶지만 메인 컴퓨터가 불안한 Mac 사용 개발자
Core Mechanics
- 메인 머신 대신 남는 Mac에 가둔다
- 새 로컬 계정을 만들고 Apple ID 로그인과 개인 데이터를 모두 없앤다.
- 에이전트가 건드릴 민감한 것이 없어서 권한을 크게 줘도 부담이 적다.
- 컨테이너로는 부족했다
- 컨테이너는 여전히 메인 머신에서 돈다. 네트워크 요청도 메인 머신을 거친다.
- Unity 같은 Mac 전용 앱은 컨테이너에서 못 돌린다. computer use(클릭·드래그) 대상으로도 쓸 수 없다.
- SSH 접속과 절전 방지가 기본 뼈대다
- Remote Login을 켜고 ed25519 키로 비밀번호 없이 접속한다. 주소는 IP 대신 .local 호스트명을 권장한다.
- pmset으로 절전을 끄고 화면보호기 잠금도 끈다.
- SSH만으로는 computer use가 안 된다
- macOS의 화면 녹화·손쉬운 사용 권한은 GUI 로그인 세션에 묶여 있어 SSH 프로세스는 화면에 못 닿는다.
- LaunchAgent가 GUI 세션 안에서 tmux 서버를 계속 띄우고, claude를 그 안에서 실행해 우회한다.
- 권한은 claude가 아니라 tmux에 줘야 한다
- macOS는 체인의 책임 프로세스인 tmux 서버에 권한을 붙인다.
- 권한을 준 뒤 tmux 서버를 재시작해야 새 세션에 적용된다. 이 권한 부여는 스크립트로 못 하고 기기 앞에서 직접 해야 한다.
Community Reactions
- libvirt로 VM을 띄워도 충분하다는 의견
- 그래픽 개발 외에는 실제 하드웨어로 격리할 이유가 없다고 본다.
- 댓글 작성자는 Claude에 root를 주고 Chrome UAT용 데스크톱을 주며, 망가지면 몇 초 만에 재설치한다고 한다.
- 같은 구성을 써 봤더니 연결이 가끔 끊겼다는 경험
- OpenClaw 봇의 무료 대체로 써 봤고, 가끔 연결이 끊겨 폰에서 핸드오프를 다시 해야 했다고 한다.
- 그 Mac이 Home Bridge도 돌려 Claude가 연동한다고 한다.
- 격리된 박스도 네트워크는 뚫려 있다는 의견
- 파일과는 분리돼도 같은 네트워크의 기기에는 접근할 수 있다는 지적이다.
- 여러 댓글이 별도 VLAN이나 deny-all 방화벽 뒤에 두라고 권한다.
- sudo 부여는 위험하다는 의견
- 한 댓글은 에이전트에게 sudo를 주는 것이 무모하다고 본다.
- 이 사람은 권한 없는 UNIX 계정만 주고 컨테이너·VM은 쓰지 않는다고 한다.
- 대안 구성 경험 공유
- Mac mini M4에 Claude Desktop을 두고 Dispatch로 제어한다는 경험이 있다.
- terminus+wireguard+tmux로 폰에서 claude/codex를 조작한다는 경험도 있다.
How to Apply
- 지금 쓰는 머신의 격리 수준 점검하기
- 에이전트를 돌리는 머신에 개인 데이터·Apple ID·로그인된 계정이 얼마나 있는지 30분 안에 목록으로 적는다.
- 남는 Mac이 있으면 새 로컬 계정을 만들고 Apple ID 없이 시작한다.
- SSH 키 접속과 절전 방지 먼저 세팅하기
- 대상 Mac에서 sudo systemsetup -setremotelogin on을 실행한다. 원본 순서대로 ssh-keygen과 ssh-copy-id를 실행한다.
- sudo pmset -c sleep 0으로 절전을 끄고 ssh 접속을 확인한다.
- 박스를 별도 VLAN이나 방화벽 뒤에 두기
- 공유기에서 박스를 게스트 네트워크나 별도 VLAN으로 옮긴다.
- 내부 기기로 가는 접근은 막고 인터넷만 허용한다.
- computer use는 tmux에 권한 주고 서버 재시작하기
- setup-computer-use.sh를 실행한 뒤 기기 앞에서 tmux에 Screen Recording과 Accessibility를 켠다.
- tmux -S /tmp/cc-tmux.sock kill-server로 재시작해 새 세션에서 적용을 확인한다.
Try It
# 대상 Mac의 터미널(또는 SSH)에서 실행. 원문 3·6단계 요약. {{user}}는 대상 계정명
echo "{{user}} ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/{{user}}-nopasswd >/dev/null
sudo chmod 440 /etc/sudoers.d/{{user}}-nopasswd
sudo visudo -cf /etc/sudoers.d/{{user}}-nopasswd # 'parsed OK'가 나와야 함
sudo -n true && echo ok
sudo pmset -c sleep 0
sudo pmset -c disablesleep 1
sudo pmset -c displaysleep 0
pmset -g | grep -iE 'sleep'
# 이어서 해 볼 것: 메인 Mac에서 ssh-keygen -t ed25519 후 ssh-copy-id {{user}}@{{호스트명}}.local, 그리고 ssh {{user}}@{{호스트명}}.local whoamiTerminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓
Related Resources
- https://ykdojo.github.io/claude-controls-mac/
- https://raw.githubusercontent.com/ykdojo/claude-controls-mac/main/clip.sh
- https://raw.githubusercontent.com/ykdojo/claude-controls-mac/main/setup-claude-env.sh
- https://raw.githubusercontent.com/ykdojo/claude-controls-mac/main/setup-computer-use.sh
- https://raw.githubusercontent.com/ykdojo/claude-controls-mac/main/ic.sh