基于纯文本与AI代理的本地优先人生操作系统实践
1. 项目概述:一个本地优先的AI驱动人生操作系统
如果你和我一样,厌倦了数据被锁在云端、界面花哨但核心功能孱弱的效率工具,那么今天聊的这个项目“LifeOS Local”可能会让你眼前一亮。它不是什么新上线的SaaS服务,而是一个完全运行在你本地电脑上的“人生操作系统”框架。核心哲学极其简单:一切皆纯文本(Markdown),一个文件管一天(today.md),让AI代理来处理那些繁琐的归档、迁移和提醒工作。你可以把它理解为你数字生活的“命令行界面”,通过最基础的文本编辑器和几个预设的AI指令,就能构建一个高度个性化、完全受你控制的生产力系统。
这个项目完美契合了当下“本地优先”(Local-First)和“纯文本生产力”(Plain Text Productivity)的潮流。它不依赖任何云服务,你的所有日记、任务、想法都安静地躺在你自己的硬盘里,用最通用的.md格式保存,未来几十年都能无障碍读取。而AI(特别是像Cursor这类深度集成代码助手的编辑器)的引入,则解决了纯文本系统最大的痛点:手动维护的繁琐。你不再需要自己记住把昨天的未完成任务挪到今天,或者定期整理归档——告诉AI“帮我开始新的一天”(/start)或“结束今天的工作”(/finish),它就会像一位尽职的私人助理一样帮你打理好一切。
2. 核心设计哲学与架构解析
2.1 为什么是“纯文本”与“本地优先”?
在深入操作之前,有必要先理解这个项目背后的设计选择。这决定了它是否适合你。
纯文本(Plain Text)作为基石:项目所有数据都以Markdown文件存储。这带来了几个无可替代的优势:
- 永恒性与可移植性:.txt或.md文件是计算机世界最基础的数据格式,几乎任何设备、任何操作系统、任何软件(甚至是最简单的记事本)都能打开。这意味着你的数据永远不会因为某个服务倒闭、格式过时而丢失。十年后,你依然能轻松访问今天写下的内容。
- 极致的灵活性与可控性:没有固定的字段、没有复杂的数据库结构。你想记录什么,就直接写什么。你可以用
#创建标题,用-列清单,用**加粗重点,结构完全由你定义。这种自由是任何结构化笔记软件(如Notion的数据库)难以比拟的。 - 强大的工具生态:纯文本可以与无数现有工具无缝协作。你可以用
git进行版本管理,用grep或ripgrep进行全局搜索,用任何文本编辑器(VSCode, Vim, Sublime Text)进行编辑,甚至用脚本(Python, Bash)进行批量处理和分析。
本地优先(Local-First)作为原则:你的数据首先且主要存储在你的本地设备上。这与“云同步优先”的Evernote、Notion等有本质区别。
- 隐私与安全:你的日记、任务清单、项目构思从未离开你的电脑。你不需要担心服务商的隐私政策,也不需要担心数据泄露。
- 离线可用:无论网络是否通畅,你的系统始终可用。
- 性能与响应:所有操作都在本地完成,速度极快,没有网络延迟。
当然,这带来了同步的挑战。但解决方案非常成熟:你可以使用git配合GitHub、Gitee或自建Git服务器进行跨设备同步;或者使用Syncthing、iCloud Drive/Dropbox的文件夹同步功能。同步的主动权完全在你手中。
2.2 AI代理的角色:从“记录系统”到“执行系统”
传统的Bullet Journal(子弹笔记)或PKM(个人知识管理)系统,核心是“记录”。你需要花费大量心智在“维护系统”本身上:迁移任务、归档日志、分类信息。LifeOS Local引入AI代理(通过AGENTS.md文件定义),旨在将系统升级为“执行系统”。
AI在这里不是用来生成空洞内容的,而是扮演一个系统管理员或执行引擎的角色。它的核心职责是:
- 自动化流程:执行
/start,/finish,/review等命令,自动完成日期更新、文件归档、任务迁移等重复性工作。 - 理解上下文:通过读取你的
user.md(偏好设置)和today.md(当日上下文),提供更具个性化的建议(例如,在/unstuck命令中,根据你当前阻塞的任务类型给出启动建议)。 - 处理半结构化信息:虽然数据是纯文本,但AI可以理解其中的结构(如任务列表
- [ ],标签#tag,优先级(A)等),并据此进行智能操作。
这本质上是一种“人机协作”的新模式:你负责思考、决策和创造内容(人类擅长的);AI负责处理规则明确、流程固定的维护性工作(机器擅长的)。
3. 环境准备与项目初始化实操
3.1 核心工具选型:为什么是Cursor?
项目推荐使用Cursor编辑器,这并非强制,但能获得最佳体验。Cursor的核心优势在于深度集成了AI(类似ChatGPT的模型)到编辑界面,并支持运行自定义的“AI代理命令”(即项目中的/setup-private,/onboard等)。这些命令本质上是一系列预设的提示词(Prompts)和脚本,AI会按照提示词一步步引导你操作或自动执行任务。
如果你不使用Cursor,还有哪些选择?
- Cursor CLI:Cursor的命令行版本,同样可以执行代理命令。
- 任何支持
AGENTS.md协议的编辑器/CLI:AGENTS.md是一个正在兴起的标准,用于定义AI代理的指令集。未来可能会有更多工具兼容。 - 手动模式:即使没有任何AI工具,你也可以完全手动操作这些Markdown文件。项目的价值在于提供了一套经过验证的文件结构和工作流模板,你可以借鉴这个模板,用你熟悉的任何编辑器(如VS Code + Copilot)来管理。
我的选择与建议:对于想要体验完整自动化工作流的用户,我强烈建议从Cursor开始。它的集成度最高,开箱即用。对于更极客的用户,可以研究AGENTS.md文件,将其中的指令适配到你喜欢的AI编码助手(如Claude Code、Windsurf等)。
3.2 一步步搭建你的LifeOS
让我们开始实际操作。假设你选择了Cursor。
步骤一:获取项目代码打开终端(命令行),导航到你希望存放LifeOS的目录(例如~/Documents),执行:
git clone https://github.com/sanjeed5/life-os-local.git my-life-os cd my-life-os这会将官方的项目模板克隆到本地一个名为my-life-os的文件夹中。
注意:此时你拥有的是一个“模板仓库”。直接在这里记录个人数据并推送到GitHub是公开的。下一步就是解决这个问题。
步骤二:创建你的私有数据仓库(关键步骤)这是保证你数据隐私的核心操作。在Cursor中打开项目文件夹后,你应该能在编辑器内看到一个类似聊天框的“AI指令输入框”。在这里输入:
/setup-privateAI代理会被触发。它通常会做以下几件事:
- 引导你在GitHub上创建一个新的、私有的仓库(例如命名为
my-life-os-private)。 - 将当前模板仓库的内容推送到这个新的私有仓库。
- 将你的本地仓库的远程地址切换到这个新的私有仓库。
- 可能会删除原模板仓库的远程链接,确保你的工作完全基于私有库。
这个过程完成后,你的所有后续操作(提交、推送)都只与你的私有仓库相关,原始模板仓库的更新不会影响你,你的数据也完全保密。
步骤三:初始化个人配置文件继续在AI指令框中输入:
/onboard这个命令会引导你完成初始化设置。AI会问你一系列问题,例如:
- 你的名字?
- 你希望如何称呼你的系统?(如“我的指挥中心”)
- 你的核心关注领域?(如“健康”、“家庭”、“项目A”)
- 你希望每日回顾的时间?(如“每晚9点”)
根据你的回答,AI会在项目中生成一个user.md文件。这个文件是你的个人偏好中心,后续AI代理在执行各种命令时,会参考这里的设置来提供更贴心的服务。
4. 核心文件系统与每日工作流深度解析
4.1 文件系统结构:每个文件的使命
初始化完成后,你的项目目录结构会变得清晰。理解每个文件的作用是高效使用系统的前提。
| 文件/目录 | 核心使命与使用逻辑 |
|---|---|
today.md | 系统的核心,今天的驾驶舱。每天早晨由/start命令生成或重置。它应该包含:今日日期、主要目标(Top 3)、任务清单、会议安排、随机灵感区。它的特点是“临时性”和“聚焦性”,只关心今天。 |
inbox.md | 全系统的收集箱和总仓库。这是一个“冷存储”,所有未分类、未安排的想法、任务、项目雏形、未来可能想培养的习惯,都先扔到这里。它的结构相对稳定,按区域划分(如## Projects,## Someday/Maybe)。/start命令会从这里提取相关任务到today.md。 |
wins.md | 你的成就日志与能量补给站。记录任何你觉得值得庆祝的事情,无论大小。完成了项目、学会了一个小技巧、坚持运动了一周、帮助了别人……都可以记下来。定期回顾这个文件,是对抗自我怀疑、建立自信的绝佳方式。/finish命令会提示你记录今日小胜。 |
journal/目录 | 系统的历史档案馆。每天执行/finish时,today.md会被归档到此目录下,按年/月/日期.md的层级存放(如journal/2024/05/2024-05-27.md)。这是你个人历史的纯文本数据库,可用于年度回顾或搜索过去某天的记录。 |
user.md | 系统的配置文件。由/onboard生成,存放你的个人偏好。AI代理会读取它来个性化其行为。你可以手动编辑它,增加更多自定义偏好。 |
AGENTS.md | AI代理的“工作手册”。这个文件定义了所有命令(/start,/finish等)的具体执行步骤和逻辑。高级用户可以修改这个文件来定制自动化流程。普通用户只需知道它的存在即可。 |
4.2 每日工作流实战:从清晨到日暮
这套系统的精髓在于其每日工作流,它模拟了GTD(Getting Things Done)和Bullet Journal的核心循环。
场景一:清晨启动——执行/start当你开始一天的工作时,在Cursor中输入/start。AI代理会做以下事情:
- 归档昨日:检查是否存在昨天的
today.md,如果存在,会将其移动到journal/目录下对应的日期文件夹中。这相当于为昨天画上句号。 - 创建今日文件:生成一个新的
today.md文件,顶部是今天的日期。 - 迁移未完成任务:它会扫描昨天归档的文件,找出所有未完成的任务(标记为
- [ ]的项),并询问你是否要将它们迁移到今天的文件中。你只需回答“是”或“否”。 - 从收集箱提取任务:它会读取
inbox.md,特别是## Projects下的相关任务,根据你的user.md设置或上下文,建议一些任务添加到今日清单。 - 引导制定计划:最后,AI会提示你:“今天最重要的三件事是什么?” 引导你聚焦核心目标。
这个过程在1分钟内完成,你无需手动复制粘贴、创建文件、梳理任务,一个清晰、承上启下的今日计划页面就准备好了。
场景二:日间记录——维护today.md一天中,today.md是你的主战场。你可以:
- 在任务列表中添加新任务(
- [ ] 准备会议材料)。 - 记录临时会议笔记或灵感(在文件底部随便找个地方写)。
- 完成任务后,将
- [ ]改为- [x]。 - 用
##标题划分上午、下午等时间段。
关键技巧:不要追求完美记录。把它当作草稿纸,快速捕捉。结构可以稍后整理。
场景三:晚间收尾——执行/finish一天结束时,输入/finish。AI代理会:
- 引导日回顾:问你一些简单的问题,如“今天有什么值得庆祝的小胜利?”(鼓励你更新
wins.md),“今天有什么感悟或学习?” - 归档今日:将当前的
today.md文件重命名并移动到journal/2024/05/目录下。 - 清理与迁移:将今日未完成的任务(
- [ ])收集起来,询问你是想将它们移回inbox.md,还是直接安排到明天的待办中。 - 生成明日占位符:创建一个空的
tomorrow.md(或直接在inbox中标记),用于临时存放睡前想到的明天要做的事。
这个过程完成了“记录-回顾-清理”的闭环,让你的数字桌面每天都能清空重启。
4.3 进阶命令:/review与/unstuck
/review(每周回顾):这是系统长期健康运行的关键。通常在周末执行。AI会引导你:- 回顾过去一周的
journal/,总结主要事件和进展。 - 清空和整理
inbox.md,将模糊的想法转化为明确的项目或任务,或直接删除。 - 审视
wins.md,给自己积极的反馈。 - 基于以上,规划下一周的总体方向和高阶目标。这相当于为接下来七天的
/start命令提供了战略背景。
- 回顾过去一周的
/unstuck(解困助手):当你面对today.md一片空白毫无头绪,或者某个任务卡住无法推进时,运行此命令。AI会分析你当前的文件和任务,可能提供以下帮助:- 将一个大任务拆解成几个5分钟内可执行的下一步行动。
- 建议你换个环境或先做点简单的任务热身。
- 根据
inbox.md和过往记录,提醒你一些被遗忘但相关的事项。
5. 高级集成与个性化定制指南
5.1 利用MCP连接外部世界(可选但强大)
LifeOS本身是自包含的,但通过模型上下文协议(MCP),它可以与外部工具连接,变得更具感知力和行动力。MCP可以理解为AI代理的“插件系统”,允许AI安全地访问外部数据和执行操作。
如何集成?项目提到了Google Workspace的MCP服务器。假设你想连接Google日历:
- 安装MCP服务器:你需要按照
google_workspace_mcp项目的指南,配置OAuth认证等。这通常涉及在Google Cloud创建项目、获取凭证等开发操作,有一定门槛。 - 配置Cursor:在Cursor的设置中,配置其AI使用你安装的MCP服务器。
- 效果:配置成功后,当你运行
/start时,AI不仅可以读取你的本地文件,还可以通过MCP查询你今天的Google日历事件,并自动将其插入到today.md的“会议安排”部分。同样,/finish时,AI或许能帮你将完成的任务同步到某个外部项目管理工具。
我的建议:对于大多数用户,初期完全可以忽略MCP。先专注于用好本地纯文本工作流。当你对这个系统非常熟悉,且确实有强烈的自动化需求(如每日自动拉取日历、同步待办事项到TickTick等)时,再研究MCP。社区(github.com/modelcontextprotocol/servers)提供了越来越多的服务器,未来可玩性很高。
5.2 深度个性化你的系统
AGENTS.md和user.md是你进行个性化定制的两个杠杆。
定制
user.md:你可以手动编辑这个文件,添加任何你认为AI应该知道的关于你的信息。例如:## 工作习惯 - 我习惯在上午处理深度工作。 - 我容易在下午3点后精力分散。 ## 项目缩写 - PA: 项目阿尔法 - PB: 项目贝塔 ## 常用标签 - #健康 #阅读 #财务这样,当AI在
/review时看到#健康的条目,可能会给出更相关的总结。(高级)定制
AGENTS.md:这个文件定义了每个命令的具体步骤。例如,你可以修改/start命令的流程,让它除了问“最重要的三件事”,再额外问一句“今天有什么让你感到焦虑或担心的事?”,并将其记录在一个专门区域用于后续反思。注意:修改前请备份原文件,并确保你理解其基本结构(它本质上是给AI看的详细指令集)。
6. 常见问题与故障排查实录
在实际使用中,你可能会遇到以下情况。这里是我和社区用户遇到的一些典型问题及解决思路。
| 问题现象 | 可能原因 | 排查与解决思路 |
|---|---|---|
运行/setup-private或/onboard无反应或报错 | 1. Cursor的AI功能未正确启用或订阅。 2. 项目路径包含中文或特殊字符。 3. Git未安装或配置错误。 | 1. 确认Cursor已登录且AI功能可用(尝试在文件中问个简单问题)。 2. 将项目克隆到纯英文路径下(如 C:\Users\YourName\Documents\lifeos)。3. 在终端运行 git --version确认Git已安装。运行git config --global user.name和git config --global user.email确认信息已配置。 |
/start命令没有正确迁移昨天的任务 | 1. 昨天的today.md文件已被手动移动或删除。2. 文件命名或格式不符合预期。 | 1. 检查journal/目录下是否存在昨天的归档文件。如果没有,手动从备份或回收站恢复。2. 确保 today.md的任务项使用标准的Markdown任务列表格式:- [ ] 任务内容。AI靠这个模式识别任务。 |
/finish归档后,想查看昨天的记录找不到 | 不熟悉归档目录结构。 | 归档路径是journal/年/月/年-月-日.md。例如,2024年5月27日的日记,路径是journal/2024/05/2024-05-27.md。直接在文件管理器中导航或使用编辑器内的文件搜索功能。 |
| 想在手机或平板上查看/编辑文件 | 纯文本系统的跨设备同步需要自行设置。 | 方案A(推荐):使用Git。在移动端安装如Working Copy(iOS)或MGit(Android)的Git客户端,克隆你的私有仓库。编辑后提交推送。这需要一定的Git操作知识。方案B(简单):使用云盘同步文件夹。将整个 my-life-os文件夹放入iCloud Drive、Dropbox或OneDrive的同步文件夹中。然后在移动端使用支持Markdown的编辑器(如iA Writer、Obsidian Mobile)打开该文件夹内的文件。注意:确保不同设备编辑同一文件时不要产生冲突。 |
| AI代理的命令执行结果不符合预期 | AGENTS.md中的指令可能被更新,或AI理解有偏差。 | 1. 首先,检查项目仓库是否有更新(git pull),有时作者会优化代理指令。2. 直接打开 AGENTS.md,查看对应命令(如## Command: /start)的原始指令是什么,这有助于你理解AI“应该”做什么。3. 在运行命令时,可以在指令后添加更明确的描述,例如 /start 请忽略inbox中的低优先级任务,为AI提供额外上下文。 |
| 数据量大了之后,如何快速搜索历史记录? | 纯文本文件的优势所在。 | 在项目根目录打开终端,使用grep -r "关键词" journal/命令,可以快速在所有归档日记中搜索包含该关键词的文件。对于更复杂的搜索(如搜索某个标签#阅读),可以结合正则表达式:grep -r "#阅读" journal/。你也可以使用任何本地全文搜索工具,如VS Code的全局搜索、ripgrep(rg) 等,速度极快。 |
最后一点个人心得:这个系统的力量不在于工具的复杂,而在于流程的坚持和数据的积累。最初几周,你可能会觉得手动运行命令有点刻意,但一旦形成习惯,你会发现大脑被极大地解放了。你不再需要记住“那个想法记在哪了”、“昨天的任务今天要不要做”,系统会成为你可靠的外部大脑。最关键的是,所有数据都在你自己手里,以一种最朴素、最持久的方式保存着。这种掌控感和安全感,是任何云端服务都无法给予的。
