Glyph
本地优先的 AI 原生笔记应用,Markdown 存储 + 内置 SQLite 全文索引 + 多 A
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
本地优先的 AI 原生笔记应用,Markdown 存储 + 内置 SQLite 全文索引 + 多 A
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Glyph 应用 Logo
你是否有过这样的经历:在 Obsidian 里记了一年的笔记,却发现自己想找某条具体内容时,只能靠模糊的记忆在标签和文件夹之间来回翻找?或者在 Notion 里写了大量文档,但每次打开都要等云端同步,遇到网络不稳定时整个工作流就陷入瘫痪?
Glyph 正是为解决这些痛点而生的——它是一个完全离线优先的桌面笔记应用,笔记以 Markdown 文件的形式直接存储在你的磁盘上,同时内置了 SQLite 全文搜索索引,查询速度极快。更关键的是,它将 AI 能力深度融入编辑体验,不是简单地在笔记软件里塞一个 Chat 对话框,而是让 AI 成为笔记写作本身的延伸工具。
Glyph 由独立开发者 Sidhu K(Karatsidhu)开发和维护,目前在 GitHub 上拥有 155 颗星、24 个 Fork,是一款相对小众但技术深度极高的个人项目。项目的核心理念非常明确:你的数据永远属于你。它不依赖任何云服务,笔记以原始 Markdown 文件的形式存储在本地,每个笔记空间(Space)在磁盘上对应一个目录,目录内包含 .glyph/ 元数据子目录和 SQLite 索引文件。
从技术栈来看,Glyph 采用了现代化的混合架构:前端基于 React 19 + TypeScript + Vite,后端则是用 Rust 编写的 Tauri 2 应用。这不是简单的「前端 + 后端」组合,而是一种深度耦合的客户端架构——Rust 后端负责文件系统操作、AI 调用、数据库查询等核心 IO 密集型任务,前端 React 层则专注于富文本编辑体验。两者之间通过 Tauri 的 invoke() IPC 机制通信,后端的 Rust 代码以命令模式暴露接口。
图2:Glyph 主界面截图
Glyph 的技术架构可以分为三个层次来理解:
第一层:Tauri 2 + Rust 本地运行时
Glyph 使用 Tauri 2 作为桌面运行时,区别于 Electron 的 Node.js 沙箱,Tauri 直接调用系统原生 API。Rust 后端模块分工极其细致:space_fs 处理空间文件系统操作(包括符号链接、文件重命名、冲突检测);notes 模块负责笔记的 frontmatter 解析和属性管理;ai_* 系列模块(ai_rig、ai_amp、ai_pi、ai_opencode、ai_claude_code、ai_codex)则封装了不同 AI 服务的接入。这种模块化设计意味着添加新的 AI Provider 只需新增一个 ai_xxx 子模块,不影响现有代码。
第二层:React 19 前端编辑器层
前端基于 React 19,编辑器核心使用 TipTap 3(ProseMirror 的 React 封装)。TipTap 的优势在于它的扩展系统极其灵活——Glyph 充分利用了这一点,集成了代码块语法高亮(highlight.js/lowlight)、Mermaid 图表渲染、数学公式(KaTeX)、表格编辑、任务列表等十余种扩展。更值得注意的是,Glyph 还支持 Vim 键位(通过 @replit/codemirror-vim),这对习惯 Vim 的开发者来说是一个很大的加分项。
编辑器支持分屏(split editor),这对于同时查看笔记大纲和详细内容,或者对照参考笔记写作时非常有用。Mermaid 图表的实时渲染也是亮点之一——在编辑器内直接写 mermaid 代码块,立刻就能看到图表预览,这对于技术文档写作尤其便利。
第三层:SQLite 全文搜索索引
笔记以 Markdown 文件存储,但 Glyph 在 ~/Library/Application Support 目录下维护了一个 SQLite 索引数据库,使用 Rust 的 rusqlite 库构建。这个索引在应用启动时从所有笔记文件中派生而出,支持按标签、日期、关键词等多种方式查询。与 Obsidian 的本地搜索相比,Glyph 的优势在于索引是自动增量更新的(通过 notify crate 监听文件系统变化),用户几乎感知不到索引重建的过程。
Glyph 的 AI 集成方式值得重点展开。它的 AI 模块使用了 rig-core 0.24 作为统一抽象层,这是一个 Rust 生态中的 AI Agent 框架,支持多种 LLM Provider。Glyph 目前支持接入以下 AI 服务:
这些 AI 能力在 React 前端通过 AIComposer、AIPanel、AIChatThread 等组件暴露。用户可以在写作过程中唤起 AI 助手,让它帮忙续写、总结、翻译当前笔记内容,甚至基于笔记内容提问(知识库问答场景)。AI 的上下文(context)来自用户当前打开的笔记和选中的文本,这使得 AI 的回答更具针对性,而非泛泛的通用对话。
Glyph 的 aiContextEvents 和 useAiContext hook 负责管理 AI 对话的上下文生命周期——当用户切换笔记时,AI 的上下文会自动更新为当前笔记的内容。这种设计避免了「在笔记软件里开一个独立的 Chat 窗口」的割裂感,让 AI 真正成为写作流程的一部分。
Glyph 的多空间(Multi-Space)设计借鉴了 Obsidian Vault 的概念,但更进了一步。每个 Space 对应磁盘上的一个目录,可以在不同 Space 之间跳转。每个 Space 有独立的 .glyph/ 目录存储元数据(包括 SQLite 索引),Space 之间相互隔离。
Glyph 还支持外部 Markdown 导入(external-markdown 模块)——可以将已有的 Markdown 文件目录挂载为 Space,实现零成本迁移。对于从 Notion、Obsidian 等平台迁移过来的用户来说,这个功能非常实用。git_sync 模块则支持将笔记目录纳入 Git 版本控制,这意味着用户可以利用 Git 的分支、diff 等功能管理笔记的演进历史——这在技术团队协作场景下很有价值。
文件关联方面,Glyph 在 macOS 上注册了 .md、.markdown、.mdown 文件类型的关联,用户双击 Markdown 文件可以直接用 Glyph 打开编辑。
Glyph 的开发规范非常严格,体现在多个层面:
TypeScript 规范:启用 strict 模式,禁止使用 any 类型,必须用 unknown + 类型收窄代替。这在大型前端项目中能有效减少运行时错误。
Rust 规范:使用 clippy 进行 lint 检查,Rust 代码遵循约 200 行每文件的原则,超过这个阈值的文件会被要求重构为子模块。
安全实践:Rust 后端实现了严格的安全机制——路径操作通过 paths::join_under() 做安全路径拼接,防止目录遍历攻击;AI 请求通过 net.rs 做 SSRF 检查;所有文件写入操作使用 io_atomic 原子写入机制,避免数据损坏。
macOS 专有 API:Glyph 使用了 macosPrivateApi 特性,包括 window-vibrancy 实现窗口毛玻璃效果、core-text 处理字体渲染、NSPasteboard 处理剪贴板。这是典型的 macOS 原生应用做法,代价是只能在 macOS 上运行——项目文档也明确标注了这一点。
License:项目采用 AGPL-3.0 开源许可,同时官方发布包包含 7 天试用限制,通过 Gumroad 激活许可证。这意味着虽然源码开放,但如果你想要完整功能(无试用期限制),需要付费购买许可证。
Glyph 并不是银弹,有几个显著的局限性需要说明:
平台锁定:Glyph 仅支持 macOS。Windows 和 Linux 用户完全无法使用。考虑到 Tauri 2 本身是跨平台的,这个限制主要是由于代码中大量使用了 macOS 专有 API(如 core-text、毛玻璃渲染)。如果你不是 macOS 用户,这个项目可以直接跳过。
无 Web UI / 无容器化:作为一个纯桌面应用,Glyph 完全没有 Web 界面,也无法通过 Docker 部署。这意味着它无法在服务器端运行,也无法在没有图形界面的环境中使用。源码构建需要完整的 Rust + Node.js + pnpm 环境,门槛较高。
相对小众的生态:155 星在开源笔记应用赛道中属于小众项目,缺乏大型社区和丰富的插件生态。相比之下,Obsidian 拥有数千款社区插件,Logseq 也有活跃的中文社区。Glyph 目前主要靠作者个人维护,功能迭代速度取决于作者的投入。
License 争议:AGPL-3.0 + Gumroad 激活码的商业模式在开源社区中一直有争议。AGPL-3.0 要求衍生作品也必须开源,这限制了企业将其作为内部工具二次开发的灵活性。
尽管存在上述局限,Glyph 的出现代表了笔记应用领域的一个重要方向:本地优先 + AI 原生。
传统的笔记应用(Notion、Obsidian)都是「先有笔记功能,AI 是后来加的」。Glyph 的架构从设计之初就把 AI 集成在核心路径上——Rust 后端的 ai_* 模块不是插件,而是核心模块的一部分。这意味着未来的 AI 能力演进会更加系统和深入。
「本地优先 + Markdown 原生存储」的设计哲学也越来越受欢迎。随着用户对数据隐私的重视程度提升,以及 AI 助手对上下文质量的要求越来越高,Glyph 这类应用的价值会更加凸显——你的笔记不需要上传到第三方服务器,AI 就能直接读取本地文件,既保证了隐私,又降低了延迟。
从增长曲线来看,Glyph 目前仍处于早期活跃开发阶段(最近一次提交为 2026-07-26),版本号 0.8.x 说明功能尚未稳定。如果你是 macOS 用户,且对 AI 原生的笔记工具有强烈需求,Glyph 值得关注;如果你是 Windows/Linux 用户,或需要成熟的插件生态和社区支持,Obsidian 和 Logseq 仍然是更稳妥的选择。
对于 macOS 用户,安装 Glyph 有两种路径:
方式一:下载官方 Release(推荐)
访问 GitHub Releases 页面或 Gumroad 购买页面,下载最新的 .dmg 安装包。官方 Release 包含 7 天完整功能试用期,之后需要购买许可证激活。
方式二:从源码构建
# 安装 Node.js >= 20 和 pnpm >= 10
corepack enable
corepack prepare pnpm@10.28.2
# 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 安装 Xcode CLT(macOS 必需)
xcode-select --install
# 克隆并构建
git clone https://github.com/SidhuK/Glyph.git
cd Glyph
pnpm install
pnpm tauri build
构建完成后,安装包会生成在 src-tauri/target/release/bundle/dmg/ 目录下。