使用 Ferret

项目与 URL

项目就是一个文件夹(通常是仓库的根目录)。每个项目都保存自己的 URL,因此本地、开发和生产环境只需一次点击即可切换。

#添加项目

  1. 使用 文件 → 打开项目文件夹…(⌘O / CtrlO)、侧边栏中的 添加项目,或标题栏项目菜单中的 添加项目…。
  2. 选择项目的来源:
    • 在这台电脑上:选择一个文件夹。
    • 从 GitHub / GitLab 克隆:从你的仓库中选择一个(通过你的 gh 或 glab 登录列出),或粘贴 URL,再选择父文件夹,Ferret 会克隆并打开它。
    • 通过 SSH 打开:从 ~/.ssh/config 中选择一个主机。终端和 Agent 在远程机器上运行;审查保存在这台电脑上。

名称默认是文件夹名。添加一个已登记的文件夹时,会直接打开它(在 macOS 和 Windows 上,路径比较不区分大小写)。在侧边栏菜单中可以对项目执行 重命名 或 从列表中移除。移除绝不会删除文件夹。

终端在项目文件夹中打开,审查保存在 <project>/.ferret/ 下。

#保存 URL

  1. 在内置浏览器中打开页面。
  2. 点击浏览器工具栏中的 +(保存当前 URL)。当前 URL 会预先填好。
  3. 输入 名称,然后点击 保存。

每个保存的 URL 在 审查内容 下都有一个类型:应用(你正在开发的应用)、设计(Figma、Penpot、Canva、原型)或 文档 / 规格(Google Docs、Notion、Confluence、GitHub 上的 Markdown 规格、PDF)。类型会根据 URL 推断,你也可以更改。请参阅不只审查代码,也审查设计和文档。

只接受 http:// 和 https:// URL。对于应用 URL,如果保留建议的名称,它会根据主机推断:

主机名称
localhost、127.*、::1、0.0.0.0、*.localhostlocal
包含 dev、develop、developmentdev
包含 stg、stage、stagingstg
其他任何主机prd
浏览器工具栏中保存的 URL
浏览器工具栏中保存的 URL

#审查对象面板

在不停止录制的情况下切换审查对象和页面。

在反馈模式下,右侧的 审查对象 面板会列出当前项目中所有可以审查的内容。切换对象不会停止录制。可以用 显示 → 显示 / 隐藏审查对象(⌘⇧K / CtrlShiftK)或 隐藏面板 来切换面板。

  • 目标:项目中保存的 URL。每个 URL 下方是你在该站点访问过的页面树。访问过但未保存的站点会作为单独的分组显示。
  • 文件:项目文件夹。文件以预览方式打开(渲染 Markdown 和 Mermaid,其他文本为只读),因此也可以审查文档。铅笔图标(在编辑器中打开)会在编辑器中打开它。

筛选对象 会同时筛选目标、页面和文件,模糊匹配方式与 转到文件… 相同。在列表中,按 ↑ ↓ Enter 或 1–9 切换对象。打开 URL… 用于临时打开一个 URL,保存到项目 URL 会把它保存下来。

目标来自 settings.json 中的 projects[].urls(参见示例)。每个条目需要一个 url、一个 launchCommand(在终端中运行,例如用来启动桌面应用)或一个 windowMatch(要录制的窗口),还可以带一个 purpose(app、design 或 doc)。选择窗口类目标会把它设为录制来源,因此录制过程中无法这样做。访问过的页面按项目记住,仅保存在这台机器上(最多 200 个)。

#打开和切换环境

点击保存的 URL 即可打开。如果当前页面位于另一个已保存的 URL 下,Ferret 会保留路径、查询参数和哈希,只替换源(origin)。例如在 http://localhost:3000/pricing?plan=pro 上点击 prd,会打开 https://example.com/pricing?plan=pro。

与当前页面匹配(最长前缀)的标签会高亮显示。右键点击标签或使用其铅笔图标,可以编辑或 删除 它。项目打开时如果没有上次的 URL,会载入它的第一个已保存 URL。

标签按类型分组:先是应用 URL,然后是设计,最后是文档,每种类型之间有分隔线和图标。切换到设计或文档(或从它们切换回来)时,会按原样打开保存的 URL,不会沿用路径。

#不只审查代码,也审查设计和文档

反馈不一定针对代码。任何能在内置浏览器中打开的内容,都可以用同样的方式录制并用画笔标注:Figma 或 Penpot 设计、原型、Google Docs 或 Notion 中的规格、GitHub 上的设计文档、PDF。在审查之前,把这些 URL 保存到项目中,和 local、dev 放在一起。

  1. 从侧边栏菜单打开 编辑项目…(或点击浏览器工具栏中的 +),然后点击 添加目标。
  2. 粘贴 URL。figma.com 链接会成为 设计,docs.google.com 或 notion.so 链接会成为 文档 / 规格,名称分别为 Figma 或 Spec。如果推断有误(例如放在你自己服务器上的原型),请在 审查内容 下更改类型。
  3. 打开该目标;如果网站需要登录,在内置浏览器中登录一次即可。内置浏览器会在多次启动之间保留 Cookie,因此你会保持登录状态。
  4. 照常录制:一边说话,一边指点,在设计或文档上画出标注。

在设计或文档上录制的反馈,会在 反馈 标签页和 feedback.md 中标上对应的类型,发送给 Agent 的指令也会说明这一点。于是 Agent 会修改设计或文档,而不是代码:

  • 如果文档就在项目中(Markdown 规格、ADR),Agent 会编辑该文件。
  • 如果 Agent 无法编辑它(Figma 文件、Google 文档),Agent 会把这条反馈标为 Agent 提问,并写明需要做的具体修改,由你来应用或转交给他人。

示例:在 Google Docs 中阅读价格规格时,你圈出套餐表并说“Pro 套餐现在是 9,800 日元,不是 8,800”。feedback.md 会把这条反馈列在 Spec 目标下,并标注 Kind: document;Agent 会给出规格中修正后的句子,而不会去改价格页面的代码。如果在同一次录制中同时录下规格和运行中的应用,反馈会按目标分开,Agent 就可以先更新规格,再更新实现它的代码。

figma.com、docs.google.com、notion.so 等主机上未保存的页面同样能被识别。项目文件夹中的文件(Markdown、Mermaid)可以在 审查对象 面板的 文件 列表中审查。

在 GitHub 上帮助翻译此页 (在新标签页中打开)