# 여분의 Mac을 Claude Code 전용 제어 환경으로 만드는 단계별 가이드

> Clean Markdown view of GeekNews topic #31591. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=31591](https://news.hada.io/topic?id=31591)
- GeekNews Markdown: [https://news.hada.io/topic/31591.md](https://news.hada.io/topic/31591.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-07-20T08:35:47+09:00
- Updated: 2026-07-20T08:35:47+09:00
- Original source: [ykdojo.github.io](https://ykdojo.github.io/claude-controls-mac/)
- Points: 6
- Comments: 1

## Topic Body

- 개인 데이터가 없는 **여분의 Mac**에 Claude Code를 설치해, 주 Mac의 SSH와 휴대폰 Claude 앱에서 항상 접근 가능한 **독립 실행 환경**으로 구성함
- 컨테이너보다 장비 격리 수준이 높고 Unity와 Mac 전용 GUI 앱도 사용할 수 있어, `--dangerously-skip-permissions`의 위험을 주 Mac과 분리할 수 있음
- 새 로컬 관리자 계정, 암호 없는 `sudo`·SSH, 절전 방지, **클립보드 동기화**와 Claude Code 설치를 거쳐 원격 작업 기반을 구축함
- GUI 제어는 LaunchAgent가 GUI 세션 안에서 유지하는 **tmux 서버**로 구현하며, 화면 기록·손쉬운 사용·전체 디스크 접근 권한은 사람이 직접 허용해야 함
- Remote Control, Claude in Chrome, Screen Sharing, Tailscale을 더하면 휴대폰 제어부터 브라우저 자동화와 외부 접속까지 가능하지만, **별도 인증과 macOS 권한 설정**이 필요함

---

### 구성 목적과 기본 원칙
- Claude Code가 독립적으로 제어할 환경을 만들어 연구·개발 작업을 주 Mac 밖에 위임함
- `--dangerously-skip-permissions`를 사용하는 에이전트는 광범위한 권한을 가지므로, 개인 데이터와 Apple ID가 없는 **별도 장비**에서 실행해 접근 가능한 민감 정보를 줄임
- 휴대폰 Claude 앱이나 주 Mac의 SSH를 통해 언제든 Claude Code에 접근할 수 있음
- 기본 구성에는 같은 Wi-Fi에 연결된 여분의 **대상 Mac**과 일상적으로 사용하는 **소스 Mac**이 필요함

### 컨테이너나 OpenClaw 대신 여분의 Mac을 쓰는 이유
- 컨테이너는 여전히 주 Mac에서 실행되며 네트워크 요청도 주 Mac을 통과하므로 완전한 장비 분리가 아님
- Unity나 Mac 전용 앱을 실행하기 어렵고, 컴퓨터 사용 기능으로 클릭·드래그해야 하는 GUI 작업에도 제약이 있음
- 여분의 Mac 구성은 최신 Claude Code 기능과 Claude 앱 제어, 보유 중인 Claude 구독 사용량을 그대로 활용함
- 다음 원칙에 따라 환경을 분리함
  - 주 Mac이 아닌 **오래된 여분의 Mac**을 사용함
  - 개인 데이터와 Apple ID가 없는 새 로컬 계정을 만듦
  - 로컬 네트워크에서는 SSH, 휴대폰에서는 Claude 앱으로 제어함

### 1. 대상 Mac 초기화와 계정 격리
- 기존 개인 데이터가 있다면 에이전트가 모두 접근할 수 있으므로 먼저 장비를 지움
  - 지원되는 Mac: System Settings → General → Transfer or Reset → **Erase All Content and Settings**
  - 구형 Intel Mac: 부팅 시 `Cmd-R`로 Recovery에 들어가 Disk Utility로 내부 드라이브를 지운 뒤 macOS를 재설치함
- 필요하면 System Settings → General → Software Update에서 최신 macOS로 업데이트함
- 새 **로컬 사용자 계정**을 만들고 Apple ID 로그인은 건너뜀
- `sudo`를 사용할 수 있도록 계정에 관리자 권한을 부여함
  - System Settings → Users & Groups에서 `Allow this user to administer this computer`를 활성화함
  - 다른 관리자 계정에서 복구할 때는 `sudo dseditgroup -o edit -a &lt;user&gt; -t user admin`을 사용할 수 있음

### 2. SSH 원격 로그인 활성화
- 대상 Mac에서 다음 명령으로 **Remote Login**을 활성화함

```bash
sudo systemsetup -setremotelogin on
```

- `Turning Remote Login on or off requires Full Disk Access privileges` 오류가 발생하면 Terminal에 Full Disk Access를 부여함
  - System Settings → Privacy & Security → Full Disk Access에서 Applications → Utilities → Terminal을 추가함
  - Terminal을 종료했다가 다시 열고 명령을 재실행함

### 3. 암호 없는 sudo 설정
- 에이전트와 SSH 명령이 매번 암호를 요구하지 않도록 `/etc/sudoers.d/`에 계정별 규칙을 만듦

```bash
echo "&lt;user&gt; ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/&lt;user&gt;-nopasswd >/dev/null
sudo chmod 440 /etc/sudoers.d/&lt;user&gt;-nopasswd
sudo visudo -cf /etc/sudoers.d/&lt;user&gt;-nopasswd
```

- 첫 명령은 규칙을 기록하고, 두 번째 명령은 `sudo`가 요구하는 읽기 전용 권한을 설정함
- 마지막 검증에서는 반드시 `parsed OK`가 출력돼야 하며, 잘못된 sudoers 문법은 `sudo` 접근을 막을 수 있음
- `sudo -n true`가 출력 없이 성공하면 **암호 없는 sudo**가 동작함

### 4. 대상 Mac 주소 확인
- IP는 재부팅하거나 시간이 지나면 바뀔 수 있으므로 고정된 **호스트 이름** 사용을 권장함

```bash
scutil --get LocalHostName
```

- 출력된 이름에 `.local`을 붙여 `&lt;target-host&gt;.local`로 사용함
- 같은 네트워크에서 두 Mac의 `.local` 이름이 겹치면 잘못된 장비에 연결될 수 있으므로 고유한 이름을 지정함

```bash
sudo scutil --set LocalHostName newmacbook
```

- IP가 필요하면 `ipconfig getifaddr en0`으로 확인할 수 있지만 변경될 수 있음
- 이후 주소는 `&lt;user&gt;@&lt;target-host&gt;.local` 형식으로 사용함

### 5. 소스 Mac에서 암호 없는 SSH 구성
- 기존 SSH 키가 없다면 소스 Mac에서 Ed25519 키를 생성함

```bash
ssh-keygen -t ed25519
ssh-copy-id &lt;user&gt;@&lt;target-host&gt;.local
```

- 공개 키를 설치할 때 대상 계정 암호를 한 번 입력함
- 다음 명령이 암호 입력 없이 대상 사용자 이름을 출력하면 설정이 완료됨

```bash
ssh &lt;user&gt;@&lt;target-host&gt;.local whoami
```

### 6. 절전과 자동 잠금 방지
- macOS는 전원 연결 상태에서도 약 10분간 유휴 상태면 잠들어 네트워크에서 사라질 수 있으므로 절전을 비활성화함

```bash
sudo pmset -c sleep 0
sudo pmset -c disablesleep 1
sudo pmset -c displaysleep 0
```

- 각 명령은 충전 중 시스템 절전 방지, 덮개를 닫은 상태의 절전 방지, 디스플레이 절전 방지를 적용함
- `pmset -g | grep -iE 'sleep'` 출력에서 `sleep 0`, `SleepDisabled 1`, `displaysleep 0`을 확인함
- 배터리에서도 적용하려면 `-c` 대신 `-a`를 쓰지만 배터리 소모가 늘어남
- 화면 보호기로 인한 자동 잠금도 막음

```bash
defaults -currentHost write com.apple.screensaver idleTime 0
```

### 7. SSH 클립보드 동기화
- macOS의 `pbcopy`와 `pbpaste`를 SSH로 연결하면 Apple ID나 외부 서비스 없이 암호화된 P2P 방식으로 텍스트를 전송할 수 있음
- [`clip.sh`](https://ykdojo.github.io/claude-controls-mac/clip.sh)는 이미지 전송까지 지원함

```bash
curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/main/clip.sh -o ~/.local/bin/clip
chmod +x ~/.local/bin/clip
export IC_BOX="&lt;user&gt;@&lt;target-host&gt;.local"
```

- `IC_BOX` 설정은 `~/.zshrc`에 추가함
- `clip send`는 소스 Mac의 텍스트나 이미지를 대상으로 보내며, 이미지는 대상의 Claude Code 세션에 `Ctrl-V`로 붙여넣을 수 있음
- `clip get`은 대상 Mac의 클립보드를 소스 Mac으로 가져옴

### 8. Claude Code 설치
- 소스 Mac에서 SSH를 통해 대상 Mac에 특정 Claude Code 버전을 설치함

```bash
ssh &lt;user&gt;@&lt;target-host&gt;.local 'curl -fsSL https://claude.ai/install.sh | bash -s -- 2.1.201'
```

- 버전 `2.1.201` 대신 `latest`나 `stable`도 지정할 수 있음
- `~/.local/bin` PATH 경고가 나오면 모든 zsh에서 읽는 `~/.zshenv`에 경로를 추가함

```bash
ssh &lt;user&gt;@&lt;target-host&gt;.local 'echo '\''export PATH="$HOME/.local/bin:$PATH"'\'' >> ~/.zshenv'
```

### 9. Claude Code 친화적 환경 선택 설치
- 선택 사항인 [`setup-claude-env.sh`](https://ykdojo.github.io/claude-controls-mac/setup-claude-env.sh)는 셸 별칭, DX 플러그인, `settings.json` 조정, GitHub CLI와 선택형 Playwright MCP·yt-dlp를 설치함
- 전체 구성 요소는 [`claude-env-components.md`](https://ykdojo.github.io/claude-controls-mac/claude-env-components.html)에서 확인할 수 있음
- 대화형 실행에서는 기본 항목이 선택되고 선택 설치 항목은 해제된 체크리스트를 제공함

```bash
ssh -t &lt;user&gt;@&lt;target-host&gt;.local \
  'curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/main/setup-claude-env.sh -o setup-claude-env.sh && bash setup-claude-env.sh'
```

- 비대화형 실행은 기본적으로 핵심 항목만 설치하며 `--yt-dlp`, `--playwright`, `--all`, `--core` 플래그를 지원함
- 스크립트는 **멱등성**이 있어 다시 실행해도 됨

### 10. Claude와 GitHub 로그인
- SSH로 대상 Mac에 접속해 `claude`를 실행하고, 주 Mac의 브라우저에서 완료할 수 있는 브라우저·장치 코드 흐름으로 Anthropic 계정에 로그인함
- 저장소 작업을 위해 `gh auth login`으로 GitHub 로그인을 추가하는 방식을 권장함
- 에이전트가 주 계정에 영향을 주지 않도록 **별도 GitHub 계정**을 사용하는 편이 안전함

### 11. SSH를 통한 컴퓨터 사용 기능
- ## GUI 세션에 연결하는 방식
  - SSH 프로세스는 GUI 로그인 세션에 연결된 화면 기록과 손쉬운 사용 권한을 직접 사용할 수 없음
  - LaunchAgent가 GUI 세션 안의 고정 소켓에서 **tmux 서버**와 앵커 세션 `cc`를 유지함
  - 해당 서버 안에서 시작된 Claude Code는 GUI 세션을 상속해 스크린샷, 마우스와 키보드 제어에 접근함
- ## 설치
  - [`setup-computer-use.sh`](https://ykdojo.github.io/claude-controls-mac/setup-computer-use.sh)를 실행함

  ```bash
  ssh -t &lt;user&gt;@&lt;target-host&gt;.local \
    'curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/main/setup-computer-use.sh -o setup-computer-use.sh && bash setup-computer-use.sh'
  ```

  - LaunchAgent와 tmux 앵커를 설치하고 `~/.claude.json`에서 내장 `computer-use` 도구를 활성화함
  - tmux와 Claude Pro 또는 Max 플랜이 필요하며, 스크립트는 재실행할 수 있고 `--uninstall`로 제거 가능함
- ## `ic` 명령으로 세션 관리
  - 소스 Mac에 [`ic.sh`](https://ykdojo.github.io/claude-controls-mac/ic.sh)를 설치함

  ```bash
  curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/main/ic.sh -o ~/.local/bin/ic
  chmod +x ~/.local/bin/ic
  echo 'export IC_BOX="&lt;user&gt;@&lt;target-host&gt;.local"' >> ~/.zshrc
  ```

  - 주요 명령은 다음과 같음
    - `ic`: 새 Claude 세션
    - `ic -c`, `ic -r`: 최근 대화 계속하기 또는 재개 선택기
    - `ic --chrome`: Claude in Chrome과 함께 실행
    - `ic sh`: 대상의 일반 셸
    - `ic vnc`: Screen Sharing 실행
    - `ic rc`: 휴대폰 Remote Control 서버
    - `ic history`, `ic ls`: 저장 대화와 실행 세션 확인
    - `ic attach &lt;id&gt;`, `ic kill &lt;id&gt;`, `ic kill-all`, `ic kill-except`: 세션 연결·종료 관리
  - 모든 `ic` 세션은 `--dangerously-skip-permissions`로 실행되며, `ic rc`는 `--permission-mode bypassPermissions`를 사용함
  - tmux 안에서는 Claude가 내보내는 OSC52 클립보드 시퀀스를 Terminal.app이 받지 못하므로, 화면 전체를 복사하려면 `Cmd-A` 후 `Cmd-C`를 사용함
- ## 에이전트 간 위임
  - 소스 Mac의 Claude Code는 SSH와 `tmux send-keys`를 사용해 대상에서 실행 중인 Claude 세션에 프롬프트를 보낼 수 있음
  - 긴 프롬프트는 텍스트와 같은 전송 묶음에 포함된 Enter가 제출로 처리되지 않을 수 있어, 잠시 기다린 뒤 Enter를 한 번 더 보내야 함
  - `tmux capture-pane`과 `tail`로 응답을 읽고 작업이 끝날 때까지 반복 확인할 수 있음
- ## 사람이 직접 부여해야 하는 권한
  - 화면 기록과 손쉬운 사용 권한은 macOS GUI에서 사람이 직접 승인해야 하며 합성 클릭으로 처리할 수 없음
  - 최초 캡처 때 나타나는 `bypass the window picker` 허용 요청도 승인해야 하며, 약 한 달마다 다시 나타날 수 있음
  - 권한 대상은 `claude`가 아니라 책임 프로세스인 **tmux 바이너리**임
    - Intel 경로: `/usr/local/bin/tmux`
    - Apple Silicon 경로: `/opt/homebrew/bin/tmux`
  - 화면 기록은 스크린샷, 손쉬운 사용은 마우스·키보드 제어를 허용함
  - 권한 상태가 프로세스 시작 시 캐시되므로 부여 후 `tmux -S /tmp/cc-tmux.sock kill-server`로 서버를 재시작해야 함
  - 설정 목록에 tmux가 나타나지 않으면 `ic`에서 Claude에게 스크린샷을 요청해 권한 요청을 먼저 발생시킴
  - 최신 macOS에서 앱별 데이터 접근 요청을 반복하지 않으려면 tmux에 **Full Disk Access**를 부여하고 서버를 다시 시작함

### 12. VPN과 기타 GUI 앱 설치
- 대상 Mac의 트래픽을 로컬 IP와 분리하기 위해 Proton VPN 같은 VPN을 설치할 수 있음
- 컴퓨터 사용 기능을 설정했다면 `ic`에서 Claude에게 앱 설치를 요청할 수 있지만 다음 작업은 사람이 처리해야 함
  - 무료 요금제라도 로그인 자격 증명이 필요하며 암호는 `clip send`로 전달할 수 있음
  - 첫 연결의 VPN·네트워크 구성 권한과 Mac 암호 요청을 승인해야 함
  - GUI 전용 앱 제어에는 컴퓨터 사용 기능이 필요함
- 로그인 이후에는 에이전트가 연결과 서버 전환을 수행할 수 있으며, 같은 흐름을 다른 애플리케이션에도 적용할 수 있음

### 13. 휴대폰에서 제어
- 기존 세션에서 `/remote-control` 또는 `/rc`를 실행하면 Claude 앱으로 같은 세션을 이어서 제어할 수 있음
- `claude remote-control`은 휴대폰에서 기존 세션 연결뿐 아니라 새 세션 생성도 지원함
- `ic rc`로 시작하면 휴대폰에서 만든 세션도 대상 Mac의 **컴퓨터 사용 기능**에 접근할 수 있음

### 14. Claude in Chrome 설정
- 일반 컴퓨터 사용 기능은 브라우저 화면을 볼 수 있지만 클릭이나 입력에는 제약이 있음
- [Claude in Chrome 확장](https://chromewebstore.google.com/detail/claude/fcoeoabgfenejglbffodgkkbkcdhcgfn)은 탐색, 클릭, 폼 입력, 콘솔 로그와 네트워크 요청 읽기를 지원함
- Playwright MCP와 달리 대상 Mac의 일반 Chrome 프로필을 사용하므로 이미 로그인한 상태를 활용할 수 있음
- 대상 Mac에 Chrome과 Anthropic Pro, Max, Team 또는 Enterprise 직접 구독이 필요함
- 다음 작업은 사람이 직접 처리해야 함
  - Chrome Web Store에서 `Add to Chrome`을 클릭함
  - 확장 프로그램에서 Claude 계정에 로그인하며, 자격 증명은 `clip send`로 전달할 수 있음
- Claude Code에서 `/chrome`을 실행해 기본 활성화하거나, 세션별로 `claude --chrome` 또는 `ic --chrome`을 사용함
- 연결되지 않으면 Chrome을 한 번 재시작함
- 9단계 환경 스크립트는 좌표 대신 접근성 트리의 요소 참조를 사용하고, 요청하지 않은 스크린샷을 피하도록 `~/.claude/CLAUDE.md`에 지침을 추가함
- 소스와 대상 Chrome이 같은 계정의 확장을 동시에 실행하면 선택 요청이 나타나며, 로컬 장비 판별이 잘못될 수 있는 [이슈 #74667](https://github.com/anthropics/claude-code/issues/74667)이 있음
  - 소스 Mac의 확장을 일시 삭제하거나 소스의 Chrome을 종료해 회피할 수 있음
- 휴대폰에서 생성한 세션에는 현재 브라우저 도구가 제공되지 않는 [이슈 #74671](https://github.com/anthropics/claude-code/issues/74671)이 있음
  - 터미널에서 세션을 시작한 뒤 `/rc`로 휴대폰을 연결함

### 15. macOS Screen Sharing
- 내장 Screen Sharing으로 소스 Mac에서 대상 화면을 실시간 확인하고 마우스·키보드를 직접 제어할 수 있음
- macOS 12.1부터는 [명령줄로 활성화할 수 없으므로](https://support.apple.com/guide/remote-desktop/enable-remote-management-apd8b1c65bd/mac) 대상 GUI에서 설정해야 함
- System Settings → General → Sharing에서 Screen Sharing을 켬
  - Remote Management가 켜져 있어 토글이 보이지 않으면 먼저 끔
- 소스 Mac에서 다음 명령으로 연결함

```bash
open vnc://&lt;user&gt;@&lt;target-host&gt;.local
```

- 대상 계정 암호로 로그인하고 Keychain 암호 저장을 선택할 수 있음

### 16. Tailscale을 통한 외부 네트워크 접속
- `.local` 주소는 LAN에서만 동작하지만 [Tailscale](https://tailscale.com/)은 P2P 종단 간 암호화 [WireGuard](https://www.wireguard.com/) 터널을 통해 SSH, `ic`, `clip`, Screen Sharing을 외부 네트워크에서도 사용할 수 있게 함
- 공개 인터넷에 서비스를 노출하지 않으며, 홈 네트워크에서는 직접 LAN 경로를 사용함
- Tailscale 네트워크 가입은 장비 간 도달 가능성만 제공하므로 SSH 키나 Screen Sharing 암호는 계속 필요함
- 대상 Mac에 헤드리스 방식으로 설치하고 출력되는 URL에서 로그인함

```bash
ssh &lt;user&gt;@&lt;target-host&gt;.local 'brew install tailscale'
ssh &lt;user&gt;@&lt;target-host&gt;.local 'sudo brew services start tailscale'
ssh &lt;user&gt;@&lt;target-host&gt;.local 'sudo tailscale up --operator=&lt;user&gt;'
```

- 소스 Mac에도 설치하고 대상과 **같은 Tailscale 계정**으로 로그인함

```bash
brew install --cask tailscale-app
```

- 기본 활성화된 MagicDNS를 사용하면 `.local`을 뺀 호스트 이름으로 어디서나 접근할 수 있음

```bash
export IC_BOX="&lt;user&gt;@&lt;target-host&gt;"


# export IC_BOX="&lt;user&gt;@&lt;target-host&gt;.local"
```

- Screen Sharing 주소도 `open vnc://&lt;user&gt;@&lt;target-host&gt;`로 변경함
- [관리자 콘솔](https://login.tailscale.com/admin)에서 다음 보안·가용성 설정을 권장함
  - 탈취된 로그인만으로 새 장비가 가입하지 못하도록 **device approval**을 활성화함
  - 대상 장비가 약 180일 뒤 키 만료로 연결 해제되지 않도록 key expiry를 비활성화함
- 실제 원격 접속은 소스 Mac을 휴대폰 핫스폿 같은 다른 네트워크에 연결한 뒤 `ic ls`로 확인함

## Comments



### Comment 62053

- Author: neo
- Created: 2026-07-20T08:35:49+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=48959392) 
- 글에서 언급한 그래픽 개발이 아니라면 에이전트를 실제 하드웨어에 격리할 이유가 없음. libvirt로 Claude 전용 그래픽 데스크톱을 만들어 Chrome 사용자 인수 테스트까지 수행하는 [스크립트](https://gist.github.com/smith153/04b4068b5a2d7b234f1c3d5992dafe25)를 작성했음  
  **root 권한**을 모두 줘도 문제가 생기면 몇 초 만에 폐기하고 재설치할 수 있음
  - 나는 `sudo useradd agent`, `sudo su agent` 정도로 별도 사용자를 만들어 에이전트가 자기 파일만 망가뜨릴 수 있게 함. 헤드리스 Chrome으로 스크린샷도 찍었고 VNC도 구성했지만 쓸 가치는 크지 않았음  
    **3달러 VPS**에서도 망가지면 바로 재설치할 수 있어 에이전트에 root를 주는 재미가 있음
  - Mac 호스트의 가상 머신에서 **macOS 게스트**를 실행할 수 있으며 Apple도 이를 명시적으로 허용함
  - 용량만 충분하면 가상 머신에서 Claude 전용 **iMessage**를 만들 수 있지만, 남는 구형 Apple 하드웨어를 활용해도 좋음
  - 이 스크립트는 Claude가 생성한 코드로 보이며, 250줄쯤 읽다가 일관성 없는 코드가 피곤해져 흥미를 잃었음

- AI가 실제로 **24시간 계속 도와줄 만한 용도**를 도저히 찾지 못하겠지만, 나도 필요성을 느끼고 싶음
  - Claude Code 숙련자는 IDE를 거의 쓰지 않으므로 노트북 대신 휴대폰에서 작업하지 못할 이유도 관습 외에는 크지 않음  
    실제로 외출 중 Datadog·클라우드 로그·GitHub 경보가 몰리면 Claude Code에 조사를 맡겨 “제휴 은행 API의 시간 초과가 한 시간 전부터 약 15% 요청에서 발생한다”는 식으로 분류하게 할 수 있음. 담당자에게 연락한 뒤 주말로 돌아가면 됨  
    제대로 된 온콜 체계가 더 낫겠지만, 직장이 제공하는 유연성을 고려하면 주말 Slack 경보도 감수할 만함
  - 몇 시간씩 걸리는 **데이터 과학 분석**을 Claude가 주로 감시하게 함. 원격 제어로 완료나 추가 확인 요청을 알림받고, 새 아이디어가 생기면 바로 작업 대기열에 넣을 수 있음  
    구독 한도보다 하드웨어가 병목이 되는 경우가 더 많음
  - 토큰이 남을 때는 도메인·소스 코드 지식을 활용해 퍼징 방식을 고르는 **퍼징**, 비슷한 최적화 문제, Microsoft의 [SkillOpt](https://github.com/microsoft/SkillOpt/) 실행에 사용했음
  - Claude Cowork로 노트북을 안전하게 재설치하기 위한 **체크리스트와 백업**을 만들었음. SSH 설정, 앱, 다운로드, 문서 등을 확인한 뒤 백업까지 맡기고 재설치 후 복원 절차도 작성하게 해 오래 미루던 일을 끝낼 수 있었음
  - 유용했던 용도는 별도 환경에서 GUI 기반 Google Chrome과 Figma를 조작하게 하는 것, 1시간 넘는 작업을 메인 컴퓨터를 닫은 채 실행하는 것, Gemma·Whisper·Qwen처럼 CPU와 자원을 많이 쓰는 작업을 분리하는 것임

- Claude를 세 번째 PC에 설치해 아무도 원하지 않는 코드를 계속 환각하게 하며 뒤처지지 않으려 애쓰기보다는, 코딩 자체를 즐기므로 **직접 코딩**하겠음

- OpenClaw 봇의 무료 대체재로 구형 Mac에 비슷하게 구성했음. 가끔 연결이 끊겨 휴대폰으로 인계를 다시 해야 하지만, Claude가 조작할 수 있는 **Homebridge**도 함께 실행해 활용도가 좋음

- 별도 **Mac mini M4**에 Claude Desktop을 설치하고 Dispatch로 제어 중임. 이미 Claude에 준 로컬 계정을 완전히 제어할 수 있는데 이 방식으로 바꿀 이유가 있는지 궁금함
  - 대부분의 추론은 Anthropic 측에서 처리되는데 왜 M4가 필요한지 의문임. 특별히 자원 집약적인 앱을 실행하는 게 아니라면 과한 사양처럼 보임
  - Dispatch보다 **RC**가 더 강력하고 Claude Code를 직접 쓰는 경험에 가까웠지만, Claude 소유 샌드박스와 비교하면 RC 모드에도 빠진 기능이 있음  
    호스트 세션마다 RC를 실행하는 대신 Claude가 내 컴퓨터를 샌드박스 호스트로 사용하면 좋겠음. 현재는 마스터 RC 세션이 각 코딩 작업마다 새 tmux 창과 Claude RC 세션을 만드는 임시 구성을 사용 중임  
    RC 버그가 생기면 Termux에서 Code를 직접 쓸 수 있지만, iOS의 권한 인터페이스는 다소 불안정했음
  - Dispatch/Cowork는 본질적으로 **컨테이너 속 Claude Code**임. 글의 “Why not run it in a container?” 부분이 답이 되며, Cowork는 컨테이너 권한 때문에 PDF나 다른 파일을 내려받아 읽거나 작성하지 못할 때가 있지만 일반 Claude Code는 `curl`과 `wget`을 문제없이 사용함
  - Dispatch는 이 방식과 다르고 커넥터를 비롯한 일부 작업에는 매우 편리함. 다만 모바일·데스크톱·노트북을 아우르는 통합 전략 없이 **Cowork 위에 점진적으로 덧붙인 기능**처럼 점점 느껴짐

- 모든 제약을 해결하지는 못하지만 UTM으로 Mac의 가상 머신에 macOS와 Claude Code를 설치할 수 있음. UTM은 비관리자 계정으로도 실행되며 대부분의 **Mac 네이티브 도구**를 사용할 수 있음  
  다만 가상 머신의 Claude Code UI는 대화형 성능이 좋지 않으며, 호스트의 비관리자 계정에서 터미널로 접속해 이를 피할 수 있는지는 확실하지 않음
  - UTM은 **그래픽 가속을 지원하지 않아** 브라우저 기능이 제한됨. 가속이 필요하지 않아도 UTM의 가상 운영체제에서 실행한 브라우저는 일부 최신 CAPTCHA와 브라우저 지문 검사를 통과하지 못했음

- 과열을 해결하지 못한 구형 NUC 대신 i5가 장착된 HP EliteDesk로 **홈랩·미디어 서버**를 재구축했음. 기본 Ubuntu에 격리용 가상 머신을 만들고 Claude를 실행하면서 Dispatch를 시험하거나, Claude Code를 직접 설치한 뒤 iPhone·iPad의 Moshi 앱을 사용할 생각임
  - 나도 Ubuntu 가상 머신에서 Claude를 실행하며, 기존에는 정기 작업으로 처리했을 일을 맡기고 있음. iMessage가 필요 없다면 Mac 구성이 어떤 추가 이점을 주는지 궁금함

- 구형 M2로 비슷하게 구성했음. 충분한 성능의 로컬 모델을 돌리기에는 부족하지만 **OpenClaw와 Claude**에는 완벽함  
  M1·M2 MacBook 가격도 이제 Mac mini와 비교해 저렴한 편이라 놀라움
  - 나는 반대로 고성능 Framework Desktop을 **헤드리스 AI 머신**으로 두고 M1 MacBook Pro를 일상용으로 사용하며 잘 작동함
  - 16GB 이상 MacBook Air와 MacBook은 이런 수요 때문인지 **지나치게 비싸졌음**
