计算机使用情况摘要 是做什么的?
概述
优先使用本地 ActivityWatch 数据。该技能支持本地 ActivityWatch API 和 Python 3.9+ 可用的 macOS、Windows 和 Linux。隐私平衡的推荐设置仅记录前台应用、净化后的窗口标题和 AFK(离开键盘)状态。请勿安装浏览器扩展、启用 aw-sync、配置云存储或暴露本地 API。
准确的历史应用时长和 AFK 时间仅从 ActivityWatch 开始记录时起存在。请勿根据进程运行时间、macOS 系统日志、浏览器历史或未记录的数据库进行推断。
安装与验证
仅在 ActivityWatch 缺失、停止或需要修复时使用此部分。
- 检查本地 ActivityWatch 应用程序、其开机自启设置、本地进程以及当前用户的 ActivityWatch 数据目录。请勿替换正在运行的安装。
- 让用户选择官方安装源。在启动它或启用自动启动前,验证发布者和操作系统安全状态。在 macOS 上,使用
codesign --verify --deep --strict和spctl --assess --type execute。如果验证失败则停止,除非用户明确决定继续。 - 仅启用窗口和 AFK 监控器。让 macOS 通过其正常界面请求辅助功能权限;切勿以编程方式绕过或更改隐私权限。
- 在 Windows 上,运行一次
python -m pip install tzdata,以便 Python 能一致地解析 IANA 时区(如Asia/Singapore)。 - 确认本地
http://127.0.0.1:5600服务器包含currentwindow和afkstatus桶(bucket)及其包含的事件。默认 AFK 阈值为 180 秒。
无 ActivityWatch 时的备用方案
当应用、本地 API、桶或请求时间段内的事件不可用时:
- 将活跃时间、AFK 时间、会话数和启动次数标记为
unavailable,而非零。 - 当前最前台应用或正在运行的应用快照仅能证明当前状态,而非请求的时间段。
- 仅当用户提供可见的总计时才使用“屏幕使用时间”(Screen Time),并将其标注为
Screen Time reported,且不要读取私有数据库。 - 仅针对明确的网站级别请求检查浏览器历史。仅在获得明确、特定来源的权限后检查最近使用的文档或终端历史。将所有此类结果视为元数据线索,而非时长。
工作流程
- 确定本地日期范围和时区。
- 运行
scripts/activitywatch_summary.py --date today,使用--period week或--period month围绕某个锚定日期,或使用包含性日期--start YYYY-MM-DD --end YYYY-MM-DD。添加--timezone Area/City以获得可重现的本地时间戳。保持--api-url在本地回环接口上。 - 仅当 ActivityWatch 确认了
active_seconds和afk_seconds时才使用它们。将foreground_sessions描述为观察到的前台时间段,而非进程启动。 - 使用净化后的应用名称和窗口标题重建时间线。只有当标题直接支持所描述的活动时,才将其标记为
confirmed。 - 当用户需要项目/客户或计费报告时,提供可选的本地 JSON
--rules文件。仅匹配净化后的标题。说明匹配到第一条规则即生效,未经同意绝不创建或上传规则。 - 对于电子表格输出,每个命令运行一个表格:
--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用于本地每日趋势行。
- 当 ActivityWatch 不可用时,返回结构化的原因。Markdown、TSV 和 CSV 输出提供
status、reason和source列。
隐私规则
- 将窗口标题视为敏感信息。移除 URL,截断过长的标题,绝不包含完整的浏览器 URL。
- 保留默认的净化标题以构建有用的时间线;如果用户希望导出不含标题的数据,可使用
--hide-titles。 - 使用最少量且有助益的标题上下文;应用和汇总表格不需要标题。
- 对可能被解释为公式的电子表格单元格进行转义。
- 将报告保留在当前对话中。未经用户明确批准,不得导出、上传或共享活动数据。