diff --git a/README.md b/README.md index 8b1d13e..3e6b770 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,12 @@ Mac 개발 환경을 자동으로 설정하는 스크립트입니다. - Homebrew - Node.js - iTerm2 +- **cmux** + CLI 링크 - Oh My Zsh (agnoster 멀티라인 테마) - zsh-syntax-highlighting / zsh-autosuggestions - **VSCode** + Claude 확장 -- **Claude Code CLI** -- **Codex CLI** +- **Claude Code CLI** (설치/업데이트) +- **Codex CLI** (설치/업데이트) - **VSCode OpenAI 확장** - Cursor (에디터) - **Codex shared workspace bootstrap** @@ -93,16 +94,21 @@ setup_mac/ - **플러그인**: syntax-highlighting, autosuggestions ### Claude Code -- **CLI**: `npm install -g @anthropic-ai/claude-code` 로 자동 설치 +- **CLI**: `npm install -g @anthropic-ai/claude-code` 로 자동 설치/업데이트 - **VSCode 확장**: `code --install-extension` 으로 자동 설치 - 최초 실행 시 Anthropic API 키 설정 필요 +### cmux +- **앱**: `brew tap manaflow-ai/cmux` 후 `brew install --cask cmux` 로 자동 설치 +- **CLI**: `/Applications/cmux.app/Contents/Resources/bin/cmux` 를 Homebrew bin 경로에 링크 +- cmux 외부 터미널에서도 `cmux` 명령을 사용할 수 있도록 구성 + ### Codex 공유 환경 - `https://github.com/nad4-su/codex` 를 `~/workspace/codex` 로 자동 clone - `bootstrap-codex.sh` 자동 실행 - `~/workspace/AGENTS.md` 등 공통 링크 자동 구성 - `harness-diagnostics`, `gstack` 등 Codex skill 자동 bootstrap -- `@openai/codex` CLI 자동 설치 +- `@openai/codex` CLI 자동 설치/업데이트 - VSCode OpenAI 확장 자동 설치 ## OpenAI 공식 기준 반영 @@ -200,6 +206,11 @@ git push - [ ] `test -f ~/.codex/config.toml` - [ ] VSCode Extensions에서 `OpenAI / ChatGPT` 확장 확인 +### cmux 확인 +- [ ] `open -a cmux` → cmux 앱 실행 확인 +- [ ] `cmux` → 외부 터미널에서 CLI 실행 확인 +- [ ] `ls -l /opt/homebrew/bin/cmux` 또는 `ls -l /usr/local/bin/cmux` + ## 🛠️ 문제 해결 ### iTerm2 프로파일이 적용되지 않는 경우 @@ -256,6 +267,22 @@ npm install -g @openai/codex codex ``` +### cmux CLI가 동작하지 않는 경우 +```bash +# cmux 앱 설치 확인 +ls -la /Applications/cmux.app + +# cmux 재설치 +brew tap manaflow-ai/cmux +brew reinstall --cask cmux + +# Apple Silicon 기본 경로 +ln -sf "/Applications/cmux.app/Contents/Resources/bin/cmux" /opt/homebrew/bin/cmux + +# 권한이 필요한 경우 +sudo ln -sf "/Applications/cmux.app/Contents/Resources/bin/cmux" /usr/local/bin/cmux +``` + ### VSCode Claude 확장이 설치되지 않는 경우 ```bash # code 명령 설치 (VSCode 실행 후) @@ -301,6 +328,7 @@ git pull - [Homebrew](https://brew.sh/) - [iTerm2](https://iterm2.com/) +- [cmux](https://cmux.com/docs/getting-started) - [Oh My Zsh](https://ohmyz.sh/) - [Claude Code](https://docs.anthropic.com/en/docs/claude-code) - [Codex Shared Repo](https://github.com/nad4-su/codex) diff --git a/setup_mac.sh b/setup_mac.sh index 7033740..1dff80c 100755 --- a/setup_mac.sh +++ b/setup_mac.sh @@ -3,7 +3,7 @@ # ============================================================================= # Mac 초기 개발 환경 설정 스크립트 # 작성자: NAD4 -# 설명: Homebrew, iTerm2, Oh My Zsh, Claude Code, Codex, VSCode, 필수 앱 자동 설치 및 설정 +# 설명: Homebrew, iTerm2, cmux, Oh My Zsh, Claude Code, Codex, VSCode, 필수 앱 자동 설치 및 설정 # ============================================================================= set -e # 에러 발생 시 스크립트 중단 @@ -46,6 +46,19 @@ brew update echo "" +# ============================================================================= +# 1-1. Homebrew tap 구성 +# ============================================================================= +echo "📦 Homebrew tap 구성 중..." + +if brew tap | grep -q "^manaflow-ai/cmux$"; then + echo "✅ cmux tap 이미 구성됨" +else + brew tap manaflow-ai/cmux || echo "⚠️ cmux tap 구성 실패. cmux 설치를 나중에 수동으로 진행해주세요." +fi + +echo "" + # ============================================================================= # 2. iTerm2 설치 # ============================================================================= @@ -137,6 +150,7 @@ APPS=( "stats" "rectangle" "appcleaner" + "cmux" ) for app in "${APPS[@]}"; do @@ -150,10 +164,35 @@ done echo "" +# cmux CLI 링크 설정 +echo "🔗 cmux CLI 설정 중..." +CMUX_APP_CLI="/Applications/cmux.app/Contents/Resources/bin/cmux" + +if [ -x "$CMUX_APP_CLI" ]; then + if [[ $(uname -m) == "arm64" ]] && [ -d "/opt/homebrew/bin" ]; then + CMUX_LINK_DIR="/opt/homebrew/bin" + else + CMUX_LINK_DIR="/usr/local/bin" + fi + + if [ -w "$CMUX_LINK_DIR" ]; then + ln -sf "$CMUX_APP_CLI" "$CMUX_LINK_DIR/cmux" + echo "✅ cmux CLI 링크 설정 완료: $CMUX_LINK_DIR/cmux" + else + echo "⚠️ $CMUX_LINK_DIR 에 쓰기 권한이 없어 cmux CLI 링크를 만들 수 없습니다." + echo " 수동 실행: sudo ln -sf \"$CMUX_APP_CLI\" \"$CMUX_LINK_DIR/cmux\"" + fi +else + echo "⚠️ cmux 앱 CLI를 찾을 수 없습니다." + echo " cmux 첫 실행 후 필요 시 수동 확인: $CMUX_APP_CLI" +fi + +echo "" + # ============================================================================= -# 7. Node.js, Claude Code CLI, Codex CLI 설치 +# 7. Node.js, Claude Code CLI, Codex CLI 설치/업데이트 # ============================================================================= -echo "🤖 Node.js, Claude Code, Codex 설치 중..." +echo "🤖 Node.js, Claude Code, Codex 설치/업데이트 중..." # Node.js if brew list node &> /dev/null; then @@ -163,21 +202,27 @@ else echo "✅ Node.js 설치 완료" fi -# Claude Code CLI -if command -v claude &> /dev/null; then - echo "✅ Claude Code CLI 이미 설치됨" -else - npm install -g @anthropic-ai/claude-code || { echo "⚠️ Claude Code CLI 설치 실패. Node.js 설치를 확인해주세요."; } - echo "✅ Claude Code CLI 설치 완료" -fi +install_or_update_npm_cli() { + local package_name="$1" + local command_name="$2" + local display_name="$3" -# Codex CLI -if command -v codex &> /dev/null; then - echo "✅ Codex CLI 이미 설치됨" -else - npm install -g @openai/codex || { echo "⚠️ Codex CLI 설치 실패. Node.js 설치를 확인해주세요."; } - echo "✅ Codex CLI 설치 완료" -fi + if command -v "$command_name" &> /dev/null; then + echo "🔄 $display_name 업데이트 확인 중..." + else + echo "📦 $display_name 설치 중..." + fi + + if npm install -g "$package_name"; then + echo "✅ $display_name 설치/업데이트 완료" + "$command_name" --version 2>/dev/null || true + else + echo "⚠️ $display_name 설치/업데이트 실패. Node.js와 npm 설정을 확인해주세요." + fi +} + +install_or_update_npm_cli "@anthropic-ai/claude-code" "claude" "Claude Code CLI" +install_or_update_npm_cli "@openai/codex" "codex" "Codex CLI" echo "" @@ -584,18 +629,23 @@ echo " ls ~/.codex/skills | grep harness-diagnostics" echo " ls ~/.codex/skills | grep gstack-review" echo " ※ 필요 시: bash ~/workspace/codex/scripts/update-vendor.sh" echo "" -echo " 🔟 VSCode 확장 확인:" +echo " 🔟 cmux 확인:" +echo " cmux # → cmux CLI 실행 확인" +echo " open -a cmux # → cmux 앱 실행" +echo "" +echo " 1️⃣1️⃣ VSCode 확장 확인:" echo " VSCode 실행 → Extensions (⌘⇧X)" echo " → 'Claude' 설치 확인" echo " → 'OpenAI / ChatGPT' 설치 확인" echo "" -echo " 1️⃣1️⃣ AppCleaner 사용법:" +echo " 1️⃣2️⃣ AppCleaner 사용법:" echo " - Applications 폴더에서 AppCleaner 실행" echo " - 앱 삭제 시 관련 파일까지 자동 정리" echo " - 추천: Dock에 추가하여 사용" echo "" echo "💡 설치된 앱 목록:" echo " ✅ iTerm2 (터미널)" +echo " ✅ cmux (AI agent 멀티 터미널)" echo " ✅ VSCode + Claude 확장" echo " ✅ Claude Code CLI" echo " ✅ Codex CLI"