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,并提供完整的开发和测试流程。