screenpipe 如何生成可复核的顾问工时报告(activity-summary + 搜索佐证)?
【免费下载链接】screenpipeYC (S26) | Open Computer History | Record your screen continuously locally and provide context to your agents (Claude, Codex, Openclaw, Hermes, Runner...)项目地址: https://gitcode.com/GitHub_Trending/sc/screenpipe
本文解决一个具体任务:独立顾问或自由职业者需要向客户提交一份可复核的工时报告——活跃时长有权威数值、每个工作块有屏幕/音频证据、模糊时段被明确标出而不是被硬塞进某个项目。screenpipe 在本机持续记录屏幕与音频,并提供本地 API(localhost:3030):/activity-summary给出时段的活跃时间数值,/search在同一时间窗内提供项目术语、文档标题、会议等佐证内容。文档给出的定位是“defensible draft report”——一份可辩护的报告草稿,而不是未经审阅就直接发出的工时单。适用前提:screenpipe 已在本机安装并正在运行,且你只记录自己授权的设备(不要在没有授权和明确政策的情况下捕捉客户的设备或员工)。
准备:先约定报告范围与隐私设置
consultant time tracking 建议用一个最小试点开始:
| 维度 | 建议 |
|---|---|
| 人员 | 一名顾问,用自己的设备 |
| 工作 | 一个客户或项目 |
| 周期 | 一到两周 |
| 产出 | 日期、活跃分钟数、工作块、交付物、不确定时间 |
| 验收 | 顾问审阅;客户认可详细程度有用 |
在开始记录之前,先和客户约定:项目范围、工作时间、排除的应用、保留期,以及客户收到的是叙述性细节还是仅合计。然后在应用里打开Settings → Privacy,把密码管理器、个人聊天、银行、健康类应用、无关客户以及其他不需要进入报告的敏感界面加入排除。这一步决定报告里不会混入不该出现的内容,是“可复核”的基础之一。
跑一小段工作并确认采集正常
正式出报告前,先录 15–30 分钟有代表性的工作,确认 timeline 中包含预期的应用、音频只在需要时才被采集。这一步失败的话,后面所有数值都没有意义。
确认本地 API 可用(/health是唯一不需要鉴权的端点):
curl http://localhost:3030/health如果刚启动时接口返回空数据,API reference 给出的解释是采集尚未完成处理:等待 1–2 分钟后重试。
用 /activity-summary 取权威活跃时间
受保护端点需要 API 鉴权。每个 shell 获取一次本地 key:
export SCREENPIPE_API_KEY="$(npx -y screenpipe@latest auth token)"也可以在Settings → Privacy → API security里查看该 key。如果请求来自直接调用 API 的脚本,还需固定加上请求头X-Screenpipe-Client: api,用于把请求标识为外部 API 客户端(不要把 agent 名、客户名或 prompt 放进这个头)。
对目标时段请求汇总:
curl -H "Authorization: Bearer $SCREENPIPE_API_KEY" \ "http://localhost:3030/activity-summary?start_time=4h+ago&end_time=now"start_time/end_time接受4h ago、now这类相对值,也接受 ISO 8601 UTC 时间戳。文档的建议:相对范围适合首次测试;当报告必须对齐精确的日历或计费窗口时,改用 ISO 8601 UTC。按 OpenAPI 定义,返回体包含apps(每个应用的name、minutes、frame_count、first_seen、last_seen)、recent_texts、audio_summary、total_frames和time_range,体积约 200–500 tokens,适合喂给模型做归类。
使用规则只有一条但很关键:用/activity-summary的数值作为活跃时间的权威来源,让模型只对这些块按客户/项目归类,绝不从帧数、OCR 行数或搜索结果数量反推工时。如果你的脚本要对很多时段做纯工时扫描,还可以把include_key_texts、include_apps或include_windows设为false省略对应部分,降低 token 开销,默认值不变(见 changelog)。
用同一时间窗的 /search 收集佐证
拿到数值后,在完全相同的时间窗内搜索项目术语、文档标题、会议与交付物,作为每个工作块的证据:
curl -H "Authorization: Bearer $SCREENPIPE_API_KEY" \ "http://localhost:3030/search?q=project-or-client-code&content_type=all&start_time=4h+ago&end_time=now&limit=50"q里的project-or-client-code替换成你自己的项目代号或客户名。content_type=all会跨 accessibility 文本、OCR 回退文本、音频转录、输入事件、应用名、窗口标题和浏览器 URL 搜索。常用收窄参数(完整清单见 API recipes):
| 参数 | 用途 |
|---|---|
app_name | 限定某个桌面应用 |
browser_url | 对已捕获浏览器元数据做精确或归一化匹配;URL 子串搜索要用q |
speaker_name | 找某个人说了什么 |
start_time/end_time | 限定会议、工作块;相对值或 ISO 8601 UTC |
limit/offset | 分页 |
把搜索结果当作“这个块在做什么”的佐证,而不是时间来源。分不出归属的块放进 “unassigned / needs review”,不要为了报告好看而强行贴标签。
把数据整理成可复核的报告
文档提供了一份可以直接复制的报告 prompt,要求把观察到的事实与推断出的项目标签分开:
Create a draft client work report from the supplied activity summary and search results. Rules: - use activity-summary values for numeric time totals - group work into coherent blocks, not individual frames - separate observed facts from inferred project labels - put ambiguous time in "needs review" - exclude personal or unrelated-client content - list deliverables and decisions only when the source data supports them Output: 1. total active time 2. table of work blocks: time, project, activity, supporting app or document 3. deliverables and decisions 4. needs-review items报告生成后按文档的审阅步骤走:把合计与日历和已知的休息时段对照;删掉无关细节;修正项目标签;对估计值做明确标注。确认无误后,把审阅结果导出到你惯用的 timesheet 或附到发票上——“share the smallest useful report”,即只交付最小的、能站得住脚的信息量。
可选:多份报告稳定后再用 pipe 固化
当连续几份手工报告的时间合计与项目标签都正确之后,可以在Pipes → My Pipes → create your own pipe里粘贴以下描述,让 screenpipe 生成一个手动 pipe:
Create a manual pipe that writes a local client work report. use
/activity-summaryfor numeric totals, bounded/searchresults for context, put ambiguous time in needs review, and never send or invoice automatically.
生成完成后回到Pipes → My Pipes,运行一次并检查它的 Markdown 产物与执行日志;确认空数据窗口会产出显式的 no-data 报告。生成的自动化就是~/.screenpipe/pipes/下的一个pipe.md文件,可以检查和纳入版本管理。文档明确提醒不要一开始就自动化发送报告、创建发票、写入客户系统或把每个推断块同步到工时工具;日程(daily/weekly schedule)也应加在若干份报告稳定之后。
如果客户更关心产出与下一步而不是小时数,可以改用 weekly client report 的工作流(outcome、decisions、risks);参数细节和更多搜索组合继续参考 API recipes。报告的本质边界不变:它是本地数据生成的、经人工审阅的草稿,发送与否始终由你在正常渠道里决定。
【免费下载链接】screenpipeYC (S26) | Open Computer History | Record your screen continuously locally and provide context to your agents (Claude, Codex, Openclaw, Hermes, Runner...)项目地址: https://gitcode.com/GitHub_Trending/sc/screenpipe
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考