Windows 데스크톱 · Python + PySide6 · 로컬 전용

조직의 Microsoft 365 Copilot
사용 현황을 한눈에

테넌트 관리자를 위한 Copilot 사용 현황·대화 수집 도구입니다. 관리자 PC 한 대에서 Microsoft Graph로 데이터를 수집해 내 PC 안의 로컬 데이터베이스에 저장하고, 컴플라이언스·분석 용도로 활용합니다.

최신 릴리스 v0.2.0 · MIT 라이선스 · Windows 10/11 (x64)

CopilotWatchTower 대시보드 화면
왜 필요한가요?

"우리 회사, Copilot 잘 쓰고 있나요?"

누가 얼마나 쓰는지, 어떤 앱(Teams·Word 등)에서 쓰는지, 라이선스는 낭비되고 있지 않은지 — 이런 질문에 숫자와 근거로 답하기 위한 관리 도구입니다. 별도 서버나 외부 네트워크 포트가 필요 없습니다.

⚠️
컴플라이언스 주의사항. 이 도구는 Copilot 대화 내용을 평문(원문) 그대로 읽어 옵니다. eDiscovery, 내부 감사, 규제 보관 등 법적·정책적 권한이 명확한 테넌트에서만 사용하세요. 도입 전에 개인정보 영향평가(DPIA)와 데이터 취급 정책을 반드시 검토해야 합니다.
핵심 기능

설치부터 분석까지, 한 도구에서

관리자 PC에서 바로 돌아가는 가볍고 안전한 데스크톱 앱입니다.

🪄

사전 앱 등록 불필요

첫 실행 시 마법사가 디바이스 코드 로그인으로 Entra ID 앱을 자동 등록하고, 필요한 Graph 권한 부여와 관리자 동의까지 안내합니다.

🎯

4가지 수집 범위

LICENSED(라이선스 보유자), ALL_ACTIVE(전체 활성 사용자), GROUP(특정 그룹), CUSTOM(지정 UPN) 모드를 지원합니다.

🔁

안전한 증분 수집

사용자별 워터마크, Retry-After 준수, 지수 백오프, 멱등성 업서트로 중단 후 재실행해도 데이터가 중복되지 않습니다.

🔒

로컬 전용 저장소

모든 데이터는 내 PC의 SQLite(%LOCALAPPDATA%)에 저장됩니다. 대화 본문에 대한 FTS5 전문 검색을 지원합니다.

📊

현대적인 Qt UI

대시보드(KPI + 차트), 대화 탐색, 실시간 수집 로그 모니터링, CSV/JSON/XLSX 내보내기를 제공합니다.

데이터 출처

무엇을, 어떤 기술로, 어떤 권한으로 수집하나요?

출처마다 수집 데이터·사용 기술·필요 권한·제약이 다릅니다. 앱의 데이터 수집 → 개요 화면에서도 동일한 내용을 확인할 수 있습니다.

💬

대화 수집 (API)

Microsoft Graph API로 사용자별 Copilot 대화 본문을 직접 수집합니다.

기술
Microsoft Graph(beta) · getAllEnterpriseInteractions · 앱 전용(client credentials) 토큰
수집 데이터
  • 프롬프트/응답 본문 텍스트
  • 앱 출처(BizChat, Word, Teams, Excel, PowerPoint, Outlook, Loop 등)
  • 첨부·링크·멘션 메타데이터, 원본 JSON
필요 권한
AiEnterpriseInteraction.Read.All User.Read.All Organization.Read.All
제약·범위
  • Copilot 라이선스 보유자 대상(전체/라이선스/그룹/사용자 지정 범위 선택)
  • beta 엔드포인트 · 사용자·기간 단위 페이징
  • 라이선스 없는 사용자 본문은 eDiscovery 경로로 별도 수집

앱에서 보기 · 대화 탐색(API)

🔎

대화 수집 (e-Discovery)

라이선스 없는 사용자까지 포함해 Purview eDiscovery로 Copilot 본문을 복원합니다.

기술
Purview eDiscovery(Graph) · 위임(delegated) 인증
수집 데이터
  • 라이선스 미보유 사용자를 포함한 Copilot 대화 본문
  • 케이스·검색·내보내기 산출물에서 복원한 메시지
필요 권한
eDiscovery.ReadWrite.All (위임) eDiscovery Manager 역할
제약·범위
  • 앱 전용 인증은 Premium 전용이라 위임 인증 사용
  • 케이스 생성 → 검색 → 추정 → 내보내기 → 다운로드 → 해석의 비동기 단계
  • 단계별 재개(이어받기) 지원 — 중단 후 다시 시작 가능

앱에서 보기 · 대화 탐색(e-Discovery)

🤝

대화 수집 (Teams)

Copilot Studio 커스텀 에이전트의 Teams 대화 트랜스크립트를 Dataverse에서 수집합니다.

기술
Dataverse 자동 로그인(웹 자동화) · 트랜스크립트 테이블
수집 데이터
  • Copilot Studio 커스텀 에이전트의 Teams 대화 기록(트랜스크립트)
  • 에이전트·환경별 대화 세션
필요 권한
Dataverse 시스템 관리자(환경별) PPAC 자동 로그인 계정
제약·범위
  • 환경별 접근 권한 필요 — 없는 환경은 '나를 시스템 관리자로 자동 추가' 옵션 사용
  • 브라우저 자동 로그인 기반이라 MFA·세션 정책의 영향을 받음

앱에서 보기 · 대화 탐색(Teams)

🤖

에이전트

Copilot 관리 API와 감사 로그에서 에이전트 인벤토리와 실제 사용 신호를 수집합니다.

기술
Microsoft Graph Copilot 관리 API(에이전트 등록·카탈로그) + 감사 로그
수집 데이터
  • 에이전트 인벤토리(등록 정보·카탈로그 패키지)
  • 정책 설정 신호
  • 감사 로그 기반 실제 사용 신호
필요 권한
AgentRegistration.Read.All CopilotPackages.Read.All CopilotPolicySettings.Read
제약·범위
  • 사용 신호는 감사 로그 기반 — 감사 이벤트를 먼저 수집할수록 정확
  • 관리 API 가용 범위(테넌트 구성)에 따라 일부 항목이 비어 있을 수 있음

앱에서 보기 · 에이전트

🪙

파워플랫폼 크레딧

PPAC 소비량 리포트를 내려받아 메시지·AI Builder·API 요청 사용량을 추적합니다.

기술
Power Platform 관리 센터(PPAC) 자동 로그인 · 소비량 리포트 다운로드
수집 데이터
  • Copilot Studio 메시지 소비량
  • AI Builder 크레딧 소비량
  • Power Platform 요청(API) 소비량
필요 권한
Power Platform 관리자 PPAC 자동 로그인 계정
제약·범위
  • 웹 자동화 기반 — PPAC UI/리포트 가용성에 의존
  • 리포트가 제공하는 집계 기간·단위 범위 내에서만 수집

앱에서 보기 · 파워플랫폼 크레딧

🛡️

감사 이벤트

Purview 통합 감사 로그와 Entra 감사/로그인에서 보안·접근 이벤트를 수집합니다.

기술
Graph security.auditLog.queries(비동기 Purview 통합 로그) + Entra 감사/sign-in
수집 데이터
  • 차단/거부 등 보안 이벤트
  • 민감 자료 접근 기록
  • 접근·정책 관련 감사 이벤트
필요 권한
AuditLog.Read.All AuditLogsQuery.Read.All Purview/Exchange roleManagement
제약·범위
  • Purview 감사 로그 보존 기간 내 데이터만 조회 가능
  • 통합 로그 쿼리는 비동기(제출→폴링→결과) 방식
  • auditLog 404 응답 시 Purview 경로는 자동 비활성화되고 Entra 경로만 사용

앱에서 보기 · 보안/감사

📈

공식 사용량

Microsoft 365 Copilot 공식 사용량 보고서 스냅샷을 수집합니다.

기술
Microsoft Graph Reports API(Copilot 사용량 CSV)
수집 데이터
  • M365 Copilot 공식 사용량 보고서 스냅샷
  • 기간별(D7/D30/D90/D180) 사용 집계
필요 권한
Reports.Read.All ReportSettings.ReadWrite.All
제약·범위
  • Microsoft 보고서 익명화 설정 영향 — 식별이 필요하면 ReportSettings로 비익명화
  • Microsoft가 제공하는 보고 기간 단위로만 수집

앱에서 보기 · 공식 보고서

주요 화면

실제 화면 살펴보기

대시보드, 사용 인사이트, 대화 탐색 — 세 가지 핵심 화면.

1

대시보드 — 전체 사용 현황을 한눈에

활성 사용자 수, 총 스레드·메시지·프롬프트, 의미 있는 상호작용, 라이선스 미활용 인원 등 핵심 지표(KPI)와 최근 30일 사용 추이 그래프, 상위 사용자 TOP 5를 보여 줍니다.

대시보드 화면
2

사용 인사이트 — 사용자·날짜·앱별 상세 분석

기간·사용자·앱별로 Copilot 활동을 필터링해 분석합니다. 날짜별 스레드·메시지 추이, 앱별 메시지 분포, 사용자별 요약 표를 제공합니다.

사용 인사이트 화면
3

대화 탐색 — 실제 대화 기록 열람

Graph API로 수집한 운영 대화 기록을 제목·본문으로 검색하고, 사용자·앱별로 필터링해 개별 대화의 전체 내용을 확인합니다. 관련 감사 이벤트와 함께 Markdown 등으로 내보낼 수 있습니다.

대화 탐색 화면
다운로드 & 설치

지금 바로 시작하기

Releases 페이지에서 CopilotWatchTower-x.y.z-setup.zip을 내려받아 압축을 풀고, 관리자 권한으로 설치 배치 파일을 실행하세요.

STEP 1setup.zip 다운로드 후 압축 해제
STEP 2Install-CopilotWatchTower.bat 관리자 실행 (인증서 신뢰 + 앱 설치)
STEP 3앱 실행 후 온보딩 마법사로 테넌트 연결
CopilotWatchTower.msix CopilotWatchTower.cer Install-CopilotWatchTower.bat Uninstall-CopilotWatchTower.bat INSTALL.txt

자체 서명 인증서를 사용하므로 설치 전 인증서 신뢰 등록이 필요합니다. 자세한 절차는 압축 안의 INSTALL.txt를 참고하세요.

개발자용

소스에서 직접 실행

Python 3.11+ 가상환경에서 editable 설치 후 바로 실행할 수 있습니다.

# 1. Python 3.11+ 가상환경 생성
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1

# 2. 개발 의존성 포함 editable 설치
pip install -e ".[dev]"

# 3. 실행
copilot-watchtower
커뮤니티

기능 문의 · 피드백을 남겨주세요

사용 중 궤금한 점, 새로운 기능 제안, 버그 신고는 GitHub 이슈 게시판에서 자유롭게 남겨주세요. 함께 만들어가는 도구입니다.

GitHub 이슈 게시판

질문 · 기능 제안 · 버그 신고를 남기는 공간

💬 GitHub 이슈 남기기