【译】Obsidian 实际上是一个自定义的应用平台,而 AI Coding让每个人都能解锁它

写在前面

我突然意识到,Obsidian 之所以在一些用户中受到欢迎,是因为很多知识工作者的日常工作流,其实都可以简化为基于纯文本的记录。

不需要特别的专有程序。

如果各位需要画 CAD、剪视频、数学建模、电路设计……那可能就需要专门工具了。即使如此,仍旧有相当一部分工作流,只需要文本记录即可,比如协作沟通记录、文摘、脚本草稿、写作草稿……

我一直推崇 Obsidian 的 File over app 理念。简单的文件成了主角,双链引用和标签则成了连接信息的枢纽。而它真正的平台潜力,正来自这种可扩展性。

如果大家关注 Obsidian 这几年的发展,可能会产生一种感觉:且不说无数第三方插件,随着官方 Canvas、Bases 陆续推出,Obsidian 已经不再只是一个单纯的 Markdown 笔记工具,而更像是一套基于新理念的个人工作台。

它是一个开放平台。如果你想在 Obsidian 里加入一个自己的应用,完全可以通过插件的形式来实现。这是以前 MS Office 很难做到的事情。一定要做当然也可以,但非常复杂。

现在有了 AI,实现 Obsidian 插件的门槛就更低了。

最近我读到 TfTHacker 一篇文章。他是很有影响力的海外科技博主,文章里分享了自己为何以及如何构建一个基于 Obsidian 的自用西班牙语学习 App。

看到开头部分时,我立刻感到它和我之前的想法高度吻合,同时也提醒了我一些此前忽略的事情。于是,我毫不犹豫地决定翻译并分享给大家。

以下正文,火箭君翻译并略作编辑。原作者:TfTHacker,原文出自:https://tfthacker.com/


正文

我刚刚构建了一个完全可用的学习 App:抽认卡(Flashcards)、语音识别、临时刷题模式。

而且,我自己一行代码都没写。

它完全本地运行,没有服务器,没有数据库,也不需要托管费用。它能在我的电脑、手机和平板上运行,甚至任何人都可以安装。

听起来很神奇,其中的秘密是:我把这个 App 做成了一个 Obsidian 插件。

而我是通过和一个 AI 对话,完成了整个构建过程。

让我解释一下为什么这件事很重要。


我们共同的问题

也许每个人都有过一个关于工具的想法。

这个工具往往和自己的工作或学习方式密切相关。我们去应用商店寻找,却发现没有合适的。

我们有时也想自己构建它,但现实很快摆在面前:也许我不是开发者,所以不知道如何构建应用。即便我是开发者,也需要一台 Web 服务器、一个数据库、前端代码、后端代码、托管和部署。

为了一个可能只有自己会用的个人工具,付出这么多努力?

那就有点过头了。

于是,这个工具 App 的想法就在脑中夭折了。

和其他大多数想法一样。


Obsidian 里藏着一些东西

大多数人忽略了一点:Obsidian 不仅仅是一个 Markdown 编辑器。

它是一个完整的应用运行时。

Runtime,火箭君注:可以简单理解为一个程序运行所需要的环境。

在底层,Obsidian 是一个 Electron 应用。也就是说,它本质上是一个可以运行网页应用的完整浏览器环境。

它支持 HTML、CSS 和 JavaScript。这些也是驱动互联网大多数内容的基础技术。

这让它成了一块非常适合构建界面的灵活画布。

但它还不止于此。

Obsidian 还悄悄提供了每个应用都需要的三样东西。


存储

我们的 vault 就是数据库。

数据保存在你自己拥有的本地文件中。不需要 SQL,不需要云端配置,也不需要第三方依赖。


同步

如果你使用 Obsidian Sync、iCloud 或类似服务,你的数据本来就已经可以在设备之间同步。

你的应用可以直接继承这一点。


分发

我们构建的一切,都可以以 Obsidian 插件的形式存在。

插件有一条明确的分发路径:你可以通过 BRAT 私密分享,也可以提交到 Obsidian 的社区插件目录。

界面、存储、同步、分发。

这四件事组合在一起,就是一个完整的应用平台。

而它其实一直就在那里。


AI Coding 改变了谁能构建软件

通过与 AI 代理对话来构建软件。

描述你想要的东西,让 AI 编写代码。

像 OpenAI Codex 和 Claude Code 这样的工具,已经让这件事变得可行。

关键转变在于:我们需要的核心技能不再只是编程,而是清晰表达。

我们能描述 App 应该做什么吗?我们能测试它,并用语言解释哪里出问题了吗?

如果能,我们就能构建软件。

我们是产品经理,AI 就是开发者。

现在,我们把这些点连起来。

AI 编码降低了亲自编写代码的必要性。Obsidian 降低了对服务器、数据库和部署基础设施的依赖。

二者结合,创造了一种新的可能性:一个个人应用平台。任何愿意描述自己想要什么,并持续迭代直到可用的人,都可以尝试构建属于自己的工具。

我亲自测试过,下面是整个过程。


我构建了一个西班牙语数字学习插件

我在学西班牙语。

根据以往的语言学习经验,我知道,掌握数字是基础。

我需要一个非常具体的工具:用于识别书面数字的抽认卡、用于强化训练的突击模式,以及用于通过听力识别数字的听力练习功能。

现有工具都无法按我需要的方式,同时满足这三点。

我需要一个专门为我打造的应用。

于是,我在屏幕一侧打开 AI 代理,另一侧打开 Obsidian。

我告诉 AI,我正在构建一个 Obsidian 插件,并让它参考正确的 Obsidian 文档,包括示例插件、开发指南、发布规范和 CLI 参考。

它读完这些内容后,很快理清了方向。

然后,我们一起制定规格说明。

我描述每个功能:抽认卡流程、突击模式逻辑、数据存储、视觉布局。

AI 代理会在对话过程中,把规格说明整理出来。

接下来就是一个循环:

AI 生成代码,我把它放进 Obsidian 里测试。

我会告诉它:

「这个按钮应该放在这里。」

「数据在不同会话之间没有保存下来。」

「突击模式需要提高答错数字的出现权重。」

AI 会进行修改。

如此反复继续。

当它能在电脑、手机和平板上运行时,我让 AI 代理把项目整理成可以发布到 GitHub 的状态,包括 README、许可证、发布配置和完整的打包步骤。

最后,我把它发布了。

其他用户可以通过 BRAT 安装。

在这个过程中,我从未直接接触过代码。

整个应用都是通过对话构建出来的。


接下来,说些真实感受

我不会夸大其词。

实际上,过程中遇到的问题大致如下。


引导一个 AI 代理,本身就是一项真正的工作

你可以把它当成一个聪明但缺乏经验的合作者来管理。

它能产出惊人的成果,但它不会读心术。

你要提供方向,发现错误,并在它偏离时纠正路线。


规格说明是最难的部分

在任何代码编写之前,你必须深入思考自己真正想要什么。

功能是什么?流程是什么?边界情况是什么?

AI 代理可以帮助制定规格,但主导者仍然是你。


AI 开发速度更快,但并不是瞬间完成

我的西班牙语数字插件,是一个相对聚焦的应用。

即便如此,它也花了大约一天半。

如果手动编写代码,可能要花我一周左右。

这确实是显著提速,但别指望能在一小时内,把一个想法直接变成成品。


测试能发现 AI 漏掉的问题

我的插件在为某些数字类型生成西班牙语时出错。

这可能会让用户学到错误内容。

我不得不添加额外验证,并推动 AI 代理写出更好的测试。

AI 捕捉不到所有 bug。

我必须自己对质量负责。


发布过程仍然有些技术性

我需要阅读文档,并理解 Obsidian 插件分发系统的基本概念。

这不一定需要亲自编写代码,但确实需要获取相关背景信息。

我希望 Obsidian 未来能进一步简化这一过程。


谁应该尝试这个?

对于希望根据自己的工作流精确定制工具的个人用户来说,这种 AI Coding 方法很理想。

对于通过共享 vault 或共享文件夹来同步插件和数据的小团队来说,这种方法同样适用。

它并不是为复杂后端、大规模多用户应用而设计的。

但如果是个人工具、小团队实用程序和定制工作流呢?

它确实打开了一种新的可能性。


更大的图景

我们正处于一个转折点。

AI 大幅降低了构建软件的门槛,但软件仍然需要一个运行和承载的地方。

它需要界面、存储、同步,以及分发给用户的方式。

Obsidian 提供了所有这些。悄无声息。没有喧嚣。它一直就是一个应用平台。

想一想,大家希望存在的那个工具。

那个完全符合你需求、完全匹配你工作流的工具,可能一直不存在。

而且,应用商店里往往也找不到它。

现在再想想,构建它的门槛从未如此之低。

几乎不需要学习编程。不需要搭建服务器。

你只需要描述自己想要什么,并愿意不断迭代,直到它真正可用。

平台已经在那里,AI 也已经足够可用。

剩下的问题是:你是否真的知道自己想要一个什么工具,并愿意把它一点点打磨出来。

原文作者(TfTGancker)制作西班牙语学习 App 的 Github repo:

https://github.com/TfTHacker/spanish-learn-numbers/

留下评论