Simon Willison 宣布在其部落格上推出新功能:「Newsletters」頁面,該頁面索引了他發送的所有 Newsletter,包括免費的每週 Substack 通訊和僅限贊助者的每月更新。Willison 表示,他幾乎完全透過語音指令完成了該功能的開發,在煮晚餐的同時與筆記型電腦對話。
他使用 ChatGPT 桌面應用程式中的 Codex 分頁,啟用語音對話模式,並針對本地開發環境進行操作。Willison 首先啟動本地開發伺服器並在瀏覽器中開啟預覽,以便視覺化追蹤進度。接著,他點擊「開始新語音對話」按鈕(位於麥克風按鈕右側),將筆記型電腦放置在廚房,邊煮飯邊口述需求。
Willison 使用的模型為 GPT-6 Astra High。他口述了對新功能的需求,包括建立一個新的 Django 模型來代表匯入的 Newsletter,並明確說明這些內容不應出現在標籤頁面或部落格索引頁面上,但應出現在基於日期的歸檔頁面中。此外,他要求每月 Newsletter 的內容應可被搜尋,而每週 Substack 通訊則因內容重複而不需可搜尋。
經過約半小時的語音互動(即煮晚餐的時間),Codex 成功完成了以下工作: 1. 建立新的 Django 模型、遷移檔案及管理後台配置。 2. 實現四個可用的匯入功能:透過 RSS 匯入最新的 Substack 項目;透過 Substack 未記錄的 API 匯入其他項目(模型直接嘗試了 `/api/v1/archive` 端點並透過搜尋找到分頁方法);從 GitHub 倉庫匯入已發布的每月 Newsletter;從私有倉庫匯入最新的僅限贊助者的 Newsletter。 3. 建立公開的歸檔頁面 `/newsletters/` 和 `/newsletters/2026/`。 4. 確保 Newsletter 出現在日和月歸檔頁面,但不出現在標籤頁面或首頁。 5. 整合網站搜尋引擎。
Willison 指出,功能幾乎準備好可以上線,但匯入功能存在問題。模型建議從本地副本匯出數據以便匯入生產環境,但 Willison 希望匯入腳本能像其他腳本一樣運作。由於部分數據位於私有 GitHub 倉庫,這需要建立新的 API 金鑰,因此他必須回到鍵盤前操作。
完成烹飪後,Willison 讓 Codex 建立分支並開啟 Pull Request。他在 GitHub PR 介面審查代碼時發現,其中一個匯入腳本使用了 Git 子進程,但他認為使用 API 更為合適。他切換回鍵盤輸入,指示 Codex 將該部分改為基於 API 的匯入。此外,他還對公開頁面的顯示進行了微調。這部分額外花了半小時的鍵盤輸入提示,最終他滿意地合併了 PR 並部署到生產環境。
最終結果是一個 Newsletter 索引頁面,按時間倒序混合顯示最新的 Substack 每週通訊和 GitHub 贊助者每月通訊,並提供按年份歸檔的連結。Willison 強調,GPT-6 Astra 設計了頁面,並根據他在廚房透過視覺預覽提供的語音反饋進行了調整。
Willison 認為,雖然 OpenAI 喜歡在 DevDay 等場合展示語音驅動的演示,且這種方式在多工處理(如邊煮飯邊開發)時非常有效,但他不認為這會成為他的日常主力工具。他過去曾使用手機上的 ChatGPT 語音模式在遛狗時進行研究和腦力激盪,偶爾也進行實際開發。然而,這次體驗不同,因為結合了視覺預覽以及在必要時透過鍵盤輸入或貼上內容的能力,使得與編碼代理的互動更強大。不過,當涉及細節時,他仍會切換回鍵盤輸入,因為貼上範例、錯誤訊息或直接標記代碼比用語言描述更有效率。他主要在家工作,因為他認為在共享工作空間中這樣對著電腦說話並不合適。
事件背景
ChatGPT 桌面應用程式包含 Codex 分頁,提供語音對話模式,允許使用者透過語音與編碼代理互動,並可整合本地開發環境進行實時預覽。



