--- date: 2025-09-29 author: happybell80 tags: [ai, cli, integration, automation, wsl, tmux, broadcast] status: completed --- # Multi-AI CLI 통합 시스템 (WSL/tmux 완성) ## 개요 - WSL tmux 기반 6개 AI 동시 브로드캐스트 시스템 - Windows pywinauto 방식 포기, WSL tmux로 전환 - 2025-09-29 구현 완료 ## 최종 구조 ``` /home/happybell/projects/ivada/multi-ai-cli-wsl/ ├── run.py # 메인 진입점 ├── src/ │ └── controller.py # SimpleController 클래스 ├── bin/ │ ├── tmux_setup.sh # tmux 세션 생성 (2×3 그리드) │ └── restart_tmux.sh # 세션 재시작 ├── config/ │ └── config.yaml # AI 설정 └── logs/ # pipe-pane 로그 저장 ``` ## 구현 내용 ### tmux 세션 (bin/tmux_setup.sh) - 2×3 그리드 6개 pane 생성 - 마우스 지원 활성화 (mouse on) - 스크롤백 10000줄 - pane 경계선 강조 (colour51 for active) - pipe-pane으로 각 pane 로그 자동 저장 ### 컨트롤러 (src/controller.py) - tmux send-keys로 브로드캐스트 - 메시지와 'C-m' 분리 전송 (Enter 키 이슈 해결) - 6개 AI 기본 활성화 - 직접 입력 질문, /명령어 구분 ### 설정 (config/config.yaml) ```yaml session: ai-panel panes: claude_51123: "ai-panel:0.0" gemini_local: "ai-panel:0.1" claude_51124: "ai-panel:0.2" codex_local: "ai-panel:0.3" claude_local: "ai-panel:0.4" openai_local: "ai-panel:0.5" commands: # 모두 비움 (대화형 모드) claude_51123: "" gemini_local: "" ``` ## 실행 방법 ```bash # tmux 세션 시작 restart_tmux.sh # 각 pane에서 AI 수동 실행 # Pane 0: ssh -p 51123 admin@ro-being.com → claude # Pane 1: gemini # Pane 2: ssh -p 51124 admin@ro-being.com → claude # Pane 3: codex # Pane 4: claude # Pane 5: 예비 # 별도 터미널에서 컨트롤러 cd ~/projects/ivada/multi-ai-cli-wsl uv run python run.py ``` ## 해결한 이슈 1. tmux send-keys 'Enter' 안됨 → 'C-m' 분리 전송 2. 창 분할 오류 → tiled 레이아웃 사용 3. Windows line ending → sed 제거 4. 명령 템플릿 오류 → 비움 (raw text) 5. 스크롤/복사 충돌 → Shift+드래그 ## 제한사항 - AI 로그인은 수동 - 응답 파싱/비교 미구현 - Gemini C-u 처리 미구현