Communitygithub.com

컴퓨터 사용 요약 스킬

개인정보 보호를 우선시하는 크로스 플랫폼 ActivityWatch 요약을 Codex에 제공합니다.

컴퓨터 사용 요약 스킬란 무엇인가요?

이 스킬은 로컬 ActivityWatch API를 활용하여 컴퓨터 사용 시간을 요약합니다. macOS, Windows, Linux에서 Python 3.9+와 함께 사용할 수 있으며, 포그라운드 앱, 익명화된 창 제목, AFK 상태만 기록하여 개인정보를 보호합니다. 브라우저 확장 프로그램, 클라우드 동기화, API 노출 없이도 작동합니다. ActivityWatch가 설치되지 않은 경우에는 대체 동작을 통해 활성/비활성 시간을 '사용 불가'로 표시하고 사용자에게 명시적인 출처 정보를 제공합니다. 스크립트 기반의 다양한 보고서(앱별 시간, 타임라인, 주간 리뷰 등)를 Markdown, TSV, CSV 형식으로 출력할 수 있어 개발자와 파워 유저에게 유용합니다.

지원 대상~Claude Code✓Codex CLI~Cursor
npx skills add liuyewang/computer-usage-summary-skill

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

컴퓨터 사용 요약

개요

로컬 ActivityWatch 데이터를 우선 사용합니다. 이 스킬은 macOS, Windows, Linux에서 로컬 ActivityWatch API와 Python 3.9+를 사용할 수 있는 모든 환경을 지원합니다. 의도된 개인정보 보호 중심 설정은 포그라운드 앱, 익명화된 창 제목, AFK 상태만 기록합니다. 브라우저 확장 프로그램을 설치하거나 aw-sync를 활성화하거나, 클라우드 스토리지를 구성하거나, 로컬 API를 노출하지 마십시오.

정확한 과거 앱 사용 시간과 AFK 시간은 ActivityWatch가 기록을 시작한 시점부터만 존재합니다. 프로세스 가동 시간, macOS 시스템 로그, 브라우저 기록, 문서화되지 않은 데이터베이스에서 이를 유추하지 마십시오.

설치 및 확인

이 섹션은 ActivityWatch가 없거나, 중지되었거나, 복구가 필요한 경우에만 사용합니다.

  1. 로컬 ActivityWatch 애플리케이션, 시작 설정, 로컬 프로세스, 현재 사용자의 ActivityWatch 데이터 디렉터리를 검사합니다. 작동 중인 설치를 교체하지 마십시오.
  2. 사용자가 공식 설치 소스를 선택하도록 합니다. 실행하거나 자동 시작을 활성화하기 전에 게시자와 운영체제 보안 상태를 확인합니다. macOS에서는 codesign --verify --deep --strict 및 spctl --assess --type execute를 사용합니다. 사용자가 명시적으로 결정하지 않는 한 유효성 검사에 실패하면 중지합니다.
  3. 창 및 AFK 감시자만 활성화합니다. macOS가 일반적인 인터페이스를 통해 접근성 권한을 요청하도록 합니다. 프로그래밍 방식으로 개인정보 권한을 우회하거나 변경하지 마십시오.
  4. Windows에서는 python -m pip install tzdata를 한 번 실행하여 Python이 Asia/Singapore와 같은 IANA 시간대를 일관되게 확인할 수 있도록 합니다.
  5. 로컬 http://127.0.0.1:5600 서버에 currentwindow 및 afkstatus 버킷이 있고 이벤트가 포함되어 있는지 확인합니다. 기본 AFK 임계값은 180초입니다.

ActivityWatch 없을 때의 대체 동작

앱, 로컬 API, 버킷 또는 요청된 범위의 이벤트를 사용할 수 없는 경우:

  • 활성 시간, AFK 시간, 세션, 실행 횟수를 0이 아닌 사용 불가로 표시합니다.
  • 현재 최전방 앱 또는 실행 중인 앱 스냅샷은 요청된 범위가 아닌 현재만 증명합니다.
  • 사용자가 표시 가능한 총계를 제공하는 경우에만 Screen Time을 사용합니다. Screen Time reported로 레이블을 지정하고 개인 데이터베이스를 읽지 마십시오.
  • 명시적인 웹사이트 수준 요청이 있는 경우에만 브라우저 기록을 검사합니다. 명시적이고 출처별 권한이 있는 경우에만 최근 문서 또는 터미널 기록을 검사합니다. 이러한 모든 결과를 지속 시간이 아닌 메타데이터 단서로 취급합니다.

워크플로

  1. 로컬 날짜 범위와 시간대를 설정합니다.
  2. scripts/activitywatch_summary.py --date today를 실행하거나, 기준 날짜를 기준으로 --period week 또는 --period month를 사용하거나, 포함 --start YYYY-MM-DD --end YYYY-MM-DD 날짜를 사용합니다. 재현 가능한 로컬 타임스탬프를 위해 --timezone Area/City를 추가합니다. --api-url은 루프백 인터페이스로 유지합니다.
  3. active_seconds 및 afk_seconds는 ActivityWatch에서 확인한 경우에만 사용합니다. foreground_sessions는 프로세스 실행이 아닌 관찰된 포그라운드 간격으로 설명합니다.
  4. 익명화된 앱 이름과 창 제목을 사용하여 타임라인을 재구성합니다. 제목은 설명된 활동을 직접 지원하는 경우에만 확인됨으로 표시합니다.
  5. 사용자에게 프로젝트/클라이언트 또는 청구 가능 보고가 필요한 경우, 선택적 로컬 JSON --rules 파일을 제공합니다. 익명화된 제목만 일치시킵니다. 첫 번째 일치 규칙이 우선 적용되며 동의 없이 규칙을 생성하거나 업로드하지 않음을 설명합니다.
  6. 스프레드시트 출력의 경우 명령당 하나의 테이블을 실행합니다.
    • --format markdown --table apps: 채팅용.
    • --format tsv --table apps: 스프레드시트 소프트웨어에 직접 복사용.
    • --format tsv --table timeline: 시간순 행.
    • --format csv --table apps --csv-bom --output report.csv: Excel 호환 파일, 사용자가 저장을 요청한 경우에만.
    • --report client-timesheet: 프로젝트/클라이언트 청구 가능 행.
    • --report weekly-review: 간결한 리뷰 테이블.
    • --report app-trend: 로컬 일일 트렌드 행.
  7. ActivityWatch를 사용할 수 없는 경우 구조화된 이유를 반환합니다. Markdown, TSV 및 CSV 출력은 status, reason, source 열을 제공합니다.

개인정보 보호 규칙

  • 창 제목을 민감하게 취급합니다. URL을 제거하고, 긴 제목은 자르고, 완전한 브라우저 URL을 절대 포함하지 마십시오.
  • 유용한 타임라인을 위해 기본 익명화된 제목을 유지합니다. 사용자가 제목 없는 내보내기를 원하는 경우 --hide-titles를 사용합니다.
  • 가장 작은 유용한 양의 제목 컨텍스트를 사용합니다. 애플리케이션 및 요약 테이블에는 제목이 필요하지 않습니다.
  • 수식으로 해석될 수 있는 스프레드시트 셀을 이스케이프합니다.
  • 보고서를 현재 대화에 로컬로 유지합니다. 명시적인 사용자 승인 없이 활동 데이터를 내보내거나, 업로드하거나, 공유하지 마십시오.

관련 스킬