乐于分享
好东西不私藏

CodeGraph:让 AI 编程助手理解你的代码库

CodeGraph:让 AI 编程助手理解你的代码库

CodeGraph:让 AI 编程助手理解你的代码库

项目介绍

CodeGraph 是一个本地优先的代码智能系统,它将源代码构建成语义知识图谱,从而加速 AI 辅助开发。通过预先索引代码结构、关系和语义到 SQLite 数据库中,CodeGraph 让 Claude Code 等 AI 助手能够查询图谱而不是重复扫描文件,显著降低了 LLM 探索的开销。

在实际测试中,CodeGraph 实现了约16% 更便宜的操作、47% 更少的 token58% 更少的工具调用

框架介绍

CodeGraph 采用多层管道架构,通过 tree-sitter 解析源代码,将符号和边存储在 SQLite 数据库中,并通过 MCP 协议向 AI 编程助手暴露知识图谱。

核心组件包括:

  • 提取子系统:使用 web-tree-sitter 和 WASM 语法进行高保真 AST 解析
  • 解析子系统:处理跨文件引用解析,包括导入解析、名称匹配和框架特定模式
  • 存储子系统:基于 SQLite 的图数据库,支持 FTS5 全文搜索
  • 查询子系统:提供调用者、被调用者、影响半径等图遍历查询

框架流程图

解析子系统
存储子系统
提取子系统
核心逻辑
入口点
CLI 入口点
(dist/bin/codegraph.js)
MCP 服务器
(MCP 工具接口)
CodeGraph 引擎
(src/index.ts)
ExtractionOrchestrator
TreeSitterExtractor
WASM 语法
(dist/extraction/wasm/*.wasm)
DatabaseConnection
(src/db/index.ts)
QueryBuilder
(src/db/queries.ts)
SQL 模式
(dist/db/schema.sql)
.codegraph/codegraph.db
ReferenceResolver
(src/resolution/index.ts)
ImportResolver
NameMatcher

使用方法

安装

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.sh | sh

# Windows (PowerShell)

irm https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.ps1 | iex

# 或使用 npm

npm i -g @colbymchenry/codegraph

配置 AI 助手

codegraph install

此命令会自动检测并配置已安装的 AI 助手(Claude Code、Cursor、Codex CLI、opencode、Hermes Agent、Gemini CLI、Antigravity IDE、Kiro)。

初始化项目

cd your-project
codegraph init -i

-i参数会在初始化后立即构建索引。

使用场景

1. 架构探索

当 AI 助手探索代码库时,CodeGraph 提供预索引的知识图谱,包含符号关系、调用图和代码结构,让助手能够即时查询图谱而不是扫描文件。

2. 影响分析

在修改代码前,使用codegraph_impact分析更改符号的影响范围,追踪调用者、被调用者和完整的影响半径。

3. 跨语言项目

支持 iOS/React Native/Expo 混合项目,连接 Swift ↔ ObjC 桥接、React Native legacy bridge + TurboModules + Fabric view components、native → JS event emitters 等跨语言流程。

4. 框架路由分析

识别 14 个 Web 框架的路由文件,将 URL 模式链接到其处理程序,包括 Django、Flask、FastAPI、Express、NestJS、Laravel、Rails、Spring 等。

核心特点

特性描述
智能上下文构建一次工具调用返回入口点、相关符号和代码片段,无需昂贵的探索代理
全文搜索通过 FTS5 在整个代码库中按名称查找代码
影响分析在更改之前追踪调用者、被调用者和任何符号的完整影响半径
始终新鲜文件监视器使用原生 OS 事件进行防抖自动同步
20+ 语言支持TypeScript、JavaScript、Python、Go、Rust、Java、C#、PHP、Ruby、C、C++、Objective-C、Swift、Kotlin、Dart、Lua、Luau、Svelte、Liquid、Pascal/Delphi
框架感知路由识别 Web 框架路由文件并将 URL 模式链接到处理程序
100% 本地数据不离开机器,无 API 密钥,无外部服务,仅 SQLite 数据库

技术亮点

Tree-sitter 驱动

使用web-tree-sitter和 WASM 语法进行高保真 AST 解析,支持 22+ 种语言。

跨文件解析

处理复杂的跨文件关系,包括泛型类型、提升的方法和框架特定约定,如 Luarequire、RustRocket宏、SwiftFluent关系。

增量更新

仅重新索引更改的文件,通过后台同步保持索引新鲜度。

多操作系统兼容性

支持 Windows、macOS 和 Linux,通过CODEGRAPH_DIR环境变量专门处理 WSL/Windows 文件系统边界。

使用 Demo

MCP 工具使用

当 AI 助手通过 MCP 连接到 CodeGraph 时,可以使用以下工具:

工具用途
codegraph_explore主要工具。在一个调用中返回相关符号、调用流程和"爆炸半径"影响的源代码
codegraph_search在整个代码库中执行语义和关键词搜索
codegraph_callers识别调用特定节点的所有函数/方法
codegraph_impact分析更改符号的"爆炸半径",跟踪跨文件依赖关系
codegraph_node检索详细的节点元数据或读取整个源文件
codegraph_status报告索引新鲜度、CLI 版本和索引路径

编程式 API

import CodeGraph from '@colbymchenry/codegraph';

const
 cg = await CodeGraph.init('/path/to/project');

await
 cg.indexAll({
  onProgress
: (p) => console.log(`${p.phase}: ${p.current}/${p.total}`)
});

const
 results = cg.searchNodes('UserService');
const
 callers = cg.getCallers(results[0].node.id);
const
 impact = cg.getImpactRadius(results[0].node.id, 2);

cg.watch();   // 文件更改时自动同步
cg.close();

总结

CodeGraph 通过将代码库转换为可查询的知识图谱,为 AI 编程助手提供了结构化的代码理解能力。它显著降低了 token 消耗和工具调用次数,同时保持了 100% 的本地隐私保护。支持 20+ 种编程语言和 14 个 Web 框架,使其成为现代开发工作流的强大工具。

GitHub 地址

https://github.com/colbymchenry/codegraph