Show HN: Shotlist – 讓您的AI代理用真實截圖證明其工作
Shotlist 是一款開源工具,透過一個配置化的 .shotlist.yaml 檔案,自動化生成文件所需的網頁、終端和命令列截圖。它支援可重複截圖、CI 整合,並提供多種截圖模式,確保文件截圖始終與最新程式碼同步。
Shotlist 是一款新型開源工具,旨在解決文件截圖的維護難題。開發者只需編寫一個 .shotlist.yaml 配置檔案,描述應用的啟動方式及需要擷取的內容,即可在本地或 CI 環境中一鍵生成所有截圖。該工具的核心優勢在於可重複性:相同的配置加上相同的應用狀態,總能產生完全一致的截圖。
Shotlist 提供了四種截圖型別:網頁截圖(透過 Playwright 和 Chromium 瀏覽器)、原生終端截圖(僅 macOS,使用 AppleScript 和 screencapture 捕獲真實 Terminal.app 視窗)、渲染 CLI 截圖(跨平臺,將命令輸出透過 PTY→ANSI→HTML 轉換後由 Chromium 繪製)以及會話截圖(在同一個持久終端中執行多步驟命令流,每一步結束後捕獲截圖)。這種設計使得複雜工作流的截圖變得簡單可靠。
除了基礎的截圖功能,Shotlist 還生成了 index.html 畫廊頁面和 manifest.json 後設資料檔案,方便分享和整合。在 CI 流水線中,shotlist check 命令可以檢測截圖是否與基線發生意外差異,並透過 --diff 選項生成基線、當前和差異對比圖。該工具還提供 GitHub Action 原生支援。
Shotlist 的設計理念是“無需 AI”:AI(如 Claude)只在首次生成 .shotlist.yaml 時使用,之後的所有截圖操作都是 100% 確定性的程式執行。這意味著截圖引擎快速、免費,且可在 CI 中無限次重新執行,無需任何模型參與。專案本身也透過“自行構建”的方式驗證自身——其文件中的截圖全部由自身的 shotlist 生成。
目前 Shotlist 已釋出初始版本,採用 MIT 許可證。專案程式碼託管於 GitHub,支援 Python 3.11 和 3.12,並提供完整的開發和測試流程。