85.2万星!别再全文搜索了:一句话,把整个项目变成可查询的知识图谱
接手陌生项目别再瞎搜了:用 graphify 把项目
graphify install
graphify cursor install
然后在助手里输入:
...
/graphify .
PowerShell 注意:斜杠 /graphify 在 PowerShell 里可能被当成路径。CLI 侧用 graphify .;在 AI编码工具,可以通过聊天触发即可。
包名也注意一下:PyPI 包是 graphifyy(双 y),命令仍是 graphify。用 uvx 时要写:uvx --from graphifyy graphify install。
图构建完成后,可以直接查询图,而无需读取文件。
团队协作时,可以把 graphify-out/提交进 git(官方推荐),其他人 pull 下来就能直接用;再配:
...powershell
graphify hook install
每次 commit 后自动增量重建(代码 AST 部分不耗 API)。
03MOVES
三招干货
建完图之后,可以这么尝试用一下。
招 1:explain —— 解释这个类到底干什么
...text
graphify explain "APIRouter"
会告诉你:源文件位置、所属社区、连接度,以及上下游关系。接手项目时,对「听过名字但没打开过」的模块特别管用。
招2:path —— 查看路径:A 和 B 怎么连上的
graphify path "FastAPI" "ModelField"
示例输出(官方在 FastAPI 上跑出来的):
Shortest path (3 hops):
FastAPI --uses--> DefaultPlaceholder
改需求前大家可以先跑一条 path
招数 3:query —— 也可以直接问结构
graphify query "what connects auth to the database?"
或对着助手说:
这个登录流程经过哪些模块?
DigestAuth 和 Response 是怎么连上的?
会返回裁剪过的子图。
04REPORT
读一下 GRAPH_REPORT
打开 graphify-out/GRAPH_REPORT.md,建议看这三个地方:
1)God Nodes(枢纽)
连接度最高的概念。以官方 httpx 样例为例:
Client / AsyncClient
对外入口
Request / Response
数据模型核心
HTTPTransport
传输层枢纽
公司推荐用法:改 bug 前先扫一眼 God nodes。
2)Surprising Connections(意外连接)
跨文件、跨模块的边,且往往带 INFERRED。这是找「隐藏耦合」的入口,也是最需要人工复核的部分。
3)Communities(社区)
Leiden 算法按图拓扑聚类出的子系统(不靠 embedding)。颜色块 ≈ 模块边界。新人 onboarding 可以按社区一块块啃,而不是按文件夹瞎逛。
05PRACTICE
实战:接手一个陌生仓库的 15 分钟流程
假设你刚拿到一个业务仓库,老板说「周五前修登录超时」。
建图(首次) graphify . 或在 AI编码终端(trae,codex,cursor等)里 /graphify .
扫报告 打开 GRAPH_REPORT.md,记下与 auth / session / timeout 相关的 God nodes
开图谱 浏览器打开 graph.html,按社区过滤,点开可疑节点
问路径graphify path "LoginHandler" "Timeout"(换成你仓库里的真实名字)
再动手改代码 这时候你已经知道改哪些文件
(可选)固化给团队 提交 graphify-out/ + graphify hook install
小样例想本地复现,仓库自带 worked/httpx/、worked/example/,可直接:
/graphify ./worked/httpx/raw
写在最后
定位对了就好用:给 Agent 和人一张可查询的项目地图,而不是替代你读代码。