abhigyanpatwari / GitNexus

abhigyanpatwari/GitNexus

open_in_new前往仓库

GitNexus:零服务器代码智能引擎,纯浏览器端知识图谱构建器。支持导入Git仓库或ZIP文件,生成交互式知识图谱,内置Graph RAG智能体,助力代码探索。

项目概览

项目概述

GitNexus 是一个零服务器代码智能引擎,完全在浏览器中运行。它可以将 Git 仓库(支持 GitHub、Gitlab、Azure、本地仓库)或 ZIP 文件转换为交互式知识图谱,并内置 Graph RAG 智能体,用于代码探索。项目由 abhigyanpatwari 开发,使用 TypeScript 编写,采用 PolyForm 非商业许可证。GitNexus 的核心创新在于“预计算关系智能”,在索引时预先计算结构(聚类、追踪、评分),使 AI 工具在一次调用中获得完整上下文,避免多次查询。

核心功能

  • 知识图谱构建:索引代码库,生成包含依赖、调用链、聚类和执行流的知识图谱。
  • MCP 集成:提供 17 个 MCP 工具(如 impact、trace、query 等),供 AI 智能体使用。
  • 多编辑器支持:支持 Claude Code、Cursor、Codex、Antigravity 等,自动配置 MCP、技能和钩子。
  • Web UI:浏览器中的可视化图谱浏览器和 AI 聊天,支持本地后端模式。
  • 多语言支持:支持 TypeScript、JavaScript、Python、Java、Kotlin、C#、Go、Rust、PHP、Ruby、Swift、C、C++、Dart 等 14 种语言。
  • 混合搜索:结合 BM25、语义搜索和 RRF 排序。
  • Wiki 生成:从知识图谱生成 LLM 驱动的文档。
  • 仓库组:支持多仓库/单体仓库服务跟踪,跨仓库影响分析。

适用与不适用场景

适用场景:

  • 日常开发中,使用 AI 编程助手(如 Cursor、Claude Code)时,需要深度理解代码库结构。
  • 快速探索不熟悉的代码库,进行一次性分析。
  • 需要评估代码变更的影响范围(blast radius)。
  • 生成架构文档或代码 Wiki。
  • 多仓库或单体仓库服务间的依赖追踪。

不适用场景:

  • 需要商业使用(许可证限制)。
  • 浏览器内存有限,处理超过约 5000 文件的大型仓库(Web UI 模式)。
  • 需要实时索引更新(目前索引是静态的,需手动重新分析)。
  • 对隐私要求极高,且不能接受任何网络请求(CLI 模式完全本地,但 Web UI 可能涉及 CDN)。

技术架构与依赖

  • 运行时:Node.js(CLI)、浏览器 WASM(Web UI)。
  • 解析:Tree-sitter(原生绑定 / WASM)。
  • 数据库:LadybugDB(原生 / WASM),嵌入式图数据库,支持向量。
  • 嵌入:HuggingFace transformers.js(GPU/CPU / WebGPU/WASM)。
  • 搜索:BM25 + 语义 + RRF。
  • 智能体接口:MCP(stdio)、LangChain ReAct agent(Web)。
  • 可视化:Sigma.js + Graphology(WebGL)。
  • 前端:React 18、TypeScript、Vite、Tailwind v4。
  • 聚类:Graphology。
  • 并发:Worker threads + async(CLI)、Web Workers + Comlink(Web)。

安装与快速开始

安装 CLI:

npm install -g gitnexus

快速开始:

# 1. 索引你的仓库(在仓库根目录运行)
npx gitnexus analyze

# 2. 连接你的编辑器(一次性,自动检测 Claude Code、Cursor、Codex 等)
npx gitnexus setup

Web UI: 无需安装,访问 gitnexus.vercel.app。

Docker 部署:

docker compose up -d

典型使用方法

影响分析:

impact({target: "UserService", direction: "upstream", minConfidence: 0.8})

搜索:

query({search_query: "authentication middleware"})

上下文查看:

context({name: "validateUser"})

变更检测:

detect_changes({scope: "all"})

重命名:

rename({symbol_name: "validateUser", new_name: "verifyUser", dry_run: true})

Cypher 查询:

MATCH (c:Community {heuristicLabel: 'Authentication'})<-[:CodeRelation {type: 'MEMBER_OF'}]-(fn)
MATCH (caller)-[r:CodeRelation {type: 'CALLS'}]->(fn)
WHERE r.confidence > 0.8
RETURN caller.name, fn.name, r.confidence
ORDER BY r.confidence DESC

配置与部署要点

  • 环境变量:大量 GITNEXUS_* 环境变量可调优,如 GITNEXUS_WORKER_POOL_SIZE、GITNEXUS_MAX_FILE_SIZE、GITNEXUS_MCP_READ_ONLY 等。
  • 项目配置:可在仓库根目录提交 .gitnexusrc JSON 文件预配置 analyze 选项。
  • Docker 部署:使用 docker compose up -d,可设置 WORKSPACE_DIR 挂载主机目录。
  • Render 部署:一键部署,需配置 GITNEXUS_SERVE_AUTH_TOKEN。
  • 安全:CLI 完全本地,Web UI 数据在浏览器内处理。MCP 支持只读模式、仓库白名单、响应预算。
  • 许可证:PolyForm 非商业许可证,商业使用需联系。

限制、风险与许可证

  • 许可证:PolyForm 非商业许可证 1.0.0,商业使用需获得授权。
  • 风险:
    • 索引是内存密集型,大型仓库可能内存不足。
    • Web UI 受浏览器内存限制(约 5000 文件)。
    • 存在已知问题,如 npm 11 安装崩溃、代理环境下的嵌入下载问题。
    • 官方声明无任何加密货币代币,谨防诈骗。
  • 限制:
    • 不支持增量索引(计划中)。
    • 控制流图(CFG)仅支持 TypeScript/JavaScript(可选)。
    • 部分语言(如 Swift、C/C++)的导入解析支持有限。

官方链接

信息来源和分析时间

  • 信息来源:GitHub 仓库 README、CHANGELOG、CONTRIBUTING、工程计划文档。
  • 分析时间:2026-07-04(基于最新发布版本)。
  • 注意:仓库资料未提供部分细节,如具体版本历史、完整依赖列表等,请参考官方文档。