How I Manage All My Claude Code Sessions from a Single Terminal
개요
Claude Code의 여러 세션을 단일 터미널에서 효율적으로 관리하기 위해 Gatekeeper라는 TUI 데몬이 개발되었습니다.
주요 내용
* Gatekeeper의 기능: Gatekeeper는 Claude Code의 모든 도구 호출(Bash, Edit, Write, Agent)을 가로채어 통합된 승인 대시보드로 라우팅합니다.
* 대시보드 구성: 대시보드는 세 개의 창으로 구성됩니다. 왼쪽 창에는 상태 배지가 있는 활성 Claude 세션이 표시되고, 중간 창에는 대기 중인 권한 요청과 연령 타이머가 있으며, 오른쪽 창에는 전체 요청 세부 정보, 경고 및 승인 메뉴가 표시됩니다.
* 권한 승인: 사용자는 "Allow once", "Always allow", "Deny" 등의 메뉴를 통해 각 도구 호출을 승인하거나 거부할 수 있습니다. "Always allow" 옵션을 선택하면 동일한 요청에 대한 규칙이 저장되어 향후 자동으로 승인됩니다.
* 자동 승인 세션: 특정 세션을 "신뢰"로 표시하면 반복적인 도구 호출이 중단 없이 자동으로 통과됩니다. 단, 파일 삭제, 원격 액세스, 권한 상승, 파괴적인 Git 작업, 중요 인프라 변경 등은 수동 승인이 필요합니다.
* 터미널 연결: 세션을 특정 터미널 창에 연결하여 해당 창에서 Claude의 명령이 실행되도록 할 수 있습니다. 연결된 세션은 재시작 후에도 유지됩니다.
* 메시지 전송: 연결된 세션으로 메시지를 직접 입력하여 Claude에게 전달할 수 있으며, 별도의 창 전환 없이 Claude의 질문에 답변하거나 지시를 내릴 수 있습니다.
* 설정 관리: 대시보드 내에서 도구 유형, Bash 명령 분류, 사용자 지정 규칙 등 Gatekeeper의 설정을 쉽게 구성할 수 있습니다.
* 통계 및 로깅: Gatekeeper는 결정된 작업의 총계, 자동 승인된 작업 비율, 세션별/도구별 자동 승인 횟수 등 통계를 제공합니다. 모든 결정은 일별 로그 파일로 저장되어 감사에 활용할 수 있습니다.
* Gatekeeper 미실행 시 동작: Gatekeeper가 실행되지 않으면 Claude Code의 기본 Y/n 프롬프트가 30초의 자동 거부 타이머와 함께 표시됩니다.
* 설치 및 설정: install.sh 스크립트를 통해 Claude Code의 PreToolUse 훅을 등록하고 기본 설정을 변경하여 Gatekeeper가 유일한 승인 게이트 역할을 하도록 만듭니다.
* 개발 동기: 여러 Claude Code 세션을 동시에 사용할 때 발생하는 빈번한 창 전환과 컨텍스트 손실 문제를 해결하기 위해 개발되었습니다.
시사점
Gatekeeper는 Claude Code 사용자에게 여러 세션을 효율적으로 관리하고, 위험한 작업을 방지하며, 워크플로우의 생산성을 높일 수 있는 통합 솔루션을 제공합니다.
댓글
GitHub Discussions