@coldtea/pr-lens-cli

中文文档
0.15.1发布于 2026/11/08MITES Module近 30 天下载 3.3万

PR Lens命令行:将拉出请求 diff 转换成带有您自己的模型键的 schema-valid 图形,渲染出,并作注释.

中文使用文档
文档目录12 节
  1. 把钥匙拿来
  2. 档案到哪里去了
  3. 命令
  4. analyze
  5. render
  6. comment
  7. validate
  8. export
  9. canvas
  10. auth
  11. 惩戒
  12. 失败

@koltea/pr-lens-cli (英语)

PR Lens在命令线上. 它读出一个有你自己的模型钥匙的diff, 检查结果与合同, 并给你拉出请求的评论.

麻省理工学院 Coldtea AI.

npx @coldtea/pr-lens-cli analyze --base origin/main

把钥匙拿来

仅 analyze 与模型交谈; render, (中文(简体) ), comment, (中文(简体) ), validate, (中文(简体) ), export 财务报告和审定财务报表 canvas 从来没有 它的钥匙是从环境读取的,从不从一面旗帜读取:一面旗帜在外壳历史和任何CI运行的日志中登陆. diff去你名字的提供商那里 没有其它的地方: 这条路没有PR Lens服务.

export GEMINI_API_KEY=…      # Gemini is the default, not a requirement
pr-lens analyze --base origin/main --head HEAD

采用了三种要求形状,而不是供应商名单:

--provider终点密钥
gemini (默认)Google 自己的 API 软件GEMINI_API_KEY
openaiOpenAI 自己的 APIOPENAI_API_KEY
openai-compatible随便你怎么说 /chat/completions,由 --base-urlOPENAI_API_KEY

DeepSeek, Anthropic 的相容性终点 OpenRouter, Ollama 和 lama.cpp 都通过指向到达 --base-url 新的卖家不需要放人 OpenAI 与复制它的服务器分开列出, 因为两者已经漂移: 它将输出限制重命名为 max_completion_tokens 及其新模式拒绝 max_tokens,这是其他人唯一知道的拼写。 没有字段两个都接受,所以你说你是在跟哪个终点说话,而不是从主机名里猜出CLI.

默认情况下,每个提供商都会得到温度为0,所以同样的diff往往会绘制出相同的图. OpenAI 的推理模型只接受自己的默认并拒绝设置其它值的请求:通过 --temperature default 没有发送,或 --temperature <n> 对于另一个值.

对于 /chat/completions,CLI发送 response_format: { type: "json_object" } 默认。 过 --response-format none 如果您的端点拒绝 JSON 模式,或者 --response-format json_object 明确提出要求。 此选项仅适用于 openai 财务报告和审定财务报表 openai-compatible 供养者. CLI 验证了图表,可以请求两种模式中的一种更正.

克劳德通过 --provider openai-compatible --base-url https://api.anthropic.com/v1,通过 --temperature default --response-format none。 。 。 .

pr-lens analyze --base origin/main \
  --provider openai-compatible \
  --base-url http://localhost:11434/v1 \
  --model qwen3-coder \
  --api-key-env OLLAMA_KEY

档案到哪里去了

analyze 财务报告和审定财务报表 render 写入 .pr-lens/ 在当前目录中,并添加了第一个写入 .pr-lens/ 到仓库 .gitignore 并附带一个 README , 表示目录所持有的内容 .

皆无所执. SVG,文档和运单在任何人需要时都会从diff中重建出,一个几个月前合并的拉出请求的图比没有图更糟糕. 想要持续下去的是对拉动请求的评论和地图 export 写作.

--out 覆盖每个命令上的位置。 指向别的地方 公关灯离开你 .gitignore 单曲:该目录由你决定.

canvas 再留一个档案, .pr-lens/canvas.json,它保存着每张画布的写符 。 这是目录中无法重建的一个文件,也是目录被忽略的一个更大的原因.

命令

analyze

Diff in, 图文档出.

pr-lens analyze --base origin/main --pr 42

文件落在了地上 .pr-lens/graph.json 除非 --out 说不然.

基站是两个裁判的合并基站,不是基站分站的尖端:一个diff对尖,会将基站分站起后对基站分站的每次更改都归咎于这个拉出请求.

承诺shas,寄存器,拉取请求号以及行数从寄存器本身被填入,模型在那里所写的任何东西被丢弃. 模型可以自由重述的事实,是最终与自己有分歧的事实.

答案与合同相符。 如果它失败,验证错误,路径和所有,返回模型一次,只有一次:一个不能在一回合中固定一个被命名路径的模型不能在三回合中固定. --dry-run 报告会寄送什么 并发送什么.

render

pr-lens render .pr-lens/graph.json

将文档绘制为自成一体的光和暗 SVG (每个钻下部分每镜片一对,或者在文档没有段落时每镜片一对),并写出相邻的两个文件: manifest.json,上面写着画什么 和文件名称 drawn.graph.json,这些图片实际上显示.

一张有行走通道的文档也得到行走通道的嵌入,光和暗地:作为一出动画的SVG的巡演,它飞出同条条画布所铺出,走出同条道并步入同道,每一步的字幕都在上面. 它在图像显示和不需要脚本的地方播放,因此拉出请求的注释可以携带巡演本身而不是静态和链接. manifest.json 列出对在 walkthroughA级 --theme neutral 渲染不画,因为嵌入物坐落在页面的自有颜色上,中性渲染是用于一个不能说出是什么的表面.

两者都关系紧要 清单是 comment 得到它的文件名,所以两个命令都无法重新定义对方的文件名. 还有 drawn.graph.json 之所以存在,是因为这里是应用了更正的地方:排除一个节点可以将整个钻入到下行的区段取出,而渲染器则不为它绘制图片。 该文件的评论 内 将会宣布一个没有结果的部分.

SVG没有脚本,也没有外部参考,同一文档每次都会给同一个字节. --theme light 或者说 --theme dark 取出一对.

制作者还交出地图册,说明每一条道、节点、边缘和出行台阶在每一幅图片上落地. render 财务报告和审定财务报表 export 没有为此写入文件。 SVG和运单是需要评论和画布的,旁边的坐标文件是第二份几何图案,以保持同步。 一个程序想要盒子打电话 @coldtea/pr-lens-renderer 直接说.

comment

pr-lens comment --graph .pr-lens/<drawing>/drawn.graph.json --manifest .pr-lens/<drawing>/manifest.json \
  --asset-base-url https://raw.githubusercontent.com/owner/repo/pr-lens/42

构成下划线 <picture> 在 GitHub 主题、 标题芯片、 嵌入式 <details> 和打印出来。 当运单上列出行走通道嵌入时,评论会播放该建筑仍然站在那里,因为巡演在该图片上打开;而GitLab和Bitbucket保留了静态,因为嵌入通道没有中性渲染. 每个图链接到自己:一个评论栏宽约830像素,一个有数个道的系统是数倍,所以它到达时会缩放到相合处,一击就会给一个读者一个被画出标签的大小. 这两个文件必须属于对方:显示文件的散列记录,不匹配的一对被拒绝,而不是被编成一个描述无人绘制的图表的评论. 它不张贴;张贴是打电话者的事 --print-marker 给呼叫者一个隐藏的标记,该标记将识别一个需要更新的现有注释.

validate

pr-lens validate .pr-lens/graph.json .github/pr-lens.yml

解析图表文档,补丁文档,制作明细表和配置,JSON或YAML,并报告每个问题,而不仅仅是第一个问题. 没有的文件 kind 字段被读取为配置,因为一个配置是一个人手写的四个字中唯一的一个.

export

pr-lens export .pr-lens/graph.json -o .github/pr-lens.map.json

一旦拉请求合并后,将拉请求文档转换为系统映射:删除的元素被丢弃,连同所挂起的边缘和流阶;其余部分被附加注释后,行走会随所记的更改而去,结果被印有其反映的单项承诺.

地图是快照,不是真相的来源. 没有任何东西把它读回管道中:一个承诺的地图,如果推翻推断,就会随着合并冲突而发生手持腐烂。 交给它 这样一个寄存器 就可以读取 diff 和交出一个代理.

canvas

pr-lens canvas push

将文档放入 prlens.dev 作为画布: 任何您与它共享的可以读取的页面, 一个 README 可以嵌入的 SVG .

push 发送 JSON 文档, 绝不是 SVG; 应用程序绘制它 。 拿来 drawn.graph.json 已写出一个参数,所以页面显示图表显示的内容。 抽一张支票就一空了 push 找到它;它用几个来列出它们,并询问哪些.

文档的第一推就是薄荷画布,之后的每一推都更新了同一张. 它与文档来自的路径相匹配,或者在画布上没有记录路径点时,与文档的标题相匹配. 标题比对是什么 pull, (中文(简体) ), render, (中文(简体) ), push 回到你画的画布上:拉来写出源文件, 渲染者写出画作在别处, 只有一条可以成为记录的路径。 因此,一个经过修正的图表变成了对其画布的新修改,而不是近似地复制. 因为 render 给每个绘制以标题命名的目录,第二个图得到自己的路径和自己的画布,而不需要您要求. --canvas <id|name> 选择一张画布进行一推 --name 表示新名称;文档的标题为默认. 它印出视图的链接,被嵌入,以及再次取出的方法:

✓ https://prlens.dev/c/{id} — rev 1 · 4 diagrams
  unlisted: anyone you share it with can open it, no sign-in needed
  README embed: https://prlens.dev/c/{id}.svg
  remove: pr-lens canvas delete

视图链接是共享的链接. 编辑链接是同一页,片段里有写符,持有它的人可以推过你的画布,所以它会留在你身边. 嵌入是英雄图作为SVG,用于README或维基.

一张画布会播放文件的走行部。 应用检查每个步骤 解决它绘制的图表, 和拒绝的推力 到达这里作为 CANVAS_REJECTED 背负着应用程序自己的词,而不是一般的失败.

更改画布时,会使用其写作符或签入符作为它的主人. CLI 发出此退出时的写符, 因为其工作是否签名 。 第二台笔记本电脑,一个新鲜的CI跑车,或者一个从未拉起编辑链接的取出机会发送账户代号. canvas claim 仅接受写出符号,因为声称是画布如何首先获得一个所有者.

pull 通过视图链接或赤裸的id将文档取回 .pr-lens/graph.json 除非 -o 并记录修订版。 拉起编辑链接, 结束于 #w=…,其标志也被记录下来:这就是新离职,或者输掉 .pr-lens/canvas.json把画布拿回来 推力带有它最后看到的修改,一个被超越的被拒绝而不是应用:拉力再推.

rotate 薄荷新作"活活" 退去旧作"活活". 当编辑链接被泄露时使用 。 CLI在发送请求前会保存新符号,因此如果连接下降,下个命令会完成旋转而不是丢失符号. 信物就住在这 .pr-lens/canvas.json被画布 id 键入, 和git忽略它。 丢掉那个文件, 画布仍然可以被每个人读取; 再次推向它需要符号, 编辑链接仍然带有这个符号 .

delete 删除主机画布:文档,其每一修订版,以及从中抽取的图像,一次并永远地取出. 它需要写符,像 push。本地图表和 SVG 文件保留在原地.

画布是系统标记的地图,所以在推出它之前,问它去了哪里是公平的。 简短的答案是:它可以由任何你分享它的人打开,而没有人打开,它从来没有被列出或索引,它被保存在欧盟,直到你删除它为止,除了画出页面之外,它没有做任何事情. 长的答案是 每一个公司 和每个区域运行 隐私政策。 。 。 .

书记处写着一个锁 .pr-lens/canvas.json.lock。CLI从不移除另一个命令的锁。 如果命令已死而留下一个,则错误会命名其进程 ID,您自己删除文件 .

CLI拒绝将注册书写在git可以执行的地方. 如果有检出轨迹 .pr-lens/canvas.json 或无标志物 .pr-lens/,命令失败 CANVAS_REGISTRY_EXPOSED 写什么.

--api 在另一个 PR Lens app 的分数, 或设置 PR_LENS_API_URL。CLI和应用程序之间的协议是五条路线和一个错误信封,写入 帆布 API 合同 这样一来一个私人服务器就可以回答它,文档就留在您的网络上.

auth

pr-lens auth login

把这台机器签了 所以它推动的画布属于你的账户 已签名, 它们是未列出的页, 只有链接才能到达 . push, (中文(简体) ), pull 财务报告和审定财务报表 render 所有的工作都签了, 永远会.

它打印出一个代码并打开浏览器. 代码在链接中行走,所以你从不键入;检查它是否与页面上的代码匹配:

  Code WDJB-MJHT · opening https://prlens.dev/device?code=WDJB-MJHT
  Check the page shows the same code, then approve. The code lasts 15 minutes.
  Waiting for it…

批准将这台机器链接到你的账户上 每个画布 机器已经推 成为你的, 所有它推 之后. --no-browser 打印链接,而不是打开链接,对于一个通过SSH到达的机器.

status 说这台机器是签到哪台的 然后问它是否还在工作. --json 对脚本给出相同的答案。 既不印相相相. 当应用程序无法到达时, status 说它不能检查; 它不称登录坏.

logout 忘记了这台机器上的签注 机器保持连接 所以它推动的帆布保持你的 要从您的账户中移除机器, 请使用应用程序的设置 ; 从一个被移除的机器再次签名, 将它连接回 .

报到者住在 ~/.config/pr-lens/auth/,每个应用程序一个文件,并且可以单独读取,所以一个机器可以同时被签入prens.dev和一个私人商店. PR_LENS_TOKEN 覆盖它,这就是没有浏览器的 CI 签名的方式. 行动 把它当作它的 token 输入.

惩戒

仓库的 .github/pr-lens.yml 自动取出 render 且在平时适用:更名、排除、道标、组合。 这是一种重叠:推论从不回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回往回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回往回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回.

schemaVersion: 0.1.0
map:
  rename:
    - match: functions/src/broadcast/sendBroadcastBulk.ts
      to: Broadcast sender
  exclude:
    - "**/*.test.ts"

车道指针可以指: 车道,文档从未声明; 乐队被创建并取出ID作为其标签. 还有 render 报告任何对它所画的东西没有任何改变的更正。 一个已经漂移的配置,通常因为一个被命名的选取者已经移动的文件,否则会默而永远地失败.

--config 其他点和 --no-config 忽略它,在两个 render 财务报告和审定财务报表 analyze。 。 。 . analyze 只读 lenses 从它,因为哪个镜片填充 是一个取出的问题, 其余是一个绘图的问题.

失败

每一次失败都带有代码,所以脚本可以在上面分出: USAGE, (中文(简体) ), UNREADABLE_FILE, (中文(简体) ), UNKNOWN_DOCUMENT, (中文(简体) ), INVALID_DOCUMENT, (中文(简体) ), GIT_FAILED, (中文(简体) ), EMPTY_DIFF, (中文(简体) ), REPOSITORY_UNKNOWN, (中文(简体) ), MISSING_API_KEY, (中文(简体) ), PROVIDER_FAILED, (中文(简体) ), MODEL_OUTPUT_INVALID, (中文(简体) ), RENDER_FAILED,用于 canvas数字 : CANVAS_UNREGISTERED, (中文(简体) ), CANVAS_UNKNOWN, (中文(简体) ), CANVAS_CONFLICT, (中文(简体) ), CANVAS_REJECTED, (中文(简体) ), CANVAS_RATE_LIMITED, (中文(简体) ), CANVAS_UNAVAILABLE, (中文(简体) ), CANVAS_REGISTRY_EXPOSED,用于 auth数字 : AUTH_REQUIRED, (中文(简体) ), MACHINE_REVOKED, (中文(简体) ), APP_UNAVAILABLE. 滥用出入口2,其他所有出入口1.


部分 PR 镜头审查什么才是真正重要的.

版本与发布记录

@coldtea/pr-lens-cli 共发布 26 个版本,首次发布于 2026/08/23;过去 12 个月发布了 26 个版本。

版本发布日期距今
0.15.1latest2026/11/082 天前
0.15.02026/11/082 天前
0.14.02026/10/2714 天前
0.13.32026/10/2615 天前
0.13.22026/10/1723 天前
0.13.12026/10/1723 天前

其他发布通道:next → 0.10.0。

关于 @coldtea/pr-lens-cli 的常见问题

@coldtea/pr-lens-cli 是什么?

PR Lens命令行:将拉出请求 diff 转换成带有您自己的模型键的 schema-valid 图形,渲染出,并作注释.

如何安装 @coldtea/pr-lens-cli?

在项目目录运行 npm install @coldtea/pr-lens-cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 pr-lens,可以用 npx pr-lens 直接运行。

@coldtea/pr-lens-cli 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/coldtea__pr-lens-cli 是否存在。

@coldtea/pr-lens-cli 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@coldtea/pr-lens-cli 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.11。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@coldtea/pr-lens-cli 可以商用吗?

@coldtea/pr-lens-cli 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@coldtea/pr-lens-cli 的下载量有多少?

根据 npm 官方下载统计,@coldtea/pr-lens-cli 在 2026/10/11 – 2026/11/09 这 30 天内被下载 33,024 次,日均约 1,101 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@coldtea/pr-lens-cli 还在维护吗?

最新版本 0.15.1 发布于 2026/11/08(2 天前);至今共发布 26 个版本,其中过去 12 个月发布了 26 个;首次发布于 2026/08/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。