原生 macOS 应用 · 早期预览

读懂 AI
写下的代码。

用 Yenpo 在 Mac 上审阅 Claude Code、Codex 或 Cursor 写的代码:查看 diff,跟到调用方,向 AI Reader 询问一处改动,再点击源码引用阅读上下文。

v0.1.303 · Apple silicon & Intel · macOS 14+早期预览版 · 到期日期 (UTC)

tea-notes-demoYENPO
ts recipe.ts
src / recipe.ts / cupsFor
export function cupsFor(waterMl: number) {
  return Math.floor(waterMl / 200);
}

// Fictional teaching input: 550 ml.
const cups = cupsFor(550);
// cups is 2.
TypeScriptUTF-8 · 源码预览
AI Reader
这些水能泡几杯茶?
回答

只计算完整的杯数。

在这个虚构配方中,每杯使用 200 毫升。550 毫升除以 200 得到 2.75,Math.floor 返回 2。

recipe.ts:1–3
不足 200 毫升时会怎样?
文件、问题与源码引用为此示意独立编写的虚构代码与回答
直接打开本地仓库
回答附带源码位置
改动、提交与分支

让 AI 写,
再看清它改了什么。

diff、编辑器、搜索和 AI Reader 都在同一个窗口里。“本地改动”列出上次提交以来的全部变化;回答里提到哪一行,点一下就能打开。

打开 AI 改的仓库

打开 DMG,把 Yenpo 拖进“应用程序”并启动,选择 AI 正在改的仓库根目录。“本地改动”里就是上次提交以来的变化,不用先配置 AI,就能看 diff、搜代码。

安装与第一个项目

顺着改动往下读

从一处改动出发,跳到它的定义、调用方和相关测试。问 AI Reader 这处改动做了什么,再打开回答引用的代码行,自己核对。

用 AI 代码阅读器审查改动

审查提交或分支

查看单个提交,或者比较两个分支,比如 AI 的分支和 main。读行内 diff,也可以让 AI Reader 帮你找回归问题。对比固定在你选的提交上,并且只读。

Git 对比方式

“这次改动对重试有什么影响?”

假设 AI 刚改完请求客户端,在 Yenpo 里可以这样查:

  1. 打开改动

    打开“本地改动”,或对比 AI 分支和 main,找出涉及重试的文件。

  2. 问改动做了什么

    问 AI Reader:现在哪些调用会重试、最多重试几次、最后一次也失败时会怎样。

  3. 打开引用

    预览回答引用的代码行,再打开 AI 没改过的调用方和测试。

  4. 跑一遍验证

    自己运行相关的测试或命令,确认解释成立。AI Reader 只读代码,不会替你运行。

看一个完整案例

常见问题

不连接模型也能用吗?

能。看本地改动、提交和分支 diff,搜索、读 Markdown、语言服务导航,都不需要模型账号。想用 AI Reader 时,再连接自己的模型服务;可用模型和费用以服务商为准。

需要 AI 时,再连接模型

哪些语言支持代码导航?

Swift、Rust、C/C++、Objective-C、Python、JavaScript/TypeScript 和 Go,各自通过对应的语言服务器提供。rust-analyzer 可以由 Yenpo 安装,其他服务器来自 Xcode 或本机 PATH。具体能用哪些功能,取决于服务器和项目配置。

代码会离开我的 Mac 吗?

浏览和搜索都在本机完成。向 AI Reader 提问时,问题和相关代码会发送到你配置的模型端点,处理受限代码前请先确认服务商的条款。除非你在某一轮允许编辑,AI Reader 只读不写。

下载预览版前需要知道什么?

预览版支持 macOS 14 及以上的 Apple silicon 和 Intel Mac。每个版本都有到期日期,就显示在下载按钮旁边;重装不会重置日期,请在到期前更新。

查看全部功能

用可运行的例子学读代码。

全部文章

先看改了什么,再顺着代码往下读,核对 AI 的解释,最后自己跑测试验证。按你的问题挑一篇

试用 Yenpo EAP

等 AI 下次改完代码,
用它看看。

改动、diff 和搜索打开就能用。想问 AI Reader 时,再连接模型服务商。

下载 EAP

App 界面支持英文、简体中文、繁体中文、日语、西班牙语、巴西葡萄牙语、韩语、德语、法语和俄语。

v0.1.303 EAP · Apple silicon & Intel · macOS 14+到期日期 (UTC)