Show HN: SlimSnap – 标记截图元素,为你的编码代理获取 JSON

HN Indie AI Startups 2026-06-30T09:15:23.743235

针对无法“看见”图像的工具的愿景

一张截图胜过千言万语(像素)。SlimSnap 仅需数百个 token,而且个个精准。

SlimSnap 编辑器将截图转换为结构化 JSON,供你的 CLI 代理读取

减少 55% 的 token:在 Claude Code (Sonnet) 中,每次粘贴截图会消耗 1568 个视觉 token,受 API 上限限制。同一屏幕的 SlimSnap JSON 大约只需 700 个 token。在 Sonnet 上每轮减少约 55%,在 Opus 4.7 和 4.8 上最高可减少 85%。为你的上下文中的代码留出更多空间。

可粘贴到任何代理:Claude Code、Aider、Codex CLI、Cursor、Continue.dev。文本可以到达图像无法到达的任何地方:终端、SSH 会话、CI 日志、git 提交。只要接受文本,就能接受 SlimSnap。

确定性布局:每个元素都以归一化 0 到 1 的坐标给出边界框。你的代理不再需要猜测元素位置。

内置 OCR:内置 OCR 可读取截图中的每个标签、按钮和错误消息。你的代理能看到你所见的文字。

保留在你的 Mac 上:截图和 OCR 均在本地运行。无需上传,无需账号,无需服务器介入。你的屏幕永远不会离开机器。

开放的 MIT 格式:JSON 模式已在 MIT 许可下发布于 GitHub。你可以阅读、验证,或编写自己的导出器。查看模式

{
  "schema_version": "1.0",
  "captured_at": "2026-05-19T18:17:46Z",
  "screen": { "title": "Create your account", "app": "Safari" },
  "image": { "width_px": 1440, "height_px": 900, "file": "signup.png" },
  "elements": [
    { "id": "e1", "type": "label", "value": "Create your account",
      "bbox": [0.34, 0.18, 0.32, 0.06] },
    { "id": "e2", "type": "input", "value": "Email",
      "bbox": [0.34, 0.34, 0.32, 0.07] },
    { "id": "e3", "type": "input", "value": "Password",
      "bbox": [0.34, 0.46, 0.32, 0.07] },
    { "id": "e4", "type": "button", "value": "Sign up",
      "bbox": [0.34, 0.60, 0.32, 0.07], "color": "#3B82F6" }
  ],
  "annotations": [
    { "id": "a1", "type": "arrow", "to": "e4", "intent": "highlight" }
  ],
  "estimated_tokens": 318
}

常见问题

为什么不直接把截图粘贴到 ChatGPT 里?

对于一次性问题,你可以这样做,也应该这样做。但终端代理(如 Claude Code、Aider、Codex CLI)不接受图片。SlimSnap 解决了这个问题。在长时间的迭代会话中,它也更便宜(在 Sonnet 上每轮减少约 55% 的 token,在 Opus 4.7 和 4.8 上最高减少 85%),并且当代理需要对特定元素进行推理而非凭感觉时,它也更加可靠。

它会将我的截图发送到服务器吗?

不会。OCR 在你的 Mac 本地运行。捕获内容永远不会离开你的机器。

实际节省了多少 token?

根据 Anthropic 的视觉文档,单张截图会被缩小并在 API 中按每张图片的上限计费:Sonnet 和 Haiku 约为 1,568 token,Opus 4.7 和 4.8 最多可达 4,784 token。典型的 SlimSnap 导出为 600 到 800 token。在 Sonnet 上每轮约减少 55%,在 Opus 上最高减少 85%。在长时间的迭代会话中,这种减少会累积叠加。

它是开源的吗?

JSON schema 是开放的(MIT 协议,在 GitHub 上)Claude Code skill 也是开放的。Mac 应用是闭源的。

Claude Code skill 如何找到我的捕获内容?

标题:Show HN:SlimSnap – 标记截图元素,获取 JSON 供编码代理使用

原文:
SlimSnap 在启动时以及每次设置变更时,会在 ~/.slimsnap/config.json 写入一个小型配置文件。该文件仅包含默认保存文件夹和文件名模式,别无其他。技能(skill)会读取该配置,列出文件夹,并将最新的 JSON 文件加载到代理的上下文中。所有路径均为动态。如果你更改了 SlimSnap 的保存位置,技能也会随之适应。完整演练:The Claude Code skill that turns a screenshot into a fix(将截图转化为修复的 Claude Code 技能)。

使用该技能是否必须依赖 Mac 应用?

不需要。该技能适用于任何有效的 SlimSnap JSON 文件。Mac 应用是生成这类文件最简便的方式,但该模式采用 MIT 开源许可,因此你可以手写 JSON、从其他 OCR 管道生成,或在 Windows/Linux 上构建自己的导出器。技能并不关心 JSON 的来源。

与原始图像相比,JSON 是否会丢失信息?

针对元素级别的操作,JSON 更胜一筹。JSON 携带每个元素的文本、位置、颜色和边界框,这正是代理修改特定元素所需的信息。它丢失的是像素层面的美学信息:渐变方向、留白感觉、品牌氛围。因此,对于“修复这个特定元素”的迭代任务,JSON 更可靠。对于“这个应该长什么样”的探索性任务,请粘贴原始图片。你也可以同时发送两者。

将截图裁剪得足够紧是不是就够了?

裁剪不会改变成本。无论裁剪得多小,每张图片的 token 上限是固定的,而且裁剪后的内容仍然是代理需要解读的像素。SlimSnap 直接提供实际的文本、元素和坐标,因此代理能够推理“第三个卡片中的第二个输入框”,而不是从图片中猜测。

它在深色模式下的 UI 上能正常工作吗?

可以。OCR 和元素检测在深色模式下的表现与浅色模式相同。极低对比度的主题是一个值得检查的边缘情况,但终端、Slack 和 Linear 等深色界面处理方式相同。

不是在 Mac 上?

SlimSnap 目前仅支持 Mac。想要 Windows 或 Linux 版本?请发送邮件至 hi@slimsnap.ai 告诉我们。收到的请求越多,我们就越快推出相应版本。

查看原文