3 月的最后兩天(不是愚人節(jié)),一個奇怪的開源項(xiàng)目突然在 X 上引發(fā)了討論:
![]()
這個項(xiàng)目的作者 yetone 在 GitHub 上有不少作品,其中最出名的一個叫 avante.nvim—— 讓 Neovim 編輯器用起來像 Cursor 那樣支持 AI 輔助編程,目前積累了 17.7k star,顯然是一個正經(jīng)的開源作者()
而他發(fā)布的這個新項(xiàng)目:voice-input-src,功能聽起來很日常 —— 一個 macOS 菜單欄語音輸入法,按住 Fn 鍵開始錄音,松開后語音自動轉(zhuǎn)文字,注入當(dāng)前聚焦的輸入框,類似系統(tǒng)層面的語音聽寫,但加入了 LLM 糾錯和多語言切換。
項(xiàng)目本身不算稀奇,稀奇的是打開這個倉庫,沒有任何代碼文件,除了倉庫結(jié)構(gòu)里的一個dist/子模塊指向發(fā)布版本,可以看的內(nèi)容只有 README。README 里也沒有安裝說明,沒有 API 文檔,也沒有貢獻(xiàn)指南,只有一段自然語言寫成的詳細(xì)指令,也就是丟給 AI 的 Prompt:
![]()
起初大家都以為他在玩抽象,但仔細(xì)一想現(xiàn)在誰還在用古法手作編程?這不比直接把一大坨 AI 生成的代碼復(fù)制粘貼上來開源簡潔高效多了嗎。
![]()
![]()
我們細(xì)看這段開源 Prompt 可以發(fā)現(xiàn):
請實(shí)現(xiàn)一個 macOS menu-bar 語音輸入法應(yīng)用(Swift,macOS 14+),具體要求:1. 按住 Fn 鍵錄音,松開后將轉(zhuǎn)錄文字注入當(dāng)前聚焦的輸入框。優(yōu)先使用流式轉(zhuǎn)錄……
然后是極為細(xì)致的工程規(guī)范:項(xiàng)目必須使用 Swift Package Manager 結(jié)構(gòu)、自動生成 Makefile、使用LSUIElement模式讓應(yīng)用不出現(xiàn)在 Dock 里、錄音時彈出一個帶波形動畫的無邊框浮窗、實(shí)時展示轉(zhuǎn)錄內(nèi)容…… 一路寫到 CJK 輸入法的兼容處理、LLM 糾錯的調(diào)用時機(jī)、API Key 管理的 UI 設(shè)計細(xì)節(jié)。
整篇算下來接近一千字,沒有一行 Swift 代碼。
yetone 在原推中說明,他用 Claude Code 執(zhí)行了這段 Prompt,一次性生成了完整可運(yùn)行的應(yīng)用,然后將這段 Prompt 公開,就算“開源”了。
換一個 AI,也能跑通
這件事被 V2EX 用戶發(fā)現(xiàn)后,在論壇引發(fā)討論,標(biāo)題就叫“新的開源形式”。
討論里有人表示好奇:這段 Prompt 是綁定 Claude Code 的,換別的模型還管用嗎?有用戶做了個實(shí)驗(yàn),將原 Prompt 原封不動復(fù)制,交給 OpenAI Codex(基于 GPT-5.4 模型),讓它按照同樣的描述生成代碼。結(jié)果是一次性生成、構(gòu)建、運(yùn)行全部成功,功能和原版基本一致。
這個細(xì)節(jié)比“AI 生成了一個 App”更值得關(guān)注,它說明這段 Prompt 并不是某個 AI 的專有格式,而是一份對需求的完整表達(dá) —— 足夠精確,以至于任何能力足夠的語言模型都可以從中還原出同一個應(yīng)用。
代碼是執(zhí)行結(jié)果;Prompt 是執(zhí)行依據(jù)。
Linus 說過的那句話
二十多年前,Linus Torvalds 在一場郵件爭論里說了一句話,后來變成開源社區(qū)最廣為人知的格言:
Talk is cheap. Show me the code.
意思是:說再多不如秀代碼。那個時代的開源邏輯很清晰 —— 你的貢獻(xiàn)等于你提交的代碼,pull request 是協(xié)作的貨幣,diff 是知識的載體。
現(xiàn)在有點(diǎn)不一樣了。當(dāng) AI 工具可以從一段精確描述里生成完整可運(yùn)行的代碼,代碼本身退化成了一種臨時產(chǎn)物 —— 它是 Prompt 的實(shí)例化輸出,不再是知識本身。就像編譯器把高級語言編譯成機(jī)器碼,而沒有人會去閱讀機(jī)器碼來理解程序的意圖。yetone 開源的不是結(jié)果,而是生成結(jié)果的意圖。
這個轉(zhuǎn)變有一個更直白的說法,在那個 V2EX 帖子的評論里有人提到了:
“Code is cheap, show me the prompt.”
開發(fā)者的知識資產(chǎn)在哪一層
傳統(tǒng)的開源協(xié)作,協(xié)作的單元是代碼。你 fork 一個倉庫,改幾行,提 PR,討論在 issue 區(qū),分歧落實(shí)為具體的代碼行。
如果 Prompt 開源成為一種常見模式,這個鏈路會有些變化。貢獻(xiàn)者不需要理解 Swift 的語法;覺得某個功能描述有歧義,可以直接在 Prompt 的對應(yīng)段落提出修改;想新增一個功能,只需要在 Prompt 里加一段需求描述,重新跑一遍,對比兩次生成結(jié)果的差異。
版本管理的對象變成自然語言文檔,issue 的內(nèi)容變成“第 12 條描述不夠精確導(dǎo)致 LLM 理解錯了”,PR 變成“在第三節(jié)加上這個約束條件”。
這不是說代碼從此消失。AI 生成的代碼依然需要人去調(diào)試、驗(yàn)證、修改;對于復(fù)雜系統(tǒng),單靠一段 Prompt 根本無法完整描述所有約束;遇到需要深度定制的功能,自然語言描述的精度會不夠用。
但對于一部分足夠明確、邊界清晰的應(yīng)用 —— 語音輸入法、翻譯工具、菜單欄小工具這類 ——Prompt 已經(jīng)可以作為完整的規(guī)格交付物。而這個邊界,正在隨著模型能力的提升向更復(fù)雜的方向移動。
yetone 的 voice-input-src 只有 1.1k star,沒有登上任何主流媒體的頭條。但它展示的邏輯是清晰的:一些程序員已經(jīng)把寫 Prompt 當(dāng)成主要的工作產(chǎn)品,并開始以同樣的方式分享它。
他們分享的不是怎么寫代碼,而是怎么想清楚一件事。
參考來源
https://github.com/yetone/voice-input-src
https://www.v2ex.com/t/1202162
https://x.com/yetone/status/2038183163579810024
https://github.com/jovix0101/voice-ime
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.