Posts 看到一个开源项目后,我马上 fork,并用 AI 改了两个小功能
Post
Cancel

看到一个开源项目后,我马上 fork,并用 AI 改了两个小功能

– by Igor Omilaev in Unsplash

最近有一个很小但很有意思的经历。我在视频号上看到一个内容,讲的是如何用 HTML 来制作 PPT。这个主题本身就挺吸引我,因为它把网页技术和演示文稿这种很日常的东西连接了起来。也是通过这个视频,我知道了作者。后来又听她介绍了几个自己做的项目,其中一个叫 Tab Out

它是一个 Chrome 扩展,核心想法很简单:把浏览器的新标签页变成一个标签页管理面板。每次打开新 tab,不再是一片空白或者搜索框,而是能看到当前打开的所有标签页,并按照域名分组。对于经常开一堆网页、最后自己也不知道哪些该关的人来说,这个想法非常直接,也非常有用。

我看到之后,很快就 fork 了一个自己的仓库。这件事如果放在以前,可能到这里就结束了:star 一下,收藏一下,最多安装试用一下。但这一次不太一样。我 fork 之后,马上开始想:能不能把它改得更适合我自己?

我想改的其实很小

我想加的第一个功能,是 dark mode。这个需求一点都不宏大,只是因为我的电脑里,大部分编辑器都是暗色背景,日常工作环境也基本是暗色系。如果每次打开一个新标签页,突然跳出来一个明亮页面,就会觉得它和周围不太协调。新标签页又是一个很高频的入口,高频入口上的一点点不舒服,会被放大很多次。所以我第一个念头就是:它应该有一个 dark mode,至少应该和我的编辑器们待在同一个视觉世界里。

第二个功能更私人一点。这几天我刚好又对《2001:太空漫游》起了重新看一遍的念头,于是下载了一些这部电影的壁纸。既然 Tab Out 会替换新标签页,那为什么不把这些壁纸也加进去,让每次打开新 tab 的时候,都能看到一点太空漫游的气氛?从功能角度看,这只是“背景图”;从使用感受上看,它让一个工具变得更像自己的工具。

这两个需求都很小:一个 dark mode,一个壁纸。小到如果要专门找原作者提需求,可能自己都觉得有点不好意思。因为它们不是所有用户都需要的功能,只是我刚好想要。但这正是 AI 编程最有意思的地方:以前不值得动手的小需求,现在值得了。

直接让 Codex 改 fork 后的仓库

这次我是直接用 Codex 在 fork 后的代码仓库上修改。我对 Chrome extension 只能算略知一二,知道它大概会有 manifest,知道新标签页是某个 HTML 页面,知道里面会用到一些浏览器 API。但如果说让我完整开发一个 Chrome extension,那我并不具备这个能力。

以前这就会成为一个门槛。我可能会打开代码看一眼,然后发现有 HTML、CSS、JavaScript、manifest、storage,再想想自己只是想加个暗色模式和背景图,就放弃了。但现在不是这样。现在更像是:我知道自己想要什么,AI 帮我读代码、找入口、改样式、补逻辑。我不需要先成为一个 Chrome extension 开发者,才能改一个 Chrome extension。

这次也没有什么明显卡点。项目本身结构清楚,需求也足够具体,所以整个过程很顺。AI 最擅长的恰好就是这种事情:在一个已有项目里,围绕明确目标做局部改动。

从“这个项目不错”到“这个项目适合我”

这次经历让我很明显地感觉到,开源项目在 AI 时代的使用方式变了。过去我们看到一个不错的开源项目,大多数时候是使用它。最多是提 issue、等作者修,或者自己 fork 但不一定真的改。fork 在很多时候更像一个收藏动作。它表示“这个项目我感兴趣”“以后可能会看”。但很多 fork 最后也就停在那里了。

现在 fork 更像一个改造动作。看到一个项目不错,先 fork。然后问自己:它哪里离我的使用习惯还差一点?哪里可以变得更顺手?有没有一个很小的功能,能让它从“别人做的好项目”变成“我每天愿意用的工具”?这时候 AI 就变成了中间那座桥。

它不替我决定要改什么。dark mode 是我想要的,《2001:太空漫游》的壁纸也是我最近的兴趣。这些判断都来自我自己。但 AI 把“想要”和“实现”之间那段原本很长的路缩短了。

小功能的价值被重新计算了

我越来越觉得,AI 编程真正改变的不是大项目,而是小项目、小工具、小改动。大项目当然也会受影响,但大项目本来就有团队、流程、预算和长期规划。它们的问题不是“能不能写代码”这么简单。反而是这些小东西,变化最明显。

以前一个小功能不一定值得做。不是因为它没有价值,而是因为成本太高。你要读代码、搭环境、理解框架、调试错误。为了一个只服务于自己的小功能,这个投入常常不划算。AI 出现以后,成本结构变了。一个小功能如果能让你每天舒服一点,它就值得做;一个背景图如果能让一个工具更贴近你最近的兴趣,它也值得做。因为实现它不再需要你先付出一整套完整开发能力的代价。

这是一种很微妙的变化。过去的软件世界里,很多个人化需求会被过滤掉。只有足够普遍、足够重要、足够多人需要的需求,才值得进入产品路线图。但个人使用的工具不一定需要这样。它可以很偏心,可以很具体,可以只为一个人的习惯服务。AI 让这种偏心变得可行。

这也意味着,未来对人的要求可能会发生变化。当实现本身变得越来越容易,真正拉开差距的就不只是会不会写代码,而是有没有审美,能不能判断什么值得做、什么不值得做,什么样的细节会让一个工具更舒服,什么样的改动只是增加噪音。dark mode 和电影壁纸看起来都是小改动,但背后其实是对自己工作环境、视觉习惯和情绪体验的判断。AI 可以帮我实现这些判断,但它很难替我产生这种偏好。

从用户变成半个制作者

这次改 Tab Out,让我想到一个更大的变化:我们和软件之间的关系正在变松动。以前软件更像成品。别人做好,我们安装。我们能做的主要是配置、适应、等待更新。现在很多软件,尤其是开源小工具,更像材料。别人先做出一个很好的基础版本,我们再根据自己的需要继续塑形。

这种感觉很不一样。我不需要从零开始做一个新标签页管理器,因为 Tab Out 已经把核心体验做好了。我也不需要完全接受它原来的样子,因为我可以 fork,然后用 AI 把它改成更适合我的样子。这中间不是传统意义上的“成为开发者”,也不是纯粹的“普通用户”。更像是介于两者之间:我是使用者,但我也能对工具做一点自己的加工。

这种角色变化,可能会越来越常见。

现在做小东西真的太容易了

这次最大的感受,就是现在做东西,特别是做小东西,真的太简单了。当然,这里的“简单”不是说完全不用思考。你仍然要知道自己想要什么,知道什么样的体验对自己有价值,也要能判断 AI 改出来的东西是不是符合预期。但只要想法足够清楚,实现就变得非常容易。

这和我以前对开源项目的使用习惯很不一样。以前看到一个项目,我会先问:它能不能满足我的需求?不能的话,就找下一个。现在我会多问一句:它离我想要的样子还差多远?如果只差一点点,那我是不是可以直接把它改出来?这个问题一旦出现,很多事情就变了。因为你不再只是软件的消费者,而开始成为自己工具链的改造者。也正因为实现门槛下降了,人的审美和判断会变得更重要。未来真正稀缺的,可能不是把功能做出来的能力,而是知道要把它做成什么样。

对我来说,Tab Out 这次只是一个很小的例子:dark mode,加一张喜欢的电影壁纸。没有复杂架构,没有惊天动地的功能。但它让我真切感受到,AI 编程正在把很多原本不值得动手的小想法,变成可以马上实现的小作品。

看到一个好项目,fork 一下,改成自己的版本。这件事以前也能做,但现在终于变得足够轻了。

This post is licensed under CC BY 4.0 by the author.

Recent Update

    Trending Tags

    Contents

    Trending Tags