Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MindTrace

让电脑使用从“凭感觉”变成可回顾、可理解、可训练的数据。

MindTrace 是一款隐私优先的 macOS 菜单栏应用。它按固定频率理解当前屏幕,把画面转换为带时间点的文字记录,再用确定性统计和 AI 总结回答三个问题:我把时间花在哪里?什么时候最容易被打断?怎样用下一次行动训练更稳定的专注?

MindTrace 面向个人自我观察,不是员工监控、绩效评分或医疗诊断工具。

为什么做 MindTrace

很多人知道自己“今天很忙”,却很难说清楚:时间究竟被哪些任务占用、任务切换发生在哪里、所谓的专注是连续工作还是只是打开了同一个应用。MindTrace 把这些模糊感受变成一份可以回看、比较和复盘的个人数据,让专注训练建立在证据上,而不是意志力或自责上。

适合谁

人群 想解决的需求 MindTrace 带来的结果
开发者、设计师、写作者 想知道深度工作被什么打断 查看应用/任务切换、深度工作片段和专注节律
远程工作者、自由职业者 工作时间边界模糊,难以复盘 形成按天组织的文字时间线与每日总结
希望训练专注力的人 想减少碎片化使用,而不是只看屏幕时长 用个人基线比较稳定性变化,制定下一步行动
隐私敏感的个人用户 不想把屏幕截图长期保存或交给复杂平台 截图只在内存中处理,磁盘保存文字,敏感应用可排除
想理解数字习惯的研究/开源实践者 需要可审计、可扩展的个人数据工具 Swift Package、本地 JSON/Markdown、离线 HTML 仪表盘

核心工作流

屏幕画面(内存)
    → 多模态模型生成客观文字
    → 本地 Markdown + JSON 时间线
    → 确定性统计:时长、切换、场景、专注节律
    → 每日 AI 总结与离线仪表盘
    → 回顾昨天,调整今天的专注训练

主要能力

  • macOS 菜单栏常驻,5~300 秒可调采样间隔,支持暂停、立即采集和登录后启动。
  • 使用 OpenAI-compatible 多模态接口理解画面,不依赖 OCR;每条记录只描述画面中能够直接确认的事实。
  • 截图只在内存中编码和发送,不保存截图;日志写入按年份组织的 Markdown 和隐藏 JSON 状态文件。
  • 支持按已安装应用、Bundle ID、关键词排除;屏幕锁定、睡眠、熄屏和会话失活时自动暂停。
  • 可选开启详细日志访问保护:打开 Markdown 或每日总结文件夹前,使用 Touch ID 或 Mac 登录密码验证。
  • 每日 AI 总结使用确定性统计作为边界,关注使用时长、应用分布、任务场景、沟通记录和可执行建议。
  • 完全离线的 使用仪表盘.html:支持当天、近 7/30 天、本月和自定义日期范围。
  • 仪表盘提供专注深度节律、专注稳定性指数、真实切换负荷、应用/项目分布、深度工作片段和个人基线。
  • 所有数据都属于个人本地工作区;项目不上传日志,也不启动本地服务器。

专注力分析口径

MindTrace 不把“打开某个应用”直接等同于专注,也不对人格、能力或工作表现下结论。分析由可检查的规则组成:

  • 以最早和最晚有效记录构成当天观测边界,扣除已知睡眠、熄屏、锁屏和应用停机区间。
  • 相邻记录间隔超过 120 秒时,不虚构中间发生了什么,也不把它算作一次切换。
  • 任务场景需要连续出现或持续达到阈值才确认,避免一次模型措辞变化制造“任务切换”。
  • 5 分钟节律分为深度、稳定、混合和碎片化;深度工作要求同一场景持续至少 25 分钟。
  • 专注稳定性指数为 0~100,综合应用切换、任务切换、非碎片化时间和深度工作占比。
  • 至少积累 14 个有效日期后,才显示个人历史基线;基线用于表达相对变化,不改写当天的固定分数。

这些指标的用途是帮助个人发现模式、设计下一次实验,而不是给自己贴标签。

隐私与安全边界

  • 使用云端模型时,当前截图会发送给用户配置的服务商;请先确认该服务商的隐私政策。
  • 隐私排除在截图发送前执行;建议至少排除密码管理器、银行、支付和私人聊天应用。
  • 窗口标题只在内存中用于排除判断和辅助模型定位,不写入 Markdown 或 JSON。
  • API Key 保存在 macOS 系统钥匙串,不写入配置文件、日志、Markdown 或请求正文。
  • 详细日志访问保护限制 MindTrace 内的打开入口;Finder 或终端的直接访问仍遵循 macOS 自身的文件权限。
  • MindTrace 不保存失败截图,不提供截图重试队列。

快速开始

要求:macOS 14 或更高版本、Swift 5.10 / Apple Command Line Tools,以及一个支持图片输入的 OpenAI-compatible 接口。

git clone https://github.com/FlynnAIwang/MindTrace.git
cd MindTrace

# 运行自测
./scripts/run_tests.sh

# 构建并签名本地应用
./scripts/build_app.sh

# 可选:复制到 /Applications
./scripts/install_app.sh
open /Applications/MindTrace.app

首次启动后:

  1. 在“运行”中授予屏幕录制权限。
  2. 在“模型”中填写接口地址、模型名称和 API Key。
  3. 点击“用当前画面测试模型”,确认返回客观、具体的文字描述。
  4. 在“存储与隐私”中选择 Markdown 知识库目录、配置排除应用。
  5. 如需保护日志,开启“查看详细日志前需要 Touch ID 或 Mac 密码”。
  6. 在“每日总结”中确认执行时间和提示词,回到“运行”开始记录。

默认接口地址:

https://api.openai.com/v1/chat/completions

数据结构

选择的知识库目录会生成:

知识库/
├── 2026/
│   └── 2026-08-20.md
├── 每日AI总结/
│   └── 2026/2026-08-20.md
├── 使用仪表盘.html
└── .mindtrace/
    ├── 2026-08-20.json
    ├── screen-state/
    ├── summary-jobs/
    └── dashboard-cache/
        └── bundle.json

Markdown 是给人阅读的时间线;.mindtrace 中的 JSON 用于可靠重建 Markdown 和仪表盘,仍然只包含文字和统计,不包含图片、base64、窗口标题或 API Key。

开发与测试

项目是一个不依赖完整 Xcode 工程的 Swift Package:

swift build -c debug
./scripts/run_tests.sh
./scripts/build_app.sh

自测覆盖模型 JSON 解析、真实 image_url 请求结构、Key 隔离、逐截图记录、旧数据迁移、睡眠唤醒恢复、隐私排除、确定性统计、每日总结、离线仪表盘和敏感字段排除。

如需针对自己的历史数据运行仪表盘回归,可显式设置数据目录;默认不会读取任何本机真实日志:

MINDTRACE_REAL_DATA_ROOT="/path/to/your/MindTrace" \
  MINDTRACE_WRITE_REAL_DASHBOARD=1 \
  ./scripts/run_tests.sh

贡献方向

欢迎围绕以下方向提交 Issue 或 Pull Request:

  • 更精确的个人专注实验与可解释指标
  • 更多本地模型、远程模型和模型路由适配
  • 更细致的隐私排除与本地加密存储
  • 无障碍、国际化和更多离线数据导出格式
  • 不依赖云端服务的本地分析能力

请不要提交真实屏幕截图、真实日志、API Key、聊天原文或包含个人身份信息的测试数据。

许可证

本项目基于 MIT License 开源。

产品思路参考了 DayflowOpenRecallActivityWatch;本项目代码独立实现。

About

隐私优先的 macOS 个人电脑使用洞察工具:将屏幕活动转为本地文字时间线,分析专注节律、任务切换和深度工作,帮助持续训练专注力。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages