Communitygithub.com

计算机使用情况摘要

隐私优先的跨平台 ActivityWatch 摘要工具,专为 Codex 设计。

计算机使用情况摘要 是什么?

这是一个隐私优先的跨平台技能,用于从本地 ActivityWatch 服务生成计算机使用情况摘要。它支持 macOS、Windows 和 Linux(需本地 ActivityWatch API 和 Python 3.9+),仅记录前台应用、净化后的窗口标题和 AFK(离开键盘)状态,避免安装浏览器扩展、启用云同步或暴露 API。该技能提供精确的历史应用时长和 AFK 时间,并在 ActivityWatch 不可用时优雅地返回结构化错误信息而非臆测数据。通过命令行脚本 `scripts/activitywatch_summary.py`,用户可按日、周、月或自定义日期范围生成 Markdown、TSV 或 CSV 格式的报告,支持应用、时间线、项目/客户计费等视图。严格的隐私规则确保窗口标题被净化、不包含完整 URL,且报告仅限当前对话使用,不会自动上传或分享。

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

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

计算机使用情况摘要 是做什么的?

概述

优先使用本地 ActivityWatch 数据。该技能支持本地 ActivityWatch API 和 Python 3.9+ 可用的 macOS、Windows 和 Linux。隐私平衡的推荐设置仅记录前台应用、净化后的窗口标题和 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 桶(bucket)及其包含的事件。默认 AFK 阈值为 180 秒。

无 ActivityWatch 时的备用方案

当应用、本地 API、桶或请求时间段内的事件不可用时:

  • 将活跃时间、AFK 时间、会话数和启动次数标记为 unavailable,而非零。
  • 当前最前台应用或正在运行的应用快照仅能证明当前状态,而非请求的时间段。
  • 仅当用户提供可见的总计时才使用“屏幕使用时间”(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. 仅当 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。
  • 使用最少量且有助益的标题上下文;应用和汇总表格不需要标题。
  • 对可能被解释为公式的电子表格单元格进行转义。
  • 将报告保留在当前对话中。未经用户明确批准,不得导出、上传或共享活动数据。

相关技能