mcpField
R
Repowise

Repowise

本地服务
repowise.dev开发工具8.0k今天更新

关于 Repowise

Repowise 是面向编码 Agent 的代码库索引与分析 MCP 服务,可在本机整合代码、Git 历史、测试和决策信息,供 Agent 查询,也提供仪表板查看结果。它通过代码图谱和确定性分析支持变更风险、测试影响和代码健康检查。

主要功能

  1. 01索引代码、Git 历史、测试与决策
  2. 02提供代码调用图和架构视图
  3. 03分析变更影响、风险及相关测试
  4. 04评估代码健康并识别死代码
  5. 05精简命令输出并保留错误行
  6. 06通过 MCP 提供代码库查询工具

适用场景

  1. 01评估修改文件可能影响的调用方
  2. 02为代码变更筛选相关测试
  3. 03查找优先修复项与未使用代码
  4. 04在 Agent 中查询代码结构和项目决策

MCP 相关

Repowise 通过 `repowise serve` 启动 MCP 服务,向编码 Agent 暴露十种面向任务的代码库查询工具。MCP 查询使用本机索引数据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dev-repowise-repowise": {
"command": "uvx",
"args": [
"repowise"
]
}
}
}
启动命令uvx repowise

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypirepowise0.59.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

English | 简体中文

repowise:为你和编码 Agent 提供代码库智能

别再花钱让 Agent 重新阅读代码库。

Repowise 会在你的机器上一次性为代码、git 历史记录、测试和决策建立索引。
你的编码 Agent 会查询索引,而不是用 grep 搜索并打开文件,因此工作量能减少约一半。
你也能在仪表板中获得相同的答案:哪些内容会调用它、哪些内容会出问题、应该先修复什么,以及原因。

一行命令完成设置 打开 Repowise 在线演示

工具调用减半
Agent 现在只打开 3 个文件,而不是 7 个 · 输出减少 31.6%
噪声最多减少 99%
适用于测试运行、安装和 git 输出 · 保留每一行错误信息
88% 的目标文件
一次调用即可找到 · 次优工具:61%

了解代码,知道哪些地方会出问题,修复重要问题。本地仪表板会绘制代码库架构,显示所有导入你即将修改文件的文件,通过代码健康地图对优先修复项排序,连接不同代码库中的服务,并用图表回答问题。

图谱、风险、健康度、测试和死代码分析不会调用大模型 · 建立索引无需 API 密钥 · 支持 28 种语言 · 兼容 Claude Code、Codex、Cursor 和任何 MCP 宿主 · 免费且开源

探索 Repowise 自身的代码 Repowise 代码健康度 PyPI 版本 许可证:AGPL 3.0

快速开始 · 为你的 Agent 提供支持 · 功能 · 托管版 · 基准测试 · 团队 · 文档


一行完成设置

在你的代码库中打开 Claude Code、Codex、Cursor 或任何支持 MCP 的 Agent,然后粘贴:

Read https://docs.repowise.dev/setup.md and set up Repowise in this repository.

Agent 会安装 Repowise,无需 API 密钥即可为代码库建立索引,连接到该索引,并在任何操作需要付费前征求你的同意。手动操作步骤:

uv tool install repowise          # or: pipx install repowise / pip install repowise
cd /path/to/your/repo
repowise init --yes --no-prose    # graph, git, health, dead code, docs. No key, no spend.
                                  # (add model-written docs any time with: repowise generate)
repowise serve                    # dashboard + MCP server (needs Node 20+; first run downloads the UI)

重启 Claude Code 或运行 /mcp,然后询问 “如果我更改 src/auth.py,会有什么问题?” 或 “使用 Repowise get_overview 总结此代码库。” init 会为此代码库配置 Claude Code,并将全局 repowise MCP 条目指向这里。 查看每种 Agent 的完整设置指南 →


让你的 Agent 不再猜测

没有索引时,Agent 每次执行任务都要重新探索你的代码库:搜索、打开一个文件、再打开另外三个文件、再次搜索。Repowise 会提前解答这些问题,让 Agent 只需询问一次,就能继续工作。

在对 django/django 进行的一次实测中,使用 Repowise 的 Agent 只调用了 3.8 次工具,而非 7.2 次,只打开了 3.0 个文件,而非 7.2 个,写入内容减少了 31.6%,且答案质量不变。在我们测试的五种上下文工具中,它节省的最多。在小型本地模型上,输出量最多可减少 47.9%。 查看测量方法 →

  • Agent 可使用十种面向任务的 MCP 工具。一次询问多个文件,即可在一个答案中了解调用方、风险、测试、负责人以及代码背后的原因。 查看工具列表 ↓
  • 命令噪声最多减少 99%。 repowise distill 会在 Agent 读取测试、安装和 git 输出前对其进行精简,同时保留所有错误行。 了解 Distill →
  • 在 Agent 提问前提供上下文。 可选的 钩子 会提醒 Agent 避开脆弱文件和过时路径,Repowise 还会根据索引保持 CLAUDE.md 和 AGENTS.md 更新。
  • 查看节省情况。 repowise saved 和仪表板的“使用量与节省”页面会统计 Agent 无需再读取的令牌数。

它能做什么

一份代码、代码历史和决策的统一索引,可用于三种场景:理解代码、安全地修改代码,以及持续改进代码。

架构图:每个文件都按社群分组,并以条带显示社群之间的强关联
了解各部分如何协同
涵盖 28 种语言的调用图、可交互探索的架构图、C4 视图,以及为每个模块和文件生成的 Wiki。
图谱 · 文档
架构图上选中的文件及所有导入该文件的高亮文件,检查器中显示其排名和邻接文件
了解哪些地方会受影响
查看你修改内容的所有调用方、通常会与之一起修改却未包含在差异中的文件,以及能够访问它的测试。
变更风险 · 测试
代码健康度图:每个文件夹都以一个圆盘表示,颜色代表健康度;侧边栏列出评分最低的文件及需要关注的内容
修复最重要的问题
为每个文件提供 1 到 10 的健康度评分,并根据真实缺陷历史进行验证;还提供按优先级排列的优先修复队列、重构计划和死代码信息。
代码健康度 · 重构
工作区系统图:展示三个代码仓库中的服务,以及服务之间的健康度、HTTP 和数据契约
跨代码仓库追踪
查看服务及其间的 HTTP、gRPC 和事件契约,并使用防护机制检查破坏性变更及其影响的使用方文件。
工作区
聊天回答列出代码仓库中风险最高的文件,并说明每个文件的风险原因
有问必答
获取附带引用和图表的仪表盘回答,也可以通过 MCP 为你的 Agent 获取相同的回答。
仪表盘 · MCP 工具
为代码仓库生成的 Wiki 页面,包含摘要、系统图和页面大纲
记录决策缘由
从 ADR、注释、提交、PR 和 Agent 会话中提取决策,并将每项决策关联到其约束的代码;还会检查文档与代码是否一致。
决策 · 文档偏差
它能回答的所有问题 ### 理解代码
你问Repowise 为你提供
这个仓库中的结账流程是怎样的?一次调用即可获得基于调用图和生成文档的引用答案。搜索与回答
哪些地方会调用这个函数?它又会调用哪些地方?覆盖 28 种已解析语言的调用图,每条边都标明解析方式和可信度,还有从每个入口点追踪的执行流程。图
能为这个代码库生成文档吗?为每个模块和文件生成 Wiki,根据代码结构渲染,无需密钥;也可以由你选择让模型撰写。每次提交后都会增量更新。文档
哪些文档有误?根据代码树检查 Markdown:找出所有引用代码中已不存在的文件或符号之处,并指出需要编辑的行。文档偏差
为什么要这样构建?从 ADR、# WHY: 注释、提交和 PR 历史以及你的 Agent 会话中提取决策,将每项决策关联到其适用代码,并在其过时后发出标记。决策
谁了解这段代码?代码所有者、公交系数、主要作者沉寂时逐渐淡化的所有权信息,以及建议的审阅者。所有权
能查看架构吗?可交互浏览的依赖关系图、C4 视图和 Structurizr 导出,无需模型参与。仪表板
安全地进行更改
你问Repowise 为你提供
更改这个会导致什么问题?符号级影响范围:你所更改内容的调用方、历史上常与其一同更改但未包含在差异中的文件,以及会触达该内容的测试。更改风险
这个 PR 风险有多大?将此次更改与仓库近期提交进行比较后的排名及原因,并以 Agent 可执行的指令形式呈现。更改风险
应该运行哪些测试?实际覆盖差异内容的测试:有覆盖率报告时依据报告;没有时则依据调用图。测试智能分析
这个 PR 是否新增了未经测试的代码行?补丁覆盖率、更改行的分支覆盖率,以及在 GitHub、GitLab 或任何运行器中设置的路径范围门槛。CI 门槛
这个 API 更改会破坏另一个仓库吗?跨仓库匹配 HTTP、gRPC、主题和 OpenAPI 契约,并提供破坏性更改防护以及受影响的使用方文件。工作区
还有其他人在编辑这些文件吗?列出其他触及相同文件或共同更改文件的开放分支,并说明列出每个分支的原因。分支重叠
我们刚刚提交了密钥吗?在工作树和完整 Git 历史中查找密钥、令牌及高风险调用,并提供提交前检查和 CI 门槛。安全信号
持续改进
你问Repowise 为你提供
我们应该先修复什么?按影响与投入排序的待办队列,并综合考虑代码变更频率、扇入度、覆盖率和缺陷历史。优先修复
技术债在哪里?根据 53 种确定性检测器,为每个文件打出 1 到 10 分,并细分为缺陷风险、可维护性和性能,且根据真实缺陷历史进行验证。代码健康度
为什么这么慢?追踪跨函数和文件边界的 N+1 查询、循环中的 I/O、异步代码中的阻塞调用和二次复杂度循环。性能
如何安全地拆分代码?提供具体的重构计划:提取方法、提取类、移动方法、拆分文件、打破循环依赖,并指出要移动的确切符号以及随之移动的内容。可直接交给 Agent。重构
哪些内容可以删除?不可达的文件、未使用的导出和未使用的包,每项都附有置信度等级及其依据。死代码
缺陷总是出现在哪里?将缺陷修复提交追踪到文件和符号;当 Agent 修改缺陷高发区时发出警告。缺陷历史
我们的测试真的在测试什么吗?没有断言的测试、只检查自身模拟对象的测试,以及未经测试的热点代码。测试质量异味
人们意想不到的功能
  • 无需运行覆盖率工具即可了解测试覆盖情况。 大多数代码库从不生成覆盖率报告。Repowise 根据导入图和调用图回答“这段代码是否经过测试,以及由什么测试”,并将每个答案标记为实测或推断。
  • 在你的代码库上检查自身健康度评分。 每次索引后,它都会报告近期历史中得分最低的文件有多少实际包含缺陷修复,让你能看出它对你的代码库评分是否不准确。
  • 从 Agent 会话中学习。 开启会话记录后,你反复提出的修正(“使用共享 HTTP 客户端”)会成为跟踪记录的决策,之后反馈给 Agent。会话记录不会离开你的设备。
  • 根据真实索引生成并持续更新你的 CLAUDE.md 和 AGENTS.md,这样即使不支持 MCP 的 Agent 也能掌握相关信息。
  • 在 Agent 读取命令输出前对其进行精简。 repowise distill pytest 会保留所有失败信息并去除噪声,而且不会丢失任何内容:使用 expand 命令即可恢复被删减的部分。
  • 新的 Git 工作树一开始就已完成索引。 链接的工作树会从基础检出目录获取索引,而不是从头开始。
  • 了解你依赖哪些外部系统。 来自 PyPI、npm、Cargo、Go、NuGet、Maven 和 CMake 的包清单会汇总成一张图,展示代码所访问的服务和库。

托管服务与 Foresight

以上所有功能都可在你自己的机器上免费运行。repowise.dev 可代你运行,包括私有仓库;Foresight 也会率先在这里推出: 这些模型基于多年的真实提交和修复训练,能够为修复排出可能涉及的文件, 指出变更遗漏了什么,并解释每个答案,无需大模型。 了解 Foresight 的功能 →

托管于 repowise.dev:本 README 中的所有功能都无需运行任何程序,且支持私有仓库;为 Claude、ChatGPT 和 Cursor 提供一个 MCP 端点;PR 机器人提供免费的确定性审查,以及每个拉取请求只需几分钱的 AI 审查;还提供 Jira、Confluence 和团队工作区。即将登陆 repowise.dev:Foresight,基于真实代码库的变更方式训练的模型,可为修复排出涉及的文件、标记变更遗漏之处,并解释每个答案。

在托管版 repowise.dev 上免费开始 加入 Foresight 候补名单

已在本地建立索引?运行 repowise publish,只需一条 命令即可将仓库发布到 repowise.dev。它会为你的 GitHub 远程仓库建立索引,因此不会从你的机器上传任何内容。 公开仓库可免费使用。


合并前,了解哪些地方可能出问题

所有结果都来自图和 git 历史记录,不使用大模型,因此相同的差异 始终会得到相同的答案。

  • 变更风险。 根据仓库近期提交,为任意提交或分支评定 0 到 10 分, 并指出可能造成的影响、遗漏的配套文件、缺少的测试以及应运行的测试。repowise risk main..HEAD (参考)
  • 无需覆盖率运行即可分析测试。 找出哪些测试会覆盖某个文件,以及哪些测试会执行差异中的代码;有覆盖率报告时使用报告,没有时则使用调用图:判断应运行哪些测试的准确率为 97.5%。 repowise impacted-tests main..HEAD (参考)
  • 易出 bug 的文件。 找出反复收到 bug 修复的文件,并在你的 Agent 编辑这些文件时发出警告。(参考)
  • 分支重叠。 找出正在编辑相同文件的其他开放分支。repowise overlap (参考)
  • 在 CI 中运行。 通过 GitHub Action、GitLab 模板 或纯 CLI,将补丁覆盖率、文档偏差、安全性和变更风险设为检查门槛,并生成 SARIF 输出。无需 API 密钥。在 CI 中使用 Repowise →

每个拉取请求上。 免费的 Repowise PR Bot 会发布一条评论,每次推送都会就地更新,其中包含 PR 之外的调用方、 缺少的测试和配套文件,以及变更风险。通过检查的 PR 不会收到任何评论。

深色主题的 Repowise 单个 PR 分析页面,显示变更风险、仓库健康状况、变更的契约、外部调用方、新增发现,以及仓库爆炸半径树图

真实 PR 上的真实评论:repowise-dev/repowise#1204 · 分析页面 → · 安装 PR 机器人 →

每项变更及其证据

每个已合并的 PR 或提交都会成为一条 变更记录:它涉及哪些内容、由谁负责、哪些测试覆盖了它、它涉及哪些契约和决策,以及合并后的情况。不会调用任何代码托管平台 API。

你提出的问题Repowise 提供的内容
这个 PR 合并了哪些内容?有哪些证据支持?变更的证据检查清单,每项标记为 ok、attention 或 unknown,并附带 in-toto 导出文件。变更记录
能否对我们的支付代码设置更高的 CI 门槛?.repowise/policies.yaml 中的规则,按名称、标签或重要性匹配组件,并由 repowise check 评估,支持 SARIF 或 JUnit 输出。变更策略
出了问题。我们应该先查看哪项变更?根据错误、堆栈跟踪或问题为近期变更排序。在 43 个真实回归案例中,后续撤销或修复所指向的变更有 67% 排在前 5 位;按共有文件排序时,这一比例为 28%。疑似变更
谁负责这部分?他们还在维护吗?采用 Backstage 结构的组件,负责人信息来自你的目录和 CODEOWNERS,并与最近 90 天的提交记录进行对照。组件
能否向审计人员或收购方展示我们的现状?证据包:仓库评估、指定时段的变更报告和组件清单,支持 JSON、Markdown、HTML 或 CSV 格式。报告

精确了解需要修复的内容

每个文件都会由 53 个确定性检测器给出 1 到 10 分的评分,从缺陷风险、可维护性和性能三个角度进行评估。N+1 查询和循环中的 I/O 等性能问题会跨函数和文件进行追踪。

我们会用真实缺陷来检验评分。在 21 个开源项目中,在相同的审查预算下,按 Repowise 排序发现的后续出现缺陷的文件数量是 CodeScene 的 2.3 倍。每次索引后,它也会在你的仓库中自我检验:“健康度最低的 20 个文件中,有 16 个在过去 6 个月内修复过缺陷,是 24% 基准比例的 3.3 倍。”

随后,它会指出具体的修复方案:提取方法、提取类、移动方法、 拆分文件或打破循环依赖,并列出需要移动的确切符号;排序时会优先显示针对核心文件的修复,而不是针对叶节点的相同修复。每个方案都带有复制到 Agent 的按钮。

repowise next                          # what to fix first, ranked by impact and effort
repowise health --refactoring-targets  # concrete plans
repowise dead-code                     # what can go, by confidence tier

代码健康度 · 重构 · 死代码 · 验证方式 →


跨仓库

真实系统不止一个仓库,代价高昂的故障往往发生在仓库之间。修改后端契约时,Repowise 会在变更上线前指出使用该契约的前端调用、下游服务,以及新依赖违反的架构规则。

工作区智能可解答的问题
契约映射哪些服务提供和使用各个 HTTP、gRPC、事件、套接字和数据契约?链接会保留其精确或候选置信度,以及来源证据。
跨仓库影响范围如果此提供方发生变更,哪些下游服务在结构上会受到影响,哪些服务可能因历史上的共同变更而出现偏差?
破坏性变更防护是否移除了某个端点,或以不兼容的方式更改了 OpenAPI、proto 或签名结构?哪些使用方文件关联到该契约?
测试影响提供方发生变更时,使用方仓库中应运行哪些测试?根据覆盖率或调用图推断。
架构即代码实际系统图是否违反声明的依赖规则或包含循环?repowise workspace check 可在 CI 中设置门禁。
架构健康度整个系统的耦合程度如何?传播成本、循环核心、服务角色,以及确定性的 1-10 架构评分。
联邦上下文通过一个仪表板和一个 MCP 服务,解答所有仓库相关的问题,同时保留仓库级证据。

工作区指南与支持矩阵 → · 保持索引更新 →


与业界对比

每款工具使用相同的仓库、提交和问题,并开放其宣传的全部功能,对照我们没有编写的标准答案进行评测。

在 Codex 上回答 43 个 django 问题时,Agent 输出的 token 数量:repowise 1,250,CodeGraph 1,383,Serena 1,550,Graphify 1,658,code-review-graph 1,710,裸 Agent 1,828 在 42 个封闭的 ContextBench 实例中的文件覆盖率:repowise get_answer 0.876,repowise search_codebase 0.742,CodeGraph 0.610,Graphify 0.546,code-review-graph 0.445,cocoindex 0.361
结果
Agent 工作循环中节省的工作量调用工具 3.8 次,而非 7.2 次;打开文件 3.0 个,而非 7.2 个;输出减少 31.6%。在五款上下文工具中表现最佳。n=43,p<0.0001
找到正确的文件在封闭测试集上,找到修复所需文件的 0.876,而下一款工具为 0.610。n=42,p=0.00004
命令输出最多缩减 99.5%(npm ci);git log 缩减 89%,git diff 缩减 86%,且不会遗漏错误行
编译器认可的调用图Go、TypeScript、Dart、C 和 Python 的精确率达到 95% 至 99.6%,由各语言自己的工具链评分。与另外四款工具对比,在 7 项测试中,没有其他工具能在找到同等多调用图的同时,获得更高的准确率
可预测 Bug 的健康度在相同审查预算下,对后来出现 Bug 的文件的召回率是 CodeScene 的 2.3 倍。2,770 个文件,p=0.003
规模在一台笔记本电脑上处理 1,500 万行代码(dotnet/runtime)。构建调用图仅需 75 MB,比下一款工具少 10 倍

用通俗语言介绍每项结果及其方法 → · 其研究基础 →

功能对比

没有任何单一产品能与这里列出的所有能力竞争,因此无法用一张表格概括。标注为 实测的行是直接对比的数字,详见 docs/BENCHMARKS.md,其中列出了样本量、测试以及我们落后的项目。未标注的行表示是否具备某项能力,而非测量结果。

作为 Agent 上下文层
repowiseCodeGraphSerenaDeepWiki
可自托管、开源✅ AGPL-3.0✅✅❌ 仅云端
私有仓库,无需云端✅✅✅❌ 仅 OSS 分支
提供的 MCP 工具默认 10 个 + 可选 7 个1 个29 个3 个
能找到关键文件 (测得,n=42 个密封样本)✅ 0.8760.610本次未测试未测量
相对于基础 Agent 的输出 token 数 (测得,n=43)✅ -31.6%-24.4%-14.8%未测量
构建图所需内存 (测得,5 个工具,35 个仓库)✅ 75 MB,35 个仓库中有 35 个占用最低757 MB未测量不适用,云端
构建图所需时间 (测得,同一次运行)2.77s,35 个仓库中有 14 个速度最快3.65s,16 个中速度最快未测量不适用,云端
构建完整索引所需时间,django (测得)⚠️ 366.8s,这里最慢✅ 16.4s未测量不适用,云端
人工评定的调用边精确率 (测得,560 行,9 种语言)✅ 85.7%58.6%未测量未测量
由编译器评定的调用边精确率 (测得,5 个工具,7 个单元格)✅ 没有工具能在发现同样多内容的同时,获得更高的正确率,7 项中有 7 项7 项中精确率更低未测量未测量
生成文档✅❌❌✅
主动式 Agent 钩子✅ Claude + Codex❌❌❌
生成的 CLAUDE.md / AGENTS.md✅❌❌❌
命令输出提炼✅ 可逆❌❌❌
架构决策记录✅❌❌❌
多仓库工作区智能✅ 契约、协同变更、联邦 MCP❌❌❌

两项成本数据回答的是不同的问题。 在构建调用图方面,我们是测得工具中最轻量的,比下一名轻约十倍,速度也大致与最快的工具相当。在构建完整索引方面,CodeGraph 比我们快 22 倍,因为到这一步,我们还构建了 git 历史层、知识库、决策记录和健康检查。如果你只需要调用图,这种取舍是正确的,应该选择它。启用模型撰写的文本后,速度差距是 135 倍。

人工评定的精确率数据有利也有弊。 我们绘制的调用边中,约有百分之十四是错误的;在 seastar 上,CodeGraph 的评分比我们高。之所以列出编译器评定的数据,是因为人工阅读评定是我们自己做的:对于 Go 和 TypeScript,答案依据分别是 Go 团队自己的调用图和 tsc 检查器自己的解析结果,我们既没有编写它们,也无法调整它们。只绘制几乎没有调用边,就很容易取得高精确率;绘制所有调用边,则很容易取得高召回率,因此我们的说法关注的是两者兼顾。

竞品测量所用版本为 CodeGraph 1.5.0、Graphify 0.9.31、Serena 1.6.2.dev0 和 code-review-graph 2.3.7,测量时间为 2026 年 8 月。Repowise 编译器评定数据来自 2026-10-03 的 main;Repowise 的其他数据来自 081a59fa,测量时间为 2026 年 8 月。

作为代码健康工具
repowiseCodeScene
可自托管、开源✅ AGPL-3.0⚠️ 本地部署 Docker,专有
代码健康评分(1-10)✅ 53 个检测器,25 项评分✅ 25-30
Brain Method / LCOM4 / 上帝类✅✅
20% 审查预算下发现的缺陷 (测量结果,2,770 个文件)✅ 0.1730.074
考虑工作量的排名,Popt (已测量,p=0.003)✅ 0.6070.462
该预算下的精确率 (已测量)0.580✅ 0.636,列表更短
区分能力,ROC AUC (配对测量)0.7310.705,p=0.054,差异不显著
业务影响(解决时间)❌ 我们无法在开放数据上复现这一结果✅ Code Red 研究
Git 智能分析(热点、所有权、共同变更)✅✅
合并前变更风险评分✅ 0-10 + 指令✅
具体的跨文件重构计划✅ 感知图结构 + 影响范围⚠️ 仅限函数内部
测试覆盖率智能分析✅ LCOV/Cobertura/Clover/JaCoCo/Go❌
死代码检测✅❌
通过 MCP 向 AI Agent 提供服务✅✅

CodeScene 是该类别中唯一另一家发表过实证缺陷研究的厂商,因此我们选择它进行正面对比。它会标记约 27 个文件,而我们会标记 132 个;因此,如果你希望得到一份较短、便于采取行动的列表,它的阈值更合适。

文档生成器

DeepWiki、Google Code Wiki 和 Swimm 会根据代码仓库生成文档,这与我们的一个层面有所重叠。我们尚未对它们进行测量,因此这里没有对比表。

PR 机器人,与 LLM 审查机器人对比
Repowise PR BotCodeRabbitGreptile
每个 PR 的 LLM 调用次数✅ 零次❌ 每次审查都会调用❌ 每次审查都会调用
同一差异,得到同一审查结果✅ 确定性❌ 抽样输出❌ 抽样输出
你的代码会发送给模型提供商✅ 从不❌ 会❌ 会
符号级影响范围✅ 调用图❌⚠️ 基于上下文生成的文字描述
PR 中遗漏的共同变更伙伴✅ Git 历史❌❌
根据代码仓库自身历史评估变更风险✅ 0-10 + 百分位❌❌
PR 状态良好时保持静默✅ 默认如此⚠️ 可配置⚠️ 可配置

LLM 审查器是另一类产品:它可以理解意图,但每次运行都可能以新的方式出错。本工具会基于调用图和 Git 历史进行集合运算,因此对同一个差异推送两次,会得到相同的审查结果。查看完整的并排对比:repowise.dev/compare →


支持的语言

28 种语言可解析为 AST,42 种语言可通过五级阶梯支持;存在生态系统处理器时,还能感知框架。 每种语言都包含在开源发行版中。

完整   Python TypeScript JavaScript Svelte Vue Astro Java Kotlin Go Rust C++ C# Scala Ruby Apex (Salesforce)

良好   C Swift PHP Dart Object Pascal / Delphi COBOL GDScript / Godot VB.NET Elixir F# Objective-C  · 部分支持   Luau Razor / Blazor

完整梯度及每个级别提供的功能 | 梯级 | 语言 | 提供的内容 | |---|---|---| | **完整** (15) | Python · TypeScript · JavaScript · Svelte · Vue · Astro · Java · Kotlin · Go · Rust · C++ · C# · Scala · Ruby · Apex (Salesforce) | 完整流水线:AST 符号、导入解析、已解析的调用图、继承关系、文档字符串、框架边以及代码健康度标记 | | **良好** (11) | C · Swift · PHP · Dart · Object Pascal · COBOL · GDScript · VB.NET · Elixir · F# · Objective-C | 包含上述所有内容,但不包括完整的健康度套件;具体支持范围受完整矩阵中各语言对应上限的限制 | | **部分** (2) | Luau / Roblox · Razor / Blazor | Luau:AST 符号和 `require()` 解析,支持 Rojo 和 `.luaurc`。Razor:组件符号、`@code` 和组件标签调用边、C# 健康度标记;暂不支持导入解析 | | **轻量** (6) | Clojure · Haskell · Lean 4 · Erlang · HTML · QML | 提供真实的文件间导入图,不声称支持符号级分析 | | **结构化** (8) | R · Zig · Julia · Elm · OCaml · Crystal · Nim · D | Git 历史:blame、热点、共同变更、所有权、缺陷历史 |

SQL 和 dbt 项目可追踪 ref() / source() 血缘关系;shell 脚本可提取函数级符号;HTML 页面会纳入其 <script src> 和 <link href> 依赖;OpenAPI、Protobuf、GraphQL、Dockerfile、Terraform 等类似格式则由专用处理器处理。其他内容仍会通过 git 历史进行追踪。

每条调用边都会标注解析方式及可信度:从可信度为 0.95 的 same_file 到仓库范围内可信度为 0.50 的名称匹配,并明确标记为猜测。各语言的准确率依据其各自的编译器进行评估: docs/BENCHMARKS.md#accuracy-by-language。

完整矩阵:docs/layers/LANGUAGE_SUPPORT.md → · 添加一种语言只需五个简单步骤,且无需修改解析器核心: docs/architecture/language-support.md → · 语言支持梯级升级路线:roadmap →


支持的 Agent 和编辑器

端到端接入 8 个 Agent · 其中 2 个达到 Full 级别 · 其他 MCP 主机只需粘贴一段配置即可接入。

Full 级别   Claude Code Codex CLI

Good 级别   VS Code Cursor OpenCode Hermes GitHub Copilot CLI Kiro

Full 包含 Repowise 提供的所有功能:MCP 工具、技能、斜杠命令、托管的指令文件、在钩子层拦截工具调用,以及会话结束后的对话记录挖掘。Good 包含 MCP 工具和指令文件或技能,但不包含对话记录挖掘(仅在矩阵注明时提供钩子)。Basic 仅包含 MCP 配置。其他任何支持 MCP 的主机只需添加一段配置即可接入: repowise agents print-config claude-code 会输出适用于 Cline、Windsurf、 Zed、Gemini CLI 或任何读取 mcpServers 的主机的服务条目。 集成矩阵 →

在 VS Code 中,Repowise 扩展会在推送前显示更改可能造成的影响(风险最高的文件、下游依赖、容易遗漏的关联文件、缺失的测试、建议的审阅者);在代码编辑区边栏和状态栏显示健康状况;悬停时显示调用方和所有权;并通过 CodeLens 显示重构计划。安装一次即可注册 MCP 服务,让你和 Agent 共用同一索引。请从 Marketplace 或 Open VSX 安装,然后运行 Repowise: Set Up This Repository。VS Code 指南 →

在 Django 项目的 Claude Code 中使用 Lens:Claude 编辑 query.py,该文件在关系图中变为琥珀色,导入它的 12 个文件则亮起李子色;再次编辑 django/conf/__init__.py 时,它的 248 个导入方亮起,Flow 会列出接受更改前需要检查的内容

在 Claude Code 中,Lens 内置于 Repowise 插件中,会在 Claude 工作时展示索引中的信息:当前处理的文件及其依赖文件数量;编辑文件后每轮结束时的更改审查(代码健康状况、要运行的测试、涉及相同文件的其他分支);以及 /lens 面板,其中包含 Flow(接受每轮更改前需要检查的内容)、根据 Claude 搜索、打开和编辑的文件以及更改影响范围点亮的仓库关系图、Ask 和会话摘要。除非你按下按钮,否则任何内容都不会发送给 Claude;Lens 本身不会调用模型。它需要 Claude Code 2.1.287 或更高版本,关系图需要运行 repowise serve --no-ui。Lens 指南 →


十种 MCP 工具

每个响应都包含一个 _meta 信封,其中包含索引的提交、索引年龄,以及当索引落后于当前检出版本时发出的过期警告,让你的 Agent 始终了解刚刚读取的内容有多可信。

查看 MCP 工具集
工具只有此工具能回答的问题
get_overview()架构摘要、模块图、入口点、Git 状态。首次了解陌生代码库时使用。
get_answer(question)混合检索(全文加向量)、图扩展,以及一条带引用且经过校准的 confidence 答案。在一次往返中完成搜索、阅读和推理。
get_context(targets, include?)面向文件、模块或符号的分诊卡:摘要、签名、热点标记、相关决策、符号 ID。include 可展开调用方、被调用方、归属关系和指标。一次调用可批量处理多个目标。
get_symbol("file.py::Name")一个已索引符号的源代码及精确行号范围。
search_codebase(query)按符号、路径或概念,对代码和文档进行混合搜索。
get_risk(targets?, changed_files?)热点、依赖项、共同变更对象、归属关系、测试缺口、缺陷历史。传入 changed_files 以启用 PR 模式,并获取 directive。
get_change_risk(revspec)分析某个提交、范围或未提交变更在缺陷风险、可维护性和性能方面造成的恶化,检查涉及的测试,并评估该差异相较近期提交的排名。
get_why(query?, targets?)架构决策及其原文证据。如果没有相关决策,则回退到 Git 考古分析。
get_dead_code(...)按置信度层级列出不可达代码;在工作区模式下,还会列出跨代码库的使用方。
get_health(targets?, include?)从三个维度评估健康度并列出发现,包括优先修复项、覆盖率、趋势、文档偏差和重构计划。

工具数量上限刻意设为十个:对于 Agent 来说,小而贴合任务的工具集比庞大的工具集更容易选择。还有七种工具(依赖路径、执行流程、重构代码生成、问题分诊,以及三种工作区架构工具)可选择启用。参数、示例和使用时机: docs/agent/MCP_TOOLS.md →


面向团队和企业

AI 降低了产生变更的成本,但并未降低理解其后果的成本。Repowise 为开发者、Agent、审查者和平台团队提供相同的证据,让他们了解现有内容、依赖关系、风险以及可能造成的破坏。所有信息都来自同一个索引,取代独立的健康状况工具、死代码工具、面向 Agent 的代码搜索层、文档生成器和测试影响分析服务。

部署方式读取代码的位置离开网络的内容
自托管、开源(pip install repowise)您的计算机可关闭的匿名 CLI 遥测;只有在启用文本生成功能时,才会使用您自己的大模型提供商
自托管、商业版您的 VPC 或隔离网络在隔离网络模式下,不会有任何内容离开网络
托管版(repowise.dev)我们托管的索引器您的代码会发送到该平台

图谱、Git、健康状况、变更风险、测试、死代码和 PR 审查均不会调用大模型,且绝不会存储原始源代码。文本生成功能为可选项,可使用您自己的提供商,也可通过 Ollama 完全离线运行。

可交给他人核查的证据。

提问者Repowise 提供的内容
审查变更管理的审计员(SOC 2 CC8.1、ISO 27001 A.8.32、PCI DSS 6.5)该期间内的每项变更及其审查记录、关联测试、策略判定和后续结果:repowise report changes
软件清单审查(PCI DSS 6.3.2)包含负责人团队、语言、入口点和导入包的组件:repowise report inventory
想了解哪些代码使用了某个包的安全团队导入位置、所属组件、负责人团队和可达性,以及 CycloneDX 1.6 使用情况导出:repowise packages where
收购方、董事会或迁移委员会组件态势、热点、总线因子、死代码、测试覆盖范围和契约:repowise report assessment
事件审查建议优先查看的近期变更及其背后的信号:repowise suspects

任何 Git 托管平台都适用,因为索引会读取本地检出内容:GitHub(PR 机器人、Action、webhook)、GitLab(CI 模板、webhook)、Bitbucket,以及通过 CLI 使用的其他平台;对于除历史记录之外的所有层,还支持普通目录、Perforce 和 SVN 导出内容。

商业许可证按席位、索引仓库数量或企业范围计费,并提供指定联系人、SLA 和季度架构审查。在公司内部使用 AGPL 版 Repowise,不会产生公开您自己的代码的义务。

商业详情和功能状态 · 安全审查资料包 · 为公司评估该产品 · [email protected]


隐私

  • 确定性或离线模式: 使用 --no-prose 时,代码衍生内容会保留在您的基础设施中。CLI 会报告匿名、可选择退出的使用遥测(仅包含命令名称和粗略的环境信息);可通过 repowise telemetry disable、DO_NOT_TRACK=1 或完全离线运行来关闭。 收集了哪些信息 →
  • 可选的大模型功能: 生成文本、提取决策和生成重构代码时,会将代码衍生提示词直接发送给您使用自己的密钥配置的提供商。Repowise 不会代理这些调用。
  • 存储内容: 图谱、嵌入、生成的 Wiki 页面和 Git 元数据。原始源代码仅作临时处理,绝不会持久化。
  • 完全离线: 使用 Ollama 和本地嵌入模型,即可实现零外部调用。

正在进行安全审查?docs/business/SECURITY_COMPLIANCE.md →


命令行

一览所有命令
repowise init [PATH]      # index a codebase (plan screen; --yes --no-prose needs no key)
repowise generate [PATH]  # write wiki pages with a model, on demand
repowise serve [PATH]     # MCP server + local dashboard
repowise update [PATH]    # incremental update (--workspace for every repo)
repowise watch            # re-index on file change
repowise search "<q>"     # hybrid search (fulltext / semantic / symbol / path)
repowise ask "<q>"        # a synthesized answer with citations
repowise context <files>  # triage card: layer, hotspot, fix history, freshness
repowise symbol <id>      # one symbol's body, with verified line bounds
repowise why <q|path>     # decisions, rationale, git archaeology
repowise next             # what to fix first
repowise health           # code-health KPIs and lowest-scoring files
repowise risk main..HEAD  # score a branch or PR range
repowise overlap          # other branches editing the same files
repowise impacted-tests   # only the tests a diff exercises
repowise changes show ID  # one merged change and its evidence checklist
repowise check            # evaluate .repowise/policies.yaml against a change
repowise suspects         # recent changes ranked against a symptom
repowise components       # declared and derived components, owners vs activity
repowise packages where   # where a third-party package is imported
repowise report           # assessment, change evidence and inventory packs
repowise dead-code        # unreachable code by confidence tier
repowise doc-drift        # documentation the code no longer supports
repowise security         # secrets and risky patterns, tree or full history
repowise decision list    # architectural decisions
repowise export --format structurizr  # the architecture as Structurizr DSL
repowise distill pytest   # compact, errors-first, reversible command output
repowise saved            # tokens and dollars saved by distillation
repowise workspace add    # multi-repo workspace management
repowise doctor           # check setup, API keys, index drift
repowise publish          # put this repo on repowise.dev (indexed from GitHub; public repos free)
repowise uninstall        # remove what repowise wrote, and say what it left

所有命令和标志:docs/reference/CLI_REFERENCE.md · 配置:docs/reference/CONFIG.md · 遇到问题:docs/start/TROUBLESHOOTING.md · 所有文档:docs/README.md


贡献

git clone https://github.com/repowise-dev/repowise
cd repowise
uv sync --all-packages
uv run repowise --version
uv run pytest tests/unit/

刚加入?开始贡献不必读完 3,000 个文件。我们公开了这个仓库的索引,该索引由 Repowise 自身构建,并在每次推送时重新生成: 用 repowise 探索 repowise → (架构、热点、所有权、决策,以及欢迎你挑选的排名靠前的 重构待办清单)。

完整指南(包括如何添加语言和 LLM 提供商): CONTRIBUTING.md · 架构: docs/architecture/


许可证

AGPL-3.0。个人、团队和公司均可免费在内部使用 Repowise。

如需商业许可(企业安全与合规层、SSO/SCIM、RBAC、工作流集成、优先支持和 SLA,或将 Repowise 嵌入产品且不受 AGPL 义务约束),请参阅 docs/business/COMMERCIAL.md 或联系 [email protected]。


为那些厌倦了看着 AI Agent 第四次 cat 同一个文件的工程师打造。

⭐ 如果 Repowise 值得加入你的工作流,请为它点亮一颗星。这不花你一分钱,却能鼓励我们这个小团队继续开源构建。

repowise.dev · 探索 → · Discord · X · [email protected]

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。