ScreenMind
AI屏幕记忆助手,捕捉分析屏幕内容并支持对话检索
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI屏幕记忆助手,捕捉分析屏幕内容并支持对话检索
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景: 三个月前的某天下午,你在调试一段特别棘手的代码,参考了 Stack Overflow 的某个回答——但你只记得思路,完全想不起那个页面叫什么、存在哪个标签页里。ScreenMind 就是来解决这个问题的:它把你的屏幕活动变成一本可搜索的数字日记,让 AI 帮你记住那些你早就忘掉的页面。
现代知识工作者的日常充满了碎片信息:浏览器里同时开着十几个标签页,IDE 和终端来回切换,文档和表格并列排布,微信和飞书的消息不断弹出。这些信息在屏幕上存在过,却从未真正进入你的记忆体系。
传统的屏幕录制工具只会机械地存下视频,查找时必须逐帧回放,根本不现实。macOS 的"回忆"功能和 Windows 的"时间线"虽然提供了截图索引,但完全依赖时间戳,无法语义理解——你想搜"那个讲缓存策略的博客",它们无能为力。
ScreenMind 的作者 Ayush Shekhar 敏锐地捕捉到了这个需求空白,决心做一个真正理解屏幕内容的 AI 记忆系统,而且必须跑在本地,不把任何截图上传云端。
ScreenMind 的技术架构设计非常精妙,采用了四层模型协作流水线,每层各司其职:
第一层:感知哈希去重(pHash)
Capture Worker 每 5 秒对全屏截图一次,然后用感知哈希(Perceptual Hash)计算图片指纹,与历史记录比对。哈明距离小于 8 的连续帧会被判定为"同一内容"直接丢弃,避免存储无意义的重复画面。这个步骤在 CPU 上毫秒级完成,是整个系统的第一道守门员。
第二层:EasyOCR 文字提取
通过 EasyOCR 对截图进行光学字符识别,提取画面中所有可见文字——菜单栏、按钮文字、代码片段、聊天消息,一个不漏。这一步大约耗时 3–10 秒,CPU 运行,是后续 AI 理解的原材料。
第三层:Gemma 4 E2B 场景理解
这是整个系统的核心大脑。提取的文字作为上下文喂给 Google 的 Gemma 4 E2B(Embeddings + Reasoning 多模态模型),由 llama.cpp 在本地运行。Gemma 会输出结构化的 JSON:当前在用什么应用、属于哪个类别(工作/娱乐/通讯)、一段语义摘要、以及用户当前的心理状态(专注/浏览/焦虑)。这个过程在有 GPU 的机器上约 12–76 秒,无 GPU 则更长。
第四层:MiniLM 语义向量化
最后,一段总结文字被送入 MiniLM-L6-v2 生成 384 维语义向量,存入 SQLite 的 BLOB 字段。这使得用户可以用自然语言搜索——"我在看那个讲数据库优化的帖子"——系统通过向量相似度匹配找到最相关的那帧截图。
截图采集 ──▶ 异步队列 ──▶ 分析工作进程
(Capture) (max:100) ├── pHash去重
├── EasyOCR
├── Gemma 4
└── MiniLM向量
│
音频采集 ───────────────────────────┘
(Audio Worker) │
▼
┌────────────────────────┐
│ SQLite + FTS5 索引 │
└──────────┬─────────────┘
│
┌──────────────┼──────────────┐
▼ ▼ ▼
FastAPI Web MCP Server Agent 调度器
(:7777) (stdio) (定时任务)
系统后端基于 FastAPI,在 localhost:7777 提供完整的 RESTful 接口。值得注意的是,它的 Web 前端是一个纯 Vanilla JS SPA——没有 React、Vue 或 Angular,打包后直接 serve,在一众现代 Web 应用中显得格外轻量。
ScreenMind 的野心远不止"记录屏幕"这么简单,它实际上构建了一整套个人 AI 工作记忆系统:
| 功能模块 | 说明 |
|---|---|
| 时间线视图 | 按时序浏览每帧截图,可缩放日期范围 |
| 语义搜索 | 用自然语言搜索历史画面,而非依赖时间或标签 |
| AI 对话 | 对历史屏幕内容提问,像和一个了解你工作的 AI 助手对话 |
| 代理(Agents) | 可编程的任务流,例如每日工作摘要、代码变更日志、会议行动项提取 |
| 会议转录 | 通过 sounddevice 录制会议音频,自动转写并关联屏幕活动 |
| MCP Server | 支持 Claude Desktop、Cursor、VS Code 直接查询你的屏幕历史 |
| Obsidian/Notion 同步 | 可将分析结果推送至主流笔记工具 |
| 加密存储 | 截图和音频可选 AES 加密,保护隐私 |
ScreenMind 通过 pip 安装:
pip install screenmind
screenmind --setup
核心依赖(必装): Python ≥ 3.10、FastAPI、mss、Pillow、SQLite。
AI 依赖(可选): Gemma 4 模型通过 screenmind --setup-llama 下载(约 8–12 GB),首次运行时会提示安装 PyTorch(约 2.5 GB)。没有 GPU 的用户可以改用 llama-server 的 CPU 模式,但分析速度会明显下降。
项目没有提供 Dockerfile,所有服务运行在宿主机上。这既是优势(资源效率高、直接访问硬件)也是门槛(需要手动管理依赖和 llama-server 进程)。

ScreenMind 的隐私承诺非常明确:截图不联网,分析不依赖云 API。Gemma 4 通过 llama.cpp 本地运行,数据始终保存在 ~/.screenmind/ 目录下的 SQLite 数据库中。
但需要注意的是,配置层面仍然存在云端泄露风险:.env.example 中预留了 GOOGLE_API_KEY 接口,如果用户选择 GEMMA_MODE=api,截图就会被发送到 Google AI Studio,隐私保证随之失效。项目文档对此做了标注,但不够醒目,用户需要主动意识到这一点。
此外,加密功能(cryptography + keyring)需要额外配置才能启用,默认情况下截图以明文存储在本地磁盘。
ScreenMind 所在的赛道正在快速升温。Recall 是 Microsoft Copilot+ PC 的核心宣传功能(虽然因隐私问题引发争议),Rewind.ai 在 macOS 上做的是类似的事但完全依赖云端,OpenGlass 则是开源社区的 DIY 方案。
ScreenMind 的差异化在于:开源 + 本地 + 可扩展。MIT 许可证意味着任何人都可以审计代码、自行部署,甚至将 MCP 接口接入自己的 AI 工作流。架构文档中提到的 Agent Scheduler 允许用户用 Markdown 定义任务流,这是一个很有潜力的扩展方向。
| 问题 | 说明 |
|---|---|
| 无 Docker 支持 | 必须本机安装,跨平台部署门槛高 |
| 无 GPU 时速度慢 | Gemma 4 纯 CPU 分析耗时 12–76 秒,高频使用会感到延迟 |
| 存储随时间膨胀 | 截图 + 向量持续累积,数据库体积管理暂无自动清理机制 |
| MCP 配置复杂 | 需要手动编辑 Claude Desktop 等客户端配置文件,对普通用户不够友好 |
| 移动端缺失 | 仅有桌面端,移动办公场景无法覆盖 |

ScreenMind 是一个技术密度极高的个人 AI 工具,它用"截屏 + 本地 AI + 向量检索"的组合,解决了知识工作者"屏幕信息看过就忘"的真实痛点。四层模型协作的架构设计清晰合理,MCP 集成和 Agent 调度器展现了扩展野心。
对于愿意折腾本机环境的开发者和技术爱好者,ScreenMind 提供了真正开源 + 真正本地的屏幕记忆体验。随着 Gemma 4 模型体积进一步缩小和本地推理效率的提升,这套方案的未来潜力值得关注。