我做了一个真正 MIT 协议的代码知识图谱工具(完全本地运行,无云端依赖)

Reddit r/LocalLLaMA 工具

摘要

一位独立开发者发布了 repopedia——一个 MIT 协议、完全本地运行的代码知识图谱工具。它使用 tree-sitter 从 Python/TypeScript 仓库构建 SQLite 图谱,并附带 MCP 服务器,让 Claude Code 等编程智能体可以直接查询调用图和爆炸半径影响范围,而不必依赖 grep。

这可能是个小众问题,但我在工作中维护一个巨大的 Python 代码库,每次修改某个共享函数都感觉像在玩轮盘赌。grep 只能告诉你代码库中谁提到了它,而不能告诉你谁真正调用了它。更关键的是,Claude Code(我的主力编程智能体)主要就是用 grep,所以也给不出更好的结果。我想要的工具其实已经存在(GitNexus),但它是 PolyForm 协议授权的,在工作中这是硬性不可接受。而且说实话,抛开协议问题不谈,市面上一半的代码图谱工具都要求你把仓库上传到它们的云服务,或者用 docker 搭一套带向量数据库的环境,这两件事我在工作中都做不到。于是我利用几个周末自己做了这个版本:MIT 协议,所有东西都在本机运行。工具叫 repopedia。你可以 pip install 之后在任意仓库上运行,它会用 tree-sitter 做解析,在一个普通的 SQLite 文件中构建出一个小型代码图谱。它的优势就是不需要服务器、不需要 docker、不需要 API 密钥。任何东西都不会被上传,图谱就是磁盘上的一个 .db 文件。之后你可以问它,比如谁调用了这个函数,或者如果我改动它,爆炸半径有多大(也就是所有传递调用者)。它还能导出一份代码库 wiki,不过说实话,这部分主要是因为我自己想要文档。实际用得最多的是 MCP 服务器。我用的 Claude Code 本身就会在代码库里自己 grep——但有了这个工具后,它不用再做五轮文本搜索来弄清楚谁调用谁,而是直接查询图谱,一次调用就拿到精确答案,附带 file:line 信息。这里完全没有 embedding 模型参与,就是……图谱本身。这对本地模型来说可能更加重要,因为它们的搜索能力其实不太行。演示(2分钟):https://youtu.be/B7GLgjoy7G8 仓库:https://github.com/bolongpa/repopedia 提前打个预防针:当前版本是 0.2.1,只支持 Python 和 TypeScript。通过 self. 的方法调用是靠名称匹配来解析的,在大型类继承树上,这个做法确实和听起来一样不靠谱。如果有人在自己的仓库上跑过,发现它输出了什么离谱的结果,我真心希望能听到反馈。¯\_(ツ)_/¯
查看原文

相似文章

colbymchenry/codegraph

GitHub Trending (daily)

CodeGraph 是一个开源工具,为代码库创建预索引的知识图谱,使 Claude Code 的探索代理能够即时查询符号关系和调用图,将工具调用次数减少高达 96%,探索时间减少 77%。

Graphify-Labs/graphify

GitHub Trending (daily)

Graphify将整个项目(代码、文档、PDF、图片、视频)映射成一个知识图谱,可通过AI编码助手进行查询,并利用tree-sitter AST进行本地代码解析。

vitali87/code-graph-rag

GitHub Trending (daily)

Code-Graph-RAG 是一个开源工具,使用 Tree-sitter 解析多语言代码库,在 Memgraph 中构建知识图谱,并让你用自然语言查询、编辑和优化代码。它支持在统一图模式下的混合语言 monorepo。