API特技替身Stunt:95个适配器本地模拟

2026-08-18 · 工具资源
产品配图
项目快照复刻难度★★★★☆
技术栈
Starlark + YAML + SQLite
当前状态
技术已验证,商业化未启动
核心获客
Show HN + Homebrew + 文档站
信源GitHub

【这是什么】

Stunt 是一个在本地运行“API 替身”的命令行工具,安装方式是 brew install --cask stuntapi/tap/stunt。执行 stunt demo 后,你会在本地端口得到一个状态完整的 Stripe 风格模拟环境,它返回的 curl 命令是真实可用的:创建一笔费用、再列出它、捕获它,并观察签名后的 webhook 触发到本地接收端。全过程使用合成数据、完全离线,不需要任何 Stripe 账户。

它目前内置 95 个适配器(Stripe、Twilio、GitHub、S3、Salesforce 等),每个适配器由 YAML + 沙箱化 Starlark 处理器 + 合成固定数据组成。适配器运行在 Starlark 虚拟机中,没有主机 I/O 或网络访问,因此安装陌生人的适配器被设计得像安装 npm 包一样安全。状态则保存在引擎原语中:SQLite 集合、KV、blob 存储、HMAC 令牌、带真实提供商签名方案的 webhook 发射器。所有执行是确定性的——可注入时钟、种子随机数生成器。

用作者自己的话概括:WireMock/Prism/MSW 擅长静态和基于 schema 的 mock,而 Stunt 是一个“可运行的替身”——创建、列出、修改、webhook、认证过期、游标分页、状态机,你不需要自己写这些东西。

替身运行链路

【背景 / 谁做的】

作者是 Alessandro(https://polymatto.com/about,X 上 @polyMatto),自称拥有二十多年经验的工程师,从意大利到伦敦,经历覆盖大宗商品交易、市场数据、金融科技、支付、区块链 RPC 基础设施。他说自己“二十多年来一直在集成他人的 API”,但测试的故事从未改善:沙盒账户、CI 中的真实密钥、速率限制、因 mock 与真实行为不符导致的脆弱测试套件。

他构建 Stunt 的直接动机是:想要一个能真正模拟 API 状态行为的本地替身,而不是再写一遍静态 mock 逻辑。这个项目是他发布在 Hacker News 的第一个帖子,他自称预期会“扑街”,并说很快会有更多,可能下一个帖子是“wintty”。

【怎么获客】

Stunt 目前的获客路径基本围绕开发者社区和工具生态:

  • Show HN 首发:直接面向 Hacker News 的高密度技术人群,帖子中给出完整命令行演示,并主动邀请对 Starlark 沙箱安全性“挑刺”,制造讨论点。
  • Homebrew cask 分发:一条命令安装,极大降低试用门槛。对 CLI 工具,安装摩擦越小,转化率越高。
  • 文档站 stuntapi.com:作为产品说明书和后续商业化的入口,承载更多使用场景和适配器列表。
  • 适配器生态策略:如果用户需要的 API 不在 95 个里,可以用 stunt adapter import openapi|har|proto 自建并提交 PR,这实际上是让用户成为贡献者,形成社区增长飞轮。
  • 个人品牌:作者在 X/Twitter 和博客 polymatto.com 上有工程背景背书,Open Source 项目自带“真实经历叙事”,容易引发同类集成工程师的共鸣。

没有看到付费广告或线下销售动作,属于典型的开发者工具早期冷启动。

早期获客链路

【验证情况 / MRR】

截至帖子发布,Stunt 没有公开 MRR 或收入数据。验证主要体现在技术侧和社区早早期反馈:

  • 作者用 CI 驱动真实提供商 SDK 测试适配器,包括 stripe-go、aws-sdk-go-v2(真实 SigV4)、go-github、twilio-go、go-shopify,以及 Node 三件套 stripe-node、octokit、twilio-node。
  • 这套测试框架确实捕获了真实错误:Stripe 金额字段以 JSON 字符串返回,导致类型化 SDK 直接拒绝响应;GitHub 分页 Link 头指向生产环境,octokit 直接跟随到了真实 api.github.com。这是非常有力的技术验证,证明适配器不是纸面 mock。
  • 作者自述是 HN 第一帖,预期“扑街”,说明当前阶段仍以获取早期关注和测试反馈为主,尚未形成稳定的用户规模和商业闭环。

所以,Stunt 目前处于 “真实可用、已验证技术路线、商业化未启动” 的早期阶段。

【对一人公司的可复制性】

这个项目对一人公司具有很高的参考价值,尤其是“一个人如何用有限资源做一件看起来很大的事”。

  1. 用简单原语构建复杂生态:95 个适配器没有用 95 套独立代码,而是统一抽象成“YAML + Starlark + 合成数据”。一人公司应优先找到那个能覆盖长尾需求的“元结构”,而不是逐点实现。
  2. 自动化质量验证代替人工信心:作者没有靠“我手写了很多 mock”来赢得信任,而是让真实 SDK 去跑自己的二进制。这种 CI 驱动的真实验证,是低成本、高可信度的护城河。
  3. 主动限制范围:作者明确“宁愿做好真实集成实际使用的流程,而不是勾选每个端点”。对一人公司来说,克制功能野心、聚焦高频路径,是生存关键。
  4. 安全默认值降低第三方贡献门槛:安装陌生人适配器被设计成安全操作,这直接鼓励了社区 PR。如果 OPC 想借助外部力量扩展产品,必须有一个让贡献者“即使搞砸也不会造成伤害”的安全机制。
  5. 分销渠道极轻:一个 Homebrew cask + 一个文档站,就把产品送到了目标用户手里。OPC 做开发工具,最简单的分发往往是最有效的。
  6. 个人经历是天然营销材料:二十多年 API 集成的痛点,比任何广告文案都有说服力。OPC 创始人自己的职业履历,就是最好的信任状。

但要清醒:95 个适配器的维护压力不是免费的。即使有自动化测试,上游 API 一旦变更,Starlark 适配器仍需持续更新。这是 OPC 复制此模式时要最先评估的成本。

【风险与机会】

风险

  • 适配器维护债:95 个非官方适配器对一人公司是沉重负担。API 变更、字段调整、签名算法变化都会导致替身“失真”,用户一旦发现 mock 行为与真实环境不符,信任立即崩盘。
  • 定位与用户预期:作者承认“适配器是非官方的,且按保真度排名,并非 API 完整覆盖”。这很容易让第一次接触的用户误以为它应该完全兼容所有端点,如果文档/产品内没有反复强调,差评会集中在“某功能不支持”上。
  • 平台依赖:Windows 目前是脚本安装而不是默认 winget 源,会损失一部分企业开发者;Homebrew 分发也只覆盖 macOS 生态。
  • 商业化空白:开源工具要是停留在“GitHub 上有星星”阶段,很难变成可持续收入。Stunt 若没有云托管、企业版、支持合同或付费适配器市场,作者的时间会被维护吞噬殆尽。
  • 法律灰色地带:模拟 Stripe/GitHub 等真实 API 的签名和 webhook 机制,虽然用于测试,但大规模分发时可能存在商标或条款层面的争议。

机会

  • AI Agent 测试的增量市场:AI 编码代理/Agent 必然调用大量外部 API,而本地替身可以在无密钥、无网络的环境中测试 Agent 的 tool 调用路径。Stunt 的状态模拟能力正好契合这一需求,未来可以打出“API Agent 的模拟器”标签。
  • 适配器市场平台化:如果第 96 个、第 196 个适配器都来自社区,Stunt 实际上可以成为一个“API 替身分发市场”。类似 Docker Hub 对容器镜像的角色,谁掌握分发入口,谁就掌握生态。
  • 导入工具是杀手级用例:stunt adapter import openapi|har|proto 允许用户从现有规范自动生成适配器。这意味着 Stunt 不一定要自建全部适配器,而是提供一个“转换引擎”,企业可用自己的 OpenAPI 文档生成内部替身,这直接打开 B 端私有化场景。
  • CI/CD 原生集成:若后续能封装成 GitHub Action、pre-commit 插件或 CircleCI orb,就能嵌入开发者的既有工作流,把一次性试用变成日常依赖。
  • 企业合规需求:很多大公司不希望 CI 依赖第三方沙盒或真实密钥,本地、离线、确定性的替身库有合规价值,可以销售私有化部署方案或企业专属适配器包。

Stunt 目前是一个“小而锋利”的开发者工具,95 个适配器既是负担也是壁垒。这个项目能否从“作者实用工具”变成“OPC 可持续生意”,取决于它能否抓住 AI Agent 测试浪潮,并把适配器生态做成平台。

信息来源:Hacker News

🛠️ 一人公司抄作业指南
  1. 第一步:用 Homebrew cask 打包 CLI,一条命令 `brew install` 完成分发
  2. 第二步:用 YAML 定义适配器元数据 + Starlark 沙箱处理器生成状态行为
  3. 第三步:用 SQLite 集合/KV/blob 与 webhook 发射器实现确定性状态原语
  4. 第四步:用真实 SDK(stripe-go、octokit 等)在 CI 中跑适配器做保真度验证
⚠️ 劝退 / 避坑指南
  • 95 个适配器维护债重,上游 API 变更即失真
  • 平台依赖:仅 Homebrew/macOS,Windows 无默认源
  • 模拟真实 API 签名与 webhook 存在商标/条款争议
  • 无 MRR 与商业化路径,作者时间易被维护吞噬
这篇拆解对你有用吗?