关于 Repowise
Repowise 是面向编码 Agent 的代码库索引与分析 MCP 服务,可在本机整合代码、Git 历史、测试和决策信息,供 Agent 查询,也提供仪表板查看结果。它通过代码图谱和确定性分析支持变更风险、测试影响和代码健康检查。
主要功能
- 01索引代码、Git 历史、测试与决策
- 02提供代码调用图和架构视图
- 03分析变更影响、风险及相关测试
- 04评估代码健康并识别死代码
- 05精简命令输出并保留错误行
- 06通过 MCP 提供代码库查询工具
适用场景
- 01评估修改文件可能影响的调用方
- 02为代码变更筛选相关测试
- 03查找优先修复项与未使用代码
- 04在 Agent 中查询代码结构和项目决策
MCP 相关
Repowise 通过 `repowise serve` 启动 MCP 服务,向编码 Agent 暴露十种面向任务的代码库查询工具。MCP 查询使用本机索引数据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
别再花钱让 Agent 重新阅读代码库。
Repowise 会在你的机器上一次性为代码、git 历史记录、测试和决策建立索引。
你的编码 Agent 会查询索引,而不是用 grep 搜索并打开文件,因此工作量能减少约一半。
你也能在仪表板中获得相同的答案:哪些内容会调用它、哪些内容会出问题、应该先修复什么,以及原因。
| 工具调用减半 Agent 现在只打开 3 个文件,而不是 7 个 · 输出减少 31.6% | 噪声最多减少 99% 适用于测试运行、安装和 git 输出 · 保留每一行错误信息 | 88% 的目标文件 一次调用即可找到 · 次优工具:61% |
图谱、风险、健康度、测试和死代码分析不会调用大模型 · 建立索引无需 API 密钥 · 支持 28 种语言 · 兼容 Claude Code、Codex、Cursor 和任何 MCP 宿主 · 免费且开源
一行完成设置
在你的代码库中打开 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、gRPC 和事件契约,并使用防护机制检查破坏性变更及其影响的使用方文件。工作区 |
有问必答获取附带引用和图表的仪表盘回答,也可以通过 MCP 为你的 Agent 获取相同的回答。仪表盘 · MCP 工具 |
记录决策缘由从 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 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 不会收到任何评论。
真实 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 服务,解答所有仓库相关的问题,同时保留仓库级证据。 |
与业界对比
每款工具使用相同的仓库、提交和问题,并开放其宣传的全部功能,对照我们没有编写的标准答案进行评测。
| 结果 | |
|---|---|
| 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 上下文层
| repowise | CodeGraph | Serena | DeepWiki | |
|---|---|---|---|---|
| 可自托管、开源 | ✅ AGPL-3.0 | ✅ | ✅ | ❌ 仅云端 |
| 私有仓库,无需云端 | ✅ | ✅ | ✅ | ❌ 仅 OSS 分支 |
| 提供的 MCP 工具 | 默认 10 个 + 可选 7 个 | 1 个 | 29 个 | 3 个 |
| 能找到关键文件 (测得,n=42 个密封样本) | ✅ 0.876 | 0.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 月。
作为代码健康工具
| repowise | CodeScene | |
|---|---|---|
| 可自托管、开源 | ✅ AGPL-3.0 | ⚠️ 本地部署 Docker,专有 |
| 代码健康评分(1-10) | ✅ 53 个检测器,25 项评分 | ✅ 25-30 |
| Brain Method / LCOM4 / 上帝类 | ✅ | ✅ |
| 20% 审查预算下发现的缺陷 (测量结果,2,770 个文件) | ✅ 0.173 | 0.074 |
| 考虑工作量的排名,Popt (已测量,p=0.003) | ✅ 0.607 | 0.462 |
| 该预算下的精确率 (已测量) | 0.580 | ✅ 0.636,列表更短 |
| 区分能力,ROC AUC (配对测量) | 0.731 | 0.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 Bot | CodeRabbit | Greptile | |
|---|---|---|---|
| 每个 PR 的 LLM 调用次数 | ✅ 零次 | ❌ 每次审查都会调用 | ❌ 每次审查都会调用 |
| 同一差异,得到同一审查结果 | ✅ 确定性 | ❌ 抽样输出 | ❌ 抽样输出 |
| 你的代码会发送给模型提供商 | ✅ 从不 | ❌ 会 | ❌ 会 |
| 符号级影响范围 | ✅ 调用图 | ❌ | ⚠️ 基于上下文生成的文字描述 |
| PR 中遗漏的共同变更伙伴 | ✅ Git 历史 | ❌ | ❌ |
| 根据代码仓库自身历史评估变更风险 | ✅ 0-10 + 百分位 | ❌ | ❌ |
| PR 状态良好时保持静默 | ✅ 默认如此 | ⚠️ 可配置 | ⚠️ 可配置 |
LLM 审查器是另一类产品:它可以理解意图,但每次运行都可能以新的方式出错。本工具会基于调用图和 Git 历史进行集合运算,因此对同一个差异推送两次,会得到相同的审查结果。查看完整的并排对比:repowise.dev/compare →
支持的语言
28 种语言可解析为 AST,42 种语言可通过五级阶梯支持;存在生态系统处理器时,还能感知框架。 每种语言都包含在开源发行版中。
完整
良好
· 部分支持
完整梯度及每个级别提供的功能
| 梯级 | 语言 | 提供的内容 | |---|---|---| | **完整** (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 级别
Good 级别
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 指南 →
在 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]
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。


