MUSUBIX CodeGraph - Multi-language Code Graph Analysis Engine supporting 16 programming languages with PR generation
npm install @nahisaho/musubix-codegraphMulti-language Code Graph Analysis Engine for MUSUBIX


@nahisaho/musubix-codegraph is a high-performance code graph analysis library that provides:
- AST Parsing: Tree-sitter based multi-language code parsing (16 languages in v2.3.2)
- Graph Engine: Code entity and relationship graph construction
- GraphRAG: Graph-based Retrieval Augmented Generation for code search
- YATA Integration: Seamless integration with YATA knowledge graph
``bash`
npm install @nahisaho/musubix-codegraph
`typescript
import { CodeGraph } from '@nahisaho/musubix-codegraph';
// Create instance
const codeGraph = new CodeGraph({
storage: 'memory', // or 'sqlite', 'yata'
});
// Index a repository
const result = await codeGraph.index('/path/to/repo');
console.log(Indexed ${result.entitiesIndexed} entities);
// Query the graph
const deps = await codeGraph.findDependencies('UserService', { depth: 3 });
const callers = await codeGraph.findCallers('authenticate');
// GraphRAG search
const results = await codeGraph.globalSearch('authentication flow');
// Get statistics
const stats = await codeGraph.getStats();
`
`typescript
import { ASTParser, GraphEngine, GraphRAGSearch } from '@nahisaho/musubix-codegraph';
// Parse a single file
const parser = new ASTParser();
const parseResult = await parser.parseFile('src/index.ts');
// Use graph engine directly
const graph = new GraphEngine(storage);
await graph.addEntity(entity);
const path = await graph.findPath('A', 'B');
// GraphRAG search
const search = new GraphRAGSearch(graph);
const communities = await search.detectCommunities();
`
| Priority | Language | Extensions | Status |
|----------|----------|-----------|--------|
| Existing | TypeScript | .ts, .tsx | ✅ Full Support |.js
| Existing | JavaScript | , .jsx, .mjs | ✅ Full Support |.py
| Existing | Python | , .pyw | ✅ Full Support |.rs
| P0 | Rust | | ✅ Full Support |.go
| P0 | Go | | ✅ Full Support |.java
| P0 | Java | | ✅ Full Support |.php
| P1 | PHP | | ✅ Full Support |.cs
| P1 | C# | | ✅ Full Support |.c
| P1 | C | , .h | ✅ Full Support |.cpp
| P1 | C++ | , .hpp, .cc, .hh | ✅ Full Support |.rb
| P1 | Ruby | | ✅ Full Support |.tf
| P2 | HCL/Terraform | , .hcl | ✅ Full Support |.kt
| P2 | Kotlin | , .kts | ✅ Full Support |.swift
| P2 | Swift | | ✅ Full Support |.scala
| P2 | Scala | , .sc | ✅ Full Support |.lua
| P2 | Lua | | ✅ Full Support |
Entity Types Extracted:
- Functions, Methods, Constructors
- Classes, Interfaces, Traits, Protocols
- Structs, Enums, Records, Unions
- Modules, Packages, Namespaces
- Variables, Constants, Properties
- Type Definitions, Templates
- Language-specific constructs (Terraform resources, Swift extensions, etc.)
`typescript`
class CodeGraph {
// Indexing
index(path: string): Promise
reindex(path: string): Promise
// Querying
query(query: string): Promise
findDependencies(entity: string, options?: DepOptions): Promise
findCallers(entity: string): Promise
findCallees(entity: string): Promise
findImplementations(interfaceName: string): Promise
analyzeModule(path: string): Promise
// Code Retrieval
getSnippet(entityId: string): Promise
getFileStructure(path: string): Promise
// GraphRAG
globalSearch(query: string): Promise
localSearch(entity: string, options?: LocalSearchOptions): Promise
// Statistics
getStats(): Promise
// Events
on(event: 'indexing:start' | 'indexing:progress' | 'indexing:complete', handler): void;
}
`typescript
const codeGraph = new CodeGraph({
storage: 'memory', // In-memory (default, fast, no persistence)
});
const codeGraph = new CodeGraph({
storage: 'sqlite', // SQLite (persistent)
sqlitePath: '.codegraph/index.db',
});
// YATA integration
import { YataDatabase } from '@nahisaho/yata-local';
import { createYataAdapter } from '@nahisaho/musubix-codegraph/storage';
const yata = new YataDatabase();
await yata.open();
const codeGraph = new CodeGraph({
storage: createYataAdapter(yata),
});
`
When used with MUSUBIX CLI:
`bashIndex repository
musubix cg index /path/to/repo
| Metric | Value |
|--------|-------|
| Indexing speed | ~32 entities/sec |
| Query response | < 500ms |
| Incremental index | < 2 sec |
| Memory usage | < 500MB |
- Node.js >= 20.0.0
- npm >= 10.0.0
MIT License - see LICENSE
- MUSUBIX - Neuro-Symbolic AI Integration System
- @nahisaho/yata-local - Local Knowledge Graph Storage
- CodeGraphMCPServer - Original Python implementation