Communitygithub.com

liuyewang/computer-usage-summary-skill

隱私優先的跨平台 ActivityWatch 使用摘要,專為 Codex 設計。

computer-usage-summary-skill 是什麼?

此技能提供基於本地 ActivityWatch 資料的跨平台(macOS、Windows、Linux)電腦使用摘要,採用隱私優先的設計。它只記錄前景應用程式、去識別化的視窗標題以及 AFK(離開鍵盤)狀態,無需安裝瀏覽器擴充功能、雲端儲存或暴露 API。技能支援三種模式:使用 ActivityWatch 時透過 Python 腳本 `activitywatch_summary.py` 生成詳細報告(可選 Markdown、TSV、CSV 格式);當 ActivityWatch 不可用時回退至明確授權的有限來源(如螢幕使用時間、瀏覽器歷史記錄);並嚴格遵循隱私規則——視窗標題敏感、禁止匯出未經同意的資料、避免公式注入。它特別適合需要在對話環境中安全、可審計地了解工作時長、應用程式使用分佈及專案計費時間的開發者。支援 Codex 及類似終端機式 AI 助手。

相容平台~Claude Code✓Codex CLI~Cursor
npx skills add liuyewang/computer-usage-summary-skill

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

電腦使用摘要

概述

優先使用本機 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 能一致地解析 IANA 時區(例如 Asia/Singapore)。
  5. 確認本機 http://127.0.0.1:5600 伺服器具有包含事件的 currentwindow 和 afkstatus 桶。預設 AFK 閾值為 180 秒。

無 ActivityWatch 的備援方案

當應用程式、本機 API、桶或請求時間範圍內的事件不可用時:

  • 將活動時間、AFK 時間、工作階段和啟動次數標記為 unavailable,而非零。
  • 目前的前景應用程式或執行中應用程式快照僅為當前的證據,而非請求的時間範圍。
  • 僅在使用者提供其可見總計值時才使用螢幕使用時間;將其標記為 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. 僅在 ActivityWatch 確認 active_seconds 和 afk_seconds 時才使用它們。將 foreground_sessions 描述為觀察到的前景間隔,而非程序啟動。
  4. 使用去識別化的應用程式名稱和視窗標題來重建時間線。僅在標題直接支援所描述的活動時,才將之視為 confirmed。
  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。
  • 使用最少但足夠的標題上下文;應用程式和摘要表格不需要標題。
  • 對可能被解釋為公式的試算表儲存格進行跳脫處理。
  • 將報告保留在目前的對話中。未經使用者明確核准,不得匯出、上傳或分享活動資料。

相關技能