@DeRonin_: 你明白 Repowise 刚开源了什么?给你的 AI 一个代码库地图,成本降低 50%、速度提升 4 倍...
摘要
Repowise 是一个开源工具,将代码库索引为四个智能层(AST、依赖图、Git 历史、LLM 生成的维基),并将其暴露为 MCP 工具,使 Claude Code 等 AI 编码智能体能够理解代码架构和历史,从而成本降低 50%,任务速度提升 4 倍。
查看缓存全文
缓存时间: 2026/05/19 14:48
你明白 Repowise 刚刚开源了什么吗???通过给你的 AI 一张你代码库的地图,而不是让它每次任务都自己翻文件,成本降低 50%,速度提升 4 倍 [这对每个用户的具体帮助]:
- 使用 Claude Code 的 vibe coder:不再接受那些默默破坏了 Claude 不知道存在的文件的 AI 编辑
- 把 Claude 当成开发团队用的创始人:真正看清你的代码库里有什么,而不是 Claude 记住的上次会话的内容
- 独自开发者回去维护旧代码:不用再做考古工作了,直接问 Repowise 逻辑在哪
- Claude Code 重度用户:每个任务用 5 次 MCP 调用代替 30 次 grep+read 调用
- 调试别人写的代码的任何人:热点检测能显示 bug 真正在哪里,而不是 Claude 靠猜测
[现在每个 AI 编程助手缺失的东西]:
Claude Code、Cursor、Windsurf、Codex,所有这些工具都会读取你的文件,但没有一个了解你的架构,没有哪个知道哪些文件最容易出问题,也没有哪个知道你 6 个月前为什么要做那个奇怪的设计决策。Repowise 把你的代码库索引到 4 个智能层,并以 MCP 工具的形式暴露出来。
[它实际的工作方式]:
tree-sitter 将每个文件解析成 AST,NetworkX 构建依赖图 git 历史被挖掘成热点图(哪些文件最容易出问题)和所有权图(谁写了什么) LLM 生成的代码库 wiki 存在向量数据库中,始终与图保持同步 架构决策以 ADR 形式捕获,这样 AI 代理能读意图,而不只是读代码
这 4 层叠加起来:图 + git + 文档 + 决策。其他所有的“面向代码库的 AI“工具都只停留在其中一层。
[数学计算]:
他们 README 里的真实基准测试:“给所有 API 端点加上速率限制”:
- 只用 Claude Code(没有 MCP):约 30 次 grep+read 调用,约 8 分钟才做出第一次修改
- 用 repowise(8 个 MCP 工具):5 次调用,约 2 分钟做出第一次修改
同一个任务,速度快 4 倍,错误的文件改动更少。
每次提交后的增量更新:不超过 30 秒 任何规模代码库的死代码检测:不超过 10 秒(没有 LLM 调用,纯图 + SQL) 首次索引一个 3000 文件的项目:约 25 分钟,一次性成本
[让我脑子爆炸的部分]:
每个代码库里都隐藏着成对出现的文件:它们总是同时修改,但代码中从未互相引用。
他们文档中的例子:
auth.ts 和 middleware/session.ts 两者之间没有 import 在最近 500 次提交中被同时编辑了 31 次
其他所有的 AI 编程工具都是逐个文件读取,完全漏掉了这一点。Repowise 挖掘你的 git 历史来找到这些成对文件,然后在 Claude Code 修改其中一个之前就告诉它。这就是“咦,这以前不是能用的吗“这类 bug 的来源——没人能预测,但每个人都要调试。
高级工程师脑子里装着的那份上下文,现在终于能提供给 AI 了。
[我自己发现的使用场景]:
我的 content-engine 项目是这个的完美测试用例:
- 5 个模块(scrapers、ai、publisher、gui、extension)彼此没有 import,但我每次碰 AI 管道时它们都会一起变化
- 我 6 周前写的 CLAUDE.md,已经过时 3 周了,每次 Claude Code 会话都加载过时的上下文,在错误的地方写代码
- 4 个 Phase 1 到 Phase 2 过渡期遗留的候选死代码,我一直不敢删,因为没人知道哪些是安全可删的
- 一个 Chrome 扩展 content script,通过网络边界与 Flask 的 ingest 服务器通信——AST 解析器永远看不到这个
Repowise 一次安装解决了所有 4 个问题。这周我会把它优先列入 content-engine 路线图,排在我计划新增的 KOL scraper 之前。
Repo: https://github.com/repowise-dev/repowise… 100% 开源,AGPL-3.0,免费
pip install repowise
repowise init
搞定。今晚我就会把它安装到我的 content-engine 项目上。
P.S. 光是自动生成的 CLAUDE.md 就值回安装成本了。
repowise-dev/repowise
来源:https://github.com/repowise-dev/repowise
你的 AI 编程助手的代码库智能层。
五层智能。九个 MCP 工具。多仓库工作区。自动同步钩子。一次 pip install。
PyPI 版本 (https://pypi.org/project/repowise/) 许可协议:AGPL v3 (https://www.gnu.org/licenses/agpl-3.0) Python (https://pypi.org/project/repowise/) MCP (https://modelcontextprotocol.io) Stars (https://github.com/repowise-dev/repowise)
探索真实代码库 → (https://www.repowise.dev/explore) · 团队托管版 → (https://www.repowise.dev/#contact) · 文档 (https://docs.repowise.dev) · Discord (https://discord.gg/cQVpuDB6rh) · 联系
你的 AI 编程助手会读文件。但它不知道哪些文件会一起变化、哪些已经死了、或者为什么它们会被设计成那样。它只有源代码,却没有代码库如何走到今天的记忆。
Repowise 解决了这个问题。它把你的代码库索引成四个智能层——依赖图、git 历史、自动生成的文档、以及架构决策——并通过八个精心设计的工具把这些暴露给 Claude Code(以及任何兼容 MCP 的 AI 代理)。
多仓库?初始化一个工作区,就能获得跨仓库的同改检测、API 契约提取,以及跨所有服务的联合 MCP 查询。
每次查询减少 27 倍 token。节省 36% 成本。回答质量相同。
结果:你的 AI 代理会回答“为什么身份验证要这样工作?“而不是“这是 auth.ts 的内容。”
🏆 与前沿 LLM 的基准测试对比
repowise-bench → (https://github.com/repowise-dev/repowise-bench) —— 一个开源的 SWE-QA 基准测试,用来评估标准 LLM 对真实仓库回答真实软件工程问题的能力。
基于
pallets/flask的 48 对任务(claude-sonnet-4-6,端到端),经过 repowise 增强的 Claude Code 在保持基线回答质量的同时,显著降低了消耗:
指标(每个任务,均值) 基线 + repowise 变化 💰 成本 $0.1396 $0.0890 −36 % ⚡ 墙钟时间 41.7 s 33.9 s −19 % 🛠️ 工具调用次数 7.4 3.8 −49 % 📄 读取文件数 1.9 0.2 −89 % 32 / 48 (67 %) 的任务在使用 repowise 后成本更低 —— 且质量持平(评分 Δ ≈ −0.01)。
Token 效率 —— 因为上下文窗口不是免费的
现在市面上有一种小型“token 效率“基准测试。不参与一下会显得不太礼貌。我们的测试运行在 pallets/flask 最近 30 个非合并提交上,问一个问题:为了理解一次提交,每种策略需要模型读取多少 token?
| 策略 | Token / 每个提交 |
|---|---|
| 朴素方式(修改文件的完整内容) | 64,039 |
仅用 git diff | 14,888 |
repowise get_context | 2,391 |
比朴素方式少 209 倍(均值),池化后 26.8 倍,最佳情况 1,214 倍。比 git diff 少 41.7 倍(均值),池化后 6.2 倍。 使用了相同的文件列表、相同的分词器(cl100k_base),没有各策略的修饰性调整。我们同时报告了均值、池化值和中间值,因为如果只选一种,那就会显得像这个领域其他人经常干的那种事。
完整方法、每个任务的表格,以及实际的 SWE-QA 评估(有第三方 ground truth 和独立评分的 LLM 裁判 —— 与这个一致性检查不同):repowise-bench → (https://github.com/repowise-dev/repowise-bench)
Repowise 构建什么
Repowise 运行一次,构建所有内容,然后在每次提交后保持同步。
◈ 图智能
tree-sitter 将每个文件按 14 种语言解析成双层依赖图 —— 文件节点和符号节点(函数、类、方法)。一个三层的调用解析器(带置信度评分)能处理 import 别名、barrel 重导出和命名空间导入。继承提取覆盖了 extends、implements、trait 实现、derive 宏、mixin 和扩展一致性。Leiden 社区检测在即使你的目录结构没有反映它们的情况下也能找到逻辑模块。PageRank、介数中心性、强连通分量(SCC)分析以及从入口点的执行流追踪,能识别出你代码中最中心、耦合最强、遍历最多的部分。
◈ Git 智能
你的 git 历史被转化为信号:热点文件(高变更 × 高复杂度)、每位作者的所有权百分比、成对同改文件(一起变化但没有 import 链接的文件——隐藏耦合),以及解释 为什么 代码演变的重大提交信息。
汇总成贡献者档案(每位作者的模块汇总、顶级文件、合著者、孤岛模块、死代码负担)、模块健康评分卡(综合考虑变更 × 所有权 × 文档 × 死代码 × 公交因子),以及针对任何 PR 文件列表的审阅者建议,按直接作者身份、同改历史和近期程度加权。
◈ 文档智能
LLM 为每个模块和文件生成的 wiki,在每次提交后增量重建。覆盖跟踪。每页的新鲜度评分。通过 RAG 进行语义搜索。置信度分数显示每一页相对于底层代码的最新程度。
◈ 决策智能
这是其他工具没有的层。从 git 历史、内联标记和显式 CLI 捕获的架构决策 —— 链接到它们所治理的图节点,并在代码演化时追踪其过时情况。
# WHY: 选择 JWT 而非 session —— API 必须无状态以支持 k8s 水平扩展
# DECISION: 在支付提供商中断后,所有外部 API 调用都包装了 CircuitBreaker
# TRADEOFF: 为增加写入吞吐量,接受了偏好中的最终一致性
这些变成了结构化的决策记录,Claude Code 可以通过 get_why() 查询。
◈ 代码健康智能
十二种确定性生物标志物为每个文件计算 1–10 的健康评分 —— McCabe 复杂度、深层嵌套、脑部方法、原生 Rabin–Karp 重复检测、未测试的热点、原始类型痴迷、开发者拥堵、知识流失,等等。
零 LLM 调用,零新的运行时依赖 —— 纯 Python 基于 tree-sitter 和 git 数据,设计为在 3000 文件的仓库中 30 秒内完成。
引入 LCOV、Cobertura 或 Clover 覆盖率报告,以点亮测试覆盖率的生物标志物。滚动 50 行快照历史支持“健康下降“和“预测下降“警报。确定性的、基于规则的代码重构建议显示在仪表板上,并通过 get_health(include=["refactoring"]) 获取。每个文件可通过 .repowise/health-rules.json 覆盖。
repowise health # KPI + 最低分文件
repowise health --coverage cov.lcov # 引入覆盖率,点亮未测试热点
repowise health --refactoring-targets # 按影响/工作量排序
repowise health --trend # 最近 10 个快照 + 警报
repowise status # 在状态报告中输出一行摘要
参见 docs/CODE_HEALTH.md 了解用户指南,以及 docs/architecture/code-health.md 了解内部实现。
快速开始
pip install repowise
或者将 CLI 安装到隔离的、由 uv 管理的环境中:
uv tool install repowise
单个仓库
cd your-project
repowise init # 构建所有四个智能层(首次约 25 分钟)
repowise serve # 启动 MCP 服务器 + 本地仪表板
多仓库工作区
cd my-workspace/ # 包含 backend/、frontend/、shared-libs/ 的父目录
repowise init . # 扫描 git 仓库,索引每个仓库,运行跨仓库分析
repowise serve # 工作区仪表板 + 每个仓库的独立页面
就是这样。repowise init 会自动注册 MCP 服务器,在 ~/.claude/settings.json 中安装 PreToolUse/PostToolUse 钩子,在项目根目录生成 .mcp.json,并提供安装 post-commit git 钩子的选项,以便在每次提交后保持所有内容同步。参见 Auto-Sync 了解所有同步方法(钩子、文件监听、GitHub/GitLab webhook、轮询)。
要手动将 MCP 服务器添加到其他编辑器:
{
"mcpServers": {
"repowise": {
"command": "repowise",
"args": ["mcp", "/path/to/your/project"]
}
}
}
关于初始化时间的说明: 初始索引会分析你的整个代码库——AST 解析、git 历史挖掘、LLM 文档生成、嵌入索引和决策考古。这是一次性成本(对于一个 3000 文件的项目大约 25 分钟)。每次提交后更新只需不到 30 秒,并且只重新生成受你修改影响的少数几页。
工作区 —— 多仓库智能
大多数代码库不止一个仓库。Repowise 工作区让你可以同时对多个仓库进行索引和查询——并提供单仓库工具无法提供的跨仓库智能。
cd my-workspace/ # backend/、frontend/、shared-libs/ 在同一个父目录下
repowise init . # 扫描,选择仓库,索引每个仓库,运行跨仓库分析
在单仓库智能基础上,你还能获得:
| 特性 | 功能 |
|---|---|
| 跨仓库同改 | 找出在不同仓库中同时段变化的文件——例如 backend/api/routes.py 和 frontend/src/api/client.ts 总是同时变动 |
| API 契约提取 | 扫描 HTTP 路由处理(Express、FastAPI、Spring、Go)、gRPC 服务定义和消息主题发布者/订阅者——然后跨仓库匹配提供者与消费者 |
| 包依赖映射 | 读取 package.json、pyproject.toml、go.mod、pom.xml 来检测一个仓库是否以包的形式依赖于另一个仓库 |
| 联合 MCP 查询 | 一个 MCP 服务器服务所有仓库。向任何工具传递 repo="backend" 或 repo="all" |
| 工作区仪表板 | 聚合统计、仓库卡片、契约链接、同改对——全部在 Web UI 中 |
| 工作区 CLAUDE.md | 自动生成的上下文文件,涵盖所有仓库、它们之间的关系和跨仓库信号 |
工作区 CLI:
repowise workspace list # 显示所有仓库及其状态
repowise workspace add ../new-service # 添加仓库(默认自动索引 + 文档)
repowise workspace remove api-gateway # 移除仓库(不删除文件)
repowise workspace scan # 重新扫描新仓库
repowise update --workspace # 更新所有过时仓库 + 首次索引新仓库
repowise update --repo backend # 限定于一个仓库(也可从 cwd 自动检测)
repowise watch --workspace # 文件更改时自动更新所有仓库
repowise doctor --workspace --repair # 验证每个仓库;同步状态漂移;删除失效条目
repowise hook install --workspace # 为所有仓库安装 post-commit 钩子
大多数命令也接受 --no-workspace 来强制单仓库模式,以及 --repo <name> 来限定于一个仓库。参见 CLI 参考。完整指南:docs/WORKSPACES.md
九个 MCP 工具
大多数工具围绕数据实体设计(一个模块、一个文件、一个符号),这迫使 AI 代理进入长链顺序调用。Repowise 工具围绕任务设计。可以在一次调用中传递多个目标。获取完整的上下文返回。每个响应都携带一个 _meta 信封,包含 index_age_days、indexed_commit 和一个 stale_warning,仅当索引的 HEAD 与活跃的 .git/HEAD 不同时才会触发——静默意味着索引是最新的。完整参考:docs/MCP_TOOLS.md
| 工具 | 只有这个工具能回答的问题 | Claude Code 何时调用它 |
|---|---|---|
get_overview() | 架构摘要、模块地图、入口点、git 健康度、社区概要 | 第一次接触任何不熟悉的代码库时 |
get_answer(question) | 混合检索(全文搜索 + 向量搜索,通过 RRF 合并),加上 PageRank 偏置和 1 跳图扩展,综合成一个带引用的回答,并单独报告校准后的 retrieval_quality 和 confidence。在低置信度时,返回一个结构化的 best_guesses 列表,每个文件附带一行说明,而不是空回答。对于“为什么“类问题,会融合决策记录。 | 遇到任何代码问题时的第一个调用——将搜索→阅读→推理合并为一次往返 |
get_context | 未完(原文截断) | — |
相似文章
@GitTrend0x: Claude Code 代码库智能大脑 27×省 Token 杀手级开源神器 https://github.com/repowise-dev/repowise… 这就是 Repowise,专为 AI 辅助工程团队打造的代码库智能平台!它把…
Repowise is an open-source tool that indexes codebases into four intelligence layers (dependency graph, git history, auto-documentation, architectural decisions) and exposes them via seven MCP tools to AI coding agents like Claude Code, achieving up to 27× token savings while maintaining answer quality.
更大的上下文窗口似乎在解决与理解不同的问题
Repowise 是一个开源工具,它将代码库索引为五个智能层——依赖图、Git 历史、自动生成的文档、架构决策和代码健康——并通过 MCP 工具将这些信息暴露给 AI 编码代理,以提供更准确的上下文并减少工具调用次数。
你的vibe编码仓库正在腐烂。我构建了一个开源MCP,向Claude Code精确展示问题所在
Repowise是一个开源MCP工具,为Claude Code等AI编码代理提供代码库智能,包括12个生物标记的代码健康评分、依赖分析、git洞察和自动生成的文档,全部离线运行于Ollama之上。
@HowToAI_: 现在只需一条命令,您就能将 Claude Code 的工具调用次数削减94%。这个 MCP 服务器将您的代码库索引到…
一个新的 MCP 服务器通过将代码库索引到本地知识图谱中,将 Claude Code 的工具调用减少94%,使代理能够查询图谱而不是扫描文件。
@NainsiDwiv50980: AI 智能体变得更聪明了,但理解代码库的方式却没变。大多数仍然逐个文件地爬取仓库……
SocratiCode 是一个完全开源的代码库智能引擎,它利用语义搜索、依赖关系图、影响分析和共享索引帮助 AI 导航仓库,无需供应商锁定。