mirror of
https://github.com/nad4-su/setup_mac.git
synced 2026-08-12 23:13:24 +09:00
Add cmux and refresh AI clients
This commit is contained in:
@@ -10,11 +10,12 @@ Mac 개발 환경을 자동으로 설정하는 스크립트입니다.
|
|||||||
- Homebrew
|
- Homebrew
|
||||||
- Node.js
|
- Node.js
|
||||||
- iTerm2
|
- iTerm2
|
||||||
|
- **cmux** + CLI 링크
|
||||||
- Oh My Zsh (agnoster 멀티라인 테마)
|
- Oh My Zsh (agnoster 멀티라인 테마)
|
||||||
- zsh-syntax-highlighting / zsh-autosuggestions
|
- zsh-syntax-highlighting / zsh-autosuggestions
|
||||||
- **VSCode** + Claude 확장
|
- **VSCode** + Claude 확장
|
||||||
- **Claude Code CLI**
|
- **Claude Code CLI** (설치/업데이트)
|
||||||
- **Codex CLI**
|
- **Codex CLI** (설치/업데이트)
|
||||||
- **VSCode OpenAI 확장**
|
- **VSCode OpenAI 확장**
|
||||||
- Cursor (에디터)
|
- Cursor (에디터)
|
||||||
- **Codex shared workspace bootstrap**
|
- **Codex shared workspace bootstrap**
|
||||||
@@ -93,16 +94,21 @@ setup_mac/
|
|||||||
- **플러그인**: syntax-highlighting, autosuggestions
|
- **플러그인**: syntax-highlighting, autosuggestions
|
||||||
|
|
||||||
### Claude Code
|
### Claude Code
|
||||||
- **CLI**: `npm install -g @anthropic-ai/claude-code` 로 자동 설치
|
- **CLI**: `npm install -g @anthropic-ai/claude-code` 로 자동 설치/업데이트
|
||||||
- **VSCode 확장**: `code --install-extension` 으로 자동 설치
|
- **VSCode 확장**: `code --install-extension` 으로 자동 설치
|
||||||
- 최초 실행 시 Anthropic API 키 설정 필요
|
- 최초 실행 시 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 공유 환경
|
### Codex 공유 환경
|
||||||
- `https://github.com/nad4-su/codex` 를 `~/workspace/codex` 로 자동 clone
|
- `https://github.com/nad4-su/codex` 를 `~/workspace/codex` 로 자동 clone
|
||||||
- `bootstrap-codex.sh` 자동 실행
|
- `bootstrap-codex.sh` 자동 실행
|
||||||
- `~/workspace/AGENTS.md` 등 공통 링크 자동 구성
|
- `~/workspace/AGENTS.md` 등 공통 링크 자동 구성
|
||||||
- `harness-diagnostics`, `gstack` 등 Codex skill 자동 bootstrap
|
- `harness-diagnostics`, `gstack` 등 Codex skill 자동 bootstrap
|
||||||
- `@openai/codex` CLI 자동 설치
|
- `@openai/codex` CLI 자동 설치/업데이트
|
||||||
- VSCode OpenAI 확장 자동 설치
|
- VSCode OpenAI 확장 자동 설치
|
||||||
|
|
||||||
## OpenAI 공식 기준 반영
|
## OpenAI 공식 기준 반영
|
||||||
@@ -200,6 +206,11 @@ git push
|
|||||||
- [ ] `test -f ~/.codex/config.toml`
|
- [ ] `test -f ~/.codex/config.toml`
|
||||||
- [ ] VSCode Extensions에서 `OpenAI / ChatGPT` 확장 확인
|
- [ ] VSCode Extensions에서 `OpenAI / ChatGPT` 확장 확인
|
||||||
|
|
||||||
|
### cmux 확인
|
||||||
|
- [ ] `open -a cmux` → cmux 앱 실행 확인
|
||||||
|
- [ ] `cmux` → 외부 터미널에서 CLI 실행 확인
|
||||||
|
- [ ] `ls -l /opt/homebrew/bin/cmux` 또는 `ls -l /usr/local/bin/cmux`
|
||||||
|
|
||||||
## 🛠️ 문제 해결
|
## 🛠️ 문제 해결
|
||||||
|
|
||||||
### iTerm2 프로파일이 적용되지 않는 경우
|
### iTerm2 프로파일이 적용되지 않는 경우
|
||||||
@@ -256,6 +267,22 @@ npm install -g @openai/codex
|
|||||||
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 확장이 설치되지 않는 경우
|
### VSCode Claude 확장이 설치되지 않는 경우
|
||||||
```bash
|
```bash
|
||||||
# code 명령 설치 (VSCode 실행 후)
|
# code 명령 설치 (VSCode 실행 후)
|
||||||
@@ -301,6 +328,7 @@ git pull
|
|||||||
|
|
||||||
- [Homebrew](https://brew.sh/)
|
- [Homebrew](https://brew.sh/)
|
||||||
- [iTerm2](https://iterm2.com/)
|
- [iTerm2](https://iterm2.com/)
|
||||||
|
- [cmux](https://cmux.com/docs/getting-started)
|
||||||
- [Oh My Zsh](https://ohmyz.sh/)
|
- [Oh My Zsh](https://ohmyz.sh/)
|
||||||
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code)
|
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code)
|
||||||
- [Codex Shared Repo](https://github.com/nad4-su/codex)
|
- [Codex Shared Repo](https://github.com/nad4-su/codex)
|
||||||
|
|||||||
+69
-19
@@ -3,7 +3,7 @@
|
|||||||
# =============================================================================
|
# =============================================================================
|
||||||
# Mac 초기 개발 환경 설정 스크립트
|
# Mac 초기 개발 환경 설정 스크립트
|
||||||
# 작성자: NAD4
|
# 작성자: NAD4
|
||||||
# 설명: Homebrew, iTerm2, Oh My Zsh, Claude Code, Codex, VSCode, 필수 앱 자동 설치 및 설정
|
# 설명: Homebrew, iTerm2, cmux, Oh My Zsh, Claude Code, Codex, VSCode, 필수 앱 자동 설치 및 설정
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
set -e # 에러 발생 시 스크립트 중단
|
set -e # 에러 발생 시 스크립트 중단
|
||||||
@@ -46,6 +46,19 @@ brew update
|
|||||||
|
|
||||||
echo ""
|
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 설치
|
# 2. iTerm2 설치
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
@@ -137,6 +150,7 @@ APPS=(
|
|||||||
"stats"
|
"stats"
|
||||||
"rectangle"
|
"rectangle"
|
||||||
"appcleaner"
|
"appcleaner"
|
||||||
|
"cmux"
|
||||||
)
|
)
|
||||||
|
|
||||||
for app in "${APPS[@]}"; do
|
for app in "${APPS[@]}"; do
|
||||||
@@ -150,10 +164,35 @@ done
|
|||||||
|
|
||||||
echo ""
|
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
|
# Node.js
|
||||||
if brew list node &> /dev/null; then
|
if brew list node &> /dev/null; then
|
||||||
@@ -163,21 +202,27 @@ else
|
|||||||
echo "✅ Node.js 설치 완료"
|
echo "✅ Node.js 설치 완료"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Claude Code CLI
|
install_or_update_npm_cli() {
|
||||||
if command -v claude &> /dev/null; then
|
local package_name="$1"
|
||||||
echo "✅ Claude Code CLI 이미 설치됨"
|
local command_name="$2"
|
||||||
else
|
local display_name="$3"
|
||||||
npm install -g @anthropic-ai/claude-code || { echo "⚠️ Claude Code CLI 설치 실패. Node.js 설치를 확인해주세요."; }
|
|
||||||
echo "✅ Claude Code CLI 설치 완료"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Codex CLI
|
if command -v "$command_name" &> /dev/null; then
|
||||||
if command -v codex &> /dev/null; then
|
echo "🔄 $display_name 업데이트 확인 중..."
|
||||||
echo "✅ Codex CLI 이미 설치됨"
|
else
|
||||||
else
|
echo "📦 $display_name 설치 중..."
|
||||||
npm install -g @openai/codex || { echo "⚠️ Codex CLI 설치 실패. Node.js 설치를 확인해주세요."; }
|
fi
|
||||||
echo "✅ Codex CLI 설치 완료"
|
|
||||||
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 ""
|
echo ""
|
||||||
|
|
||||||
@@ -584,18 +629,23 @@ echo " ls ~/.codex/skills | grep harness-diagnostics"
|
|||||||
echo " ls ~/.codex/skills | grep gstack-review"
|
echo " ls ~/.codex/skills | grep gstack-review"
|
||||||
echo " ※ 필요 시: bash ~/workspace/codex/scripts/update-vendor.sh"
|
echo " ※ 필요 시: bash ~/workspace/codex/scripts/update-vendor.sh"
|
||||||
echo ""
|
echo ""
|
||||||
echo " 🔟 VSCode 확장 확인:"
|
echo " 🔟 cmux 확인:"
|
||||||
|
echo " cmux # → cmux CLI 실행 확인"
|
||||||
|
echo " open -a cmux # → cmux 앱 실행"
|
||||||
|
echo ""
|
||||||
|
echo " 1️⃣1️⃣ VSCode 확장 확인:"
|
||||||
echo " VSCode 실행 → Extensions (⌘⇧X)"
|
echo " VSCode 실행 → Extensions (⌘⇧X)"
|
||||||
echo " → 'Claude' 설치 확인"
|
echo " → 'Claude' 설치 확인"
|
||||||
echo " → 'OpenAI / ChatGPT' 설치 확인"
|
echo " → 'OpenAI / ChatGPT' 설치 확인"
|
||||||
echo ""
|
echo ""
|
||||||
echo " 1️⃣1️⃣ AppCleaner 사용법:"
|
echo " 1️⃣2️⃣ AppCleaner 사용법:"
|
||||||
echo " - Applications 폴더에서 AppCleaner 실행"
|
echo " - Applications 폴더에서 AppCleaner 실행"
|
||||||
echo " - 앱 삭제 시 관련 파일까지 자동 정리"
|
echo " - 앱 삭제 시 관련 파일까지 자동 정리"
|
||||||
echo " - 추천: Dock에 추가하여 사용"
|
echo " - 추천: Dock에 추가하여 사용"
|
||||||
echo ""
|
echo ""
|
||||||
echo "💡 설치된 앱 목록:"
|
echo "💡 설치된 앱 목록:"
|
||||||
echo " ✅ iTerm2 (터미널)"
|
echo " ✅ iTerm2 (터미널)"
|
||||||
|
echo " ✅ cmux (AI agent 멀티 터미널)"
|
||||||
echo " ✅ VSCode + Claude 확장"
|
echo " ✅ VSCode + Claude 확장"
|
||||||
echo " ✅ Claude Code CLI"
|
echo " ✅ Claude Code CLI"
|
||||||
echo " ✅ Codex CLI"
|
echo " ✅ Codex CLI"
|
||||||
|
|||||||
Reference in New Issue
Block a user