---
date: 2025-09-29
author: happybell80
tags: [ai, cli, integration, automation]
status: idea
---

# Multi-AI CLI 통합 시스템 구상

## 현황
- **사용 중인 AI CLI**: Claude (23/24 서버), Gemini CLI, OpenAI Codex CLI (로컬)
- **인증 방식**: 브라우저 세션 기반 (API 키 없이 쿠키/토큰 사용)
- **현재 워크플로우**: 수동으로 각 CLI에 질문하고 답변 종합

## 목표
여러 AI의 의견을 동시에 얻어 더 나은 의사결정을 내리고 개발 생산성 향상

## 구현 방안 우선순위

### 1. 즉시 구현 가능 (tmux + bash)
```bash
#!/bin/bash
# multi-ai.sh
tmux new-session -d -s ai-panel
tmux split-window -h -t ai-panel
tmux split-window -v -t ai-panel
tmux send-keys -t ai-panel:0.0 "claude" Enter
tmux send-keys -t ai-panel:0.1 "gemini" Enter
tmux send-keys -t ai-panel:0.2 "openai" Enter
tmux attach -t ai-panel
```
- 장점: 구현 간단, 즉시 사용 가능
- 단점: 수동 입력 필요, 응답 통합 어려움

### 2. Python 래퍼 (1주일)
```python
# multi_ai_wrapper.py
import subprocess
import asyncio
from typing import Dict

class MultiAIManager:
    def __init__(self):
        self.processes = {
            'claude': subprocess.Popen(['claude'], ...),
            'gemini': subprocess.Popen(['gemini'], ...),
            'openai': subprocess.Popen(['openai'], ...)
        }

    async def query_all(self, prompt: str) -> Dict[str, str]:
        # 각 프로세스에 프롬프트 전송
        # 응답 수집 및 정리
        pass
```

### 3. FastAPI 웹 대시보드 (2-3주)
```python
# main.py
from fastapi import FastAPI, WebSocket
from fastapi.responses import HTMLResponse

app = FastAPI()

@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
    await websocket.accept()
    # 실시간 스트리밍 처리

@app.get("/")
async def dashboard():
    # 통합 대시보드 UI 제공
    pass
```

**주요 기능**:
- 단일 입력창으로 모든 AI에 동시 질의
- 실시간 응답 스트리밍 (3열 레이아웃)
- 대화 이력 저장/검색
- 응답 비교 및 최선 선택
- 세션 관리 (쿠키/토큰 경로 공유)

### 4. 기대 효과

#### 시나리오 1: 코드 리뷰
- **입력**: "이 함수의 문제점과 개선 방안"
- **Claude**: 버그 및 엣지케이스 분석
- **Gemini**: 성능 최적화 제안
- **OpenAI**: 리팩토링 패턴 추천
- **결과**: 다각도 검토로 코드 품질 향상

#### 시나리오 2: 장애 대응
- **입력**: "서버 응답 지연 원인 분석"
- **Claude**: 로그 패턴 분석
- **Gemini**: 시스템 리소스 진단
- **OpenAI**: 즉시 적용 가능한 해결책
- **결과**: 신속한 문제 해결

#### 시나리오 3: 아키텍처 설계
- **입력**: "마이크로서비스 분리 전략"
- **Claude**: 도메인 경계 분석
- **Gemini**: 기술 스택 제안
- **OpenAI**: 마이그레이션 로드맵
- **결과**: 균형잡힌 설계 결정

## 구현 로드맵
1. **Phase 1** (즉시): tmux 스크립트 작성 및 테스트
2. **Phase 2** (1주): Python subprocess 래퍼 개발
3. **Phase 3** (2주): FastAPI 백엔드 구축
4. **Phase 4** (3주): 웹 UI 및 실시간 통신
5. **Phase 5** (1개월): 세션 공유, 응답 분석 기능

## 기술적 고려사항
- 각 CLI의 세션 파일 경로 파악 필요
- 입출력 스트림 처리 (stdin/stdout/stderr)
- 응답 파싱 및 포맷팅 로직
- 동시성 처리 (asyncio/threading)
- 에러 핸들링 및 재연결 로직

## 리스크
- CLI 업데이트로 인한 호환성 깨짐
- 세션 만료 처리
- 각 서비스의 rate limiting
- TOS 위반 가능성 (자동화 관련)

## 실현 가능성 평가
- **전체 실현 가능성**: 80-85%
- **Phase 1** (tmux 스크립트): 100%
- **Phase 2** (Python 래퍼): 85%
- **Phase 3-4** (FastAPI+웹 UI): 80%
- **Phase 5** (세션 공유·응답 분석): 65-70%
- **전제**: 각 CLI가 stdin/stdout 제어 가능, 세션 파일 경로 확보
- **주의**: 23/24 원격 오케스트레이션 포함 시 5-10%p 하락 가능

## 반자동화 범위 정의

### 자동화 영역
- **입력 브로드캐스트**: 1회 입력 → 다중 모델·23/24 서버에 전송, 응답 수집·요약·충돌 정리
- **코드/문서 생성**: 파일별 unified diff, 커밋/PR 본문 템플릿, 체크리스트·재현 스크립트 자동 생성
- **모니터링**: 헬스체크·로그 수집은 읽기 전용으로 자동화, 실행할 서버 명령은 "미리보기"로 제시
- **세션 관리**: 쿠키 관리·만료 감지·재로그인 안내 자동, 만료 시만 수동 로그인 요구

### 승인 필요 지점
- 패치 적용
- 테스트 실행
- git push/PR 생성
- 23/24 서버 배포/롤백 트리거
- 운영 DB/컨테이너 조작 (항상 수동)