Skip to content

세션 모니터링

Copilot Island의 핵심 기능은 GitHub Copilot CLI 세션의 실시간 모니터링입니다.

세션 감지 방법

Copilot Island는 macOS FSEvents를 사용하여 ~/.copilot/session-state/를 감시합니다. 이는 Xcode와 Spotlight가 사용하는 것과 동일한 저지연 파일 시스템 알림 API입니다. Copilot CLI가 새 세션 디렉터리를 생성하면 Copilot Island는 밀리초 내에 감지합니다.

~/.copilot/session-state/
└── {UUID}/                    ← 새 디렉터리가 감지를 트리거
    ├── workspace.yaml         ← 세션 메타데이터
    └── events.jsonl           ← 이벤트 스트림(실시간으로 추가됨)

훅, 플러그인, CLI 수정이 전혀 필요 없습니다.

세션 카드

각 세션은 노치 패널에 카드로 표시되며 다음 정보를 확인할 수 있습니다:

필드설명
🟢 상태 점녹색 = 활성, 회색 = 종료
프로젝트 경로workspace.yamlcwd
Git 브랜치현재 브랜치(Git 저장소 내인 경우)
세션 요약Copilot CLI가 자동 생성한 요약
경과 시간세션 시작 이후 경과된 시간

이벤트 스트림

각 세션 내에서 Copilot Island는 events.jsonl을 테일하며 다음 이벤트 유형을 처리합니다:

이벤트 유형의미
session.start새 Copilot CLI 세션이 시작됨
user.messageCopilot에 메시지를 전송함
assistant.turn_startCopilot이 생각/응답을 시작함
assistant.messageCopilot이 응답을 생성함
tool.execution_startCopilot이 도구를 실행하려고 함
tool.execution_complete도구가 완료됨(성공 또는 오류)
assistant.turn_endCopilot이 응답 턴을 완료함
abort사용자가 세션을 중단함
session.shutdownCopilot CLI 프로세스가 종료됨

다중 세션

Copilot Island는 모든 동시 세션을 추적합니다. 여러 터미널 창에서 copilot을 실행 중인 경우 각 세션이 별도의 카드로 표시됩니다. 세션은 가장 최근에 활성화된 순으로 정렬됩니다.

세션 유지

종료된 세션은 현재 앱 실행 중에는 계속 표시됩니다. 앱을 가볍게 유지하고 개인 정보를 보호하기 위해 앱 재시작 후에는 세션이 유지되지 않습니다.

개인 정보 보호

Copilot Island는 Mac에서 로컬로 세션 데이터를 읽습니다. 업로드하거나 공유하는 것은 없습니다. GitHub Models API 채팅 기능만이 네트워크 기능이며 완전히 옵트인입니다.

Apache 2.0 라이선스로 배포됩니다.