JohnXu22786/codegraph

JohnXu22786★ 0Python最后同步: 2026-08-16

在 GitHub 打开

Code knowledge graph plugin for agent harnesses (dsh): indexes symbols, call sites and imports into SQLite, answers call/dependency questions via CLI or stdio MCP tool server

README 摘要

CodeGraph 代码知识图谱插件:把代码库解析成可查询的索引,让 agent 能回答「谁调用了这个函数」「这个模块依赖什么」这类结构性问题。适合用来快速理解大型代码库,或作为改动前的风险排查工具。 自包含实现:Python 标准库 + SQLite,无强制第三方依赖。提供 CLI、Python API、以及一个 stdio 工具服务器(MCP 风格的 JSON-RPC 2.0),任何插件化 harness 都能以子进程方式加载它。 功能 - 调用关系 : callers / callees —— 谁调用了某个函数/方法,它又调用了什么 - 依赖关系 : deps / dependents —— 模块或文件导入了什么、被谁导入(区分内部解析与外部依赖) - 全文搜索 : search —— 对符号名、docstring、签名做本地全文检索(SQLite FTS5,无需外部服务) - 影响面分析 : impact —— 传递闭包,列出「这个符号改了会波及谁」 - 增量索引 :按内容哈希比对,只重解析变化的文件,删除的文件自动清理 - 导出可视化 : export dot json —— Graphviz DOT / JSON,可直接丢进可视化工具 - 查询缓存 :工具服务器对只读查询做 30 秒 TTL 缓存 - 两种解析引擎 :tree-sitter(精确,可选安装)与正则扫描器(零依赖兜底),自动选择 工作原理 跨文件解析是启发式的,按优先级尝试:同文件精确匹配 → 导入可达文件 → 同包/同模块族 → 全局唯一名。解析失败的调用点保留原始文本并标记为 unresolved(外部代码、标准库、第三方包)。 安装 支持 Python ≥ 3.10。支持语言:Python、JavaScript、TypeScript、Go、Java、Rust。 快速开始 命令行 命令 说明 示例 init 在项目根写入 starter 配置 codegraph.json codegraph init index [--force] 建立/刷新索引; --force 全量重解析 codegraph index --force status 统计:文件/符号/调用/导入数、解析率、语言分布 codegraph status callers SYMBOL 直接调用者 codegraph callers pkg.cart.Cart.add callees SYMBOL 被调用者 codegraph callees app.main deps MODULE 模块依赖 codegraph deps web/index.ts dependents MODULE 反向依赖 codegraph dependents pkg.pricing impact SYMBOL [--depth N] 传…

在 GitHub 查看完整 README →
终端/TUIdeepseek-harnessdshdsh-pluginagentsearch

分类