피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Go 기반 PTY 래퍼를 통한 다중 AI CLI 통합 제어 대시보드 구현
I built a local web dashboard to run Claude Code and Codex CLI in parallel
AI 요약
Context
Claude Code 및 Codex CLI와 같은 다중 AI 에이전트 사용 시 터미널 탭 전환에 따른 컨텍스트 스위칭 비용 발생. 특히 각 세션의 승인 대기 상태를 개별적으로 확인해야 하는 운영 효율성 저하 문제 직면.
Technical Solution
- PTY(Pseudo-Terminal) 래핑을 통한 CLI 입출력 가로채기 및 브라우저 미러링 구조 설계
- xterm.js와 WebSocket을 활용한 실시간 터미널 렌더링 및 저지연 데이터 전송 구현
- 터미널 버퍼 내 특정 Prompt 패턴 스캐닝을 통한 승인 요청 자동 감지 및 UI 액션 바 트리거 로직 적용
- go:embed를 사용해 정적 UI 리소스를 단일 Go 바이너리에 내장하여 배포 복잡성 제거
- creack/pty 및 ConPTY 라이브러리 채택을 통한 Unix 및 Windows OS 간 PTY 처리 일관성 확보
- 127.0.0.1 바인딩 및 URL 랜덤 토큰 검증을 통한 로컬 전용 보안 모델 적용
실천 포인트
1. CLI 도구의 GUI 래퍼 설계 시 PTY 라이브러리를 통해 표준 입출력을 추상화했는지 확인
2. 실시간 스트리밍 데이터 처리를 위해 WebSocket과 xterm.js 조합의 적합성 검토
3. 배포 단순화를 위해 프론트엔드 정적 파일을 백엔드 바이너리에 임베딩하는 전략 고려
4. 로컬 툴의 보안을 위해 Loopback 인터페이스 제한 및 세션 토큰 기반 인증 적용