模型 / 数据集
deta/surf avatar
deta/surf

Deta Surf:把网页、PDF 和视频收进本地 AI 笔记本

Personal AI Notebooks. Organize files & webpages and generate notes from them. Open source, local & open data, open model choice (incl. local).

3,568 个 Star251 个 ForkTypeScriptApache-2.0

秒懂

它是什么?
Deta Surf 是一个开源的个人 AI 笔记本,用本地优先的方式管理文件、网页和视频,并让笔记通过可选的本地大模型生成内容。它的核心价值在于数据格式开放、模型可自选,但 Electron 外壳和本地模型配置也带来一些现实约束。
适合谁用?
Deta Surf 适合那些需要同时处理 PDF、网页和视频,并希望 AI 生成内容能引用原始来源的研究者、学生和知识工作者。如果你已经依赖 Notion 或 Obsidian 的同步生态,或者不愿自己配置模型 API 密钥,那它暂时不是你的工具。
能商用吗?
可以。Apache-2.0 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库最近一次提交在 22 天前。
用什么语言写的?
主要是 TypeScript(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

为什么需要一个跨媒体的 AI 笔记本

大多数笔记工具只处理一种内容:纯文本、网页书签或者 PDF 批注。但真正的思考往往要同时翻阅一份研究报告、一段 YouTube 讲解和一个网页,再把它们串起来。Deta Surf 的出发点就是解决这种多源拼接的麻烦。它把本地文件、网页链接和视频统一收进一个私人资料库,然后让 AI 基于这些内容生成笔记。目标用户是那些需要边研究边写作的人,而不是只需要一个待办清单的普通用户。

SFFS:本地优先的存储引擎

Surf 的整个资料库建立在一个名为 SFFS(Surf Flat File System)的本地存储引擎上。根据 README 的描述,SFFS 用开放透明的格式保存数据。这意味你的笔记、网页快照和视频索引不是锁在私有数据库里,而是以普通文件的形式躺在你的硬盘上。这种设计的直接好处是:即使 Surf 停止开发,你仍然可以用其他工具读取这些文件。但它也有代价,SFFS 不是通用的文件系统,它需要 Surf 自己来索引和管理,你不能指望用资源管理器直接浏览所有内容。

从 PDF 到 YouTube:媒体类型与笔记生成

Surf 支持的媒体类型很广,包括本地文件、网页、YouTube 视频和推文。你可以在笔记里用 @-mention 引用这些资源,然后让 AI 基于它们生成内容。举例来说,你可以打开一个 PDF 直接提问,或者看 YouTube 视频时问一个问题,AI 会结合视频内容回答。这里的关键是引用机制:AI 生成的回答会链接回原始来源,网页段落、视频时间戳或者 PDF 页码都能精确定位。这意味着你不需要在笔记和原文件之间手动跳转,但前提是 AI 模型确实理解了这些媒体的内容,而这一点对本地小模型来说是个考验。

安装与运行:从源码构建到日常使用

普通用户应该先看安装指南,而想改代码的人需要读 CONTRIBUTING.md。README 明确说 Surf 支持 macOS、Windows 和 Linux,但没有给出具体的安装命令,因为安装步骤全部放在 docs/INSTALL.md 里。仓库的 release 页面显示有 1.4.7-beta.0 这样的预发布版本,说明项目还在快速迭代中。从源码构建需要处理 Svelte、TypeScript 和 Rust 三套工具链,这对只想试用的人来说门槛偏高。如果你不想编译,最好去官方网站找现成的安装包,但文档没有详细说明下载方式。

模型选择的自由度与配置成本

Surf 的 AI 功能不绑定任何单一厂商。你可以自带 OpenAI 或 Anthropic 的 API 密钥,也可以添加其他云模型,甚至通过 Ollama 运行本地大语言模型。这种开放性在同类工具里很少见,尤其考虑到它还支持 DeepSeek、Gemma 等开源模型。但自由是有代价的:你需要自己阅读 AI_MODELS.md 来配置模型端点、密钥和参数。本地模型的运行效果取决于你的硬件,一个小参数模型可能无法准确引用 PDF 里的具体段落。如果你不想折腾这些配置,直接用托管云服务会更省心,但那又回到了数据上云的旧路。

Surflets:让 AI 生成交互式小应用

除了笔记,Surf 还能生成 Surflets,也就是 AI 编写的交互式小程序。你可以用自然语言描述一个需求,比如让 AI 做一个可视化图表来展示数据,Surf 会直接生成可运行的代码。这个功能把 AI 的用途从文本生成扩展到了代码生成,适合用来探索概念或处理数据。但要注意,Surflets 的质量直接取决于底层模型的编码能力,本地小模型生成的代码可能需要你手动调试。README 没有说明 Surflets 运行时的沙箱程度,所以如果你打算让它处理敏感数据,最好先检查它生成的代码在做什么。

开源协议与品牌使用的边界

Surf 的源代码采用 Apache-2.0 许可证,但有两个例外。它对 @ghostery/adblocker-electron 包的补丁遵循 MPL-2.0,这是为了与上游保持一致。另外,Deta 这个名称和 logo 不在 Apache 许可范围内,这意味着你不能随意用 Deta 的品牌来标识自己的修改版本。这些细节在采用时很重要,尤其是如果你想基于 Surf 做二次开发。Apache-2.0 本身允许商用和修改,但你必须保留版权声明,并注意补丁文件的 MPL-2.0 要求。具体的合规问题最好咨询法律人士,这里只是指出文档中明确提到的边界。

编辑结论

Deta Surf 适合那些需要同时处理 PDF、网页和视频,并希望 AI 生成内容能引用原始来源的研究者、学生和知识工作者。如果你已经依赖 Notion 或 Obsidian 的同步生态,或者不愿自己配置模型 API 密钥,那它暂时不是你的工具。采用前先确认三点:一是你的主力媒体类型是否在 Surf 支持的范围内,二是你能否接受 Electron 的内存占用,三是你愿意花时间在 AI_MODELS.md 里配置本地或云端模型。它的本地优先和开放格式是真实优势,但桌面端定位意味着你无法在手机上直接使用。

官方来源

  1. deta/surf on GitHub
  2. License: Apache-2.0
  3. Project website
  4. README
  5. Releases
社区笔记

社区笔记