v0.2.0¶
Release Date: 2026-04-19
Major release featuring multi-language extraction, enhanced analysis, platform integrations, and new export formats.
Highlights¶
- Multi-language extraction: Go, Java, TypeScript, Swift
- External provider interface for adding language support without modifying graphize core
- Node explanation with community membership and centrality context
- Platform installers for Claude, Cursor, Copilot, Codex, Gemini, and Aider
- Corpus health check for assessing graph value
- Watch mode for auto-rebuild on file changes
- Git hooks for automatic analysis on commit/checkout
- Neo4j Cypher and Obsidian vault export formats
Multi-Language Extraction¶
Graphize now supports multiple programming languages through its provider architecture:
| Language | Parser | Features |
|---|---|---|
| Go | Native go/ast |
Functions, types, methods, imports, calls |
| Java | Tree-sitter | Classes, methods, fields, Spring framework detection |
| TypeScript/JavaScript | Tree-sitter | Functions, classes, imports, exports |
| Swift | Tree-sitter | Classes, protocols, extensions |
Framework Detection¶
Java extractors detect Spring framework annotations:
@Controller,@RestController→ Controller layer@Service→ Service layer@Repository→ Repository layer
Provider Interface¶
External packages can implement the LanguageExtractor interface to add support for additional languages:
import "github.com/plexusone/graphize/provider"
type MyExtractor struct{}
func (e *MyExtractor) Language() string { return "mylang" }
func (e *MyExtractor) Extensions() []string { return []string{".ml"} }
func (e *MyExtractor) CanExtract(path string) bool { ... }
func (e *MyExtractor) ExtractFile(path, baseDir string) ([]*graph.Node, []*graph.Edge, error) { ... }
func (e *MyExtractor) DetectFramework(path string) *provider.FrameworkInfo { ... }
func init() {
provider.Register(func() provider.LanguageExtractor {
return &MyExtractor{}
}, provider.PriorityCustom)
}
Priority levels control which extractor handles a file extension when multiple are registered:
PriorityDefault (0)- Built-in extractorsPriorityThick (10)- SDK-based extractors (can override default)PriorityCustom (100)- User-provided custom extractors
New Commands¶
graphize path¶
Find the shortest path between two nodes:
Output shows intermediate nodes and edge types:
graphize benchmark¶
Show token reduction statistics:
Compares raw corpus size vs TOON output with compression ratio.
graphize watch¶
Auto-rebuild graph on file changes:
graphize watch # Basic watch mode
graphize watch --html --report # Also regenerate outputs
graphize watch --debounce 1s # Custom debounce delay
Features:
- Uses fsnotify for file system events
- Debounces rapid changes (500ms default)
- Skips test files for faster rebuilds
graphize hook¶
Manage git hooks for automatic graph updates:
graphize hook install # Install post-commit and post-checkout hooks
graphize hook uninstall # Remove hooks
graphize hook status # Check installation status
Installed hooks:
- post-commit: Auto-run
graphize analyzeafter commits - post-checkout: Check if graph is stale after checkout
graphize explain¶
Get comprehensive context about a node:
graphize explain func_main
graphize explain func_main --depth 2 # Include 2 levels of neighbors
graphize explain func_main --json # JSON output
Output includes:
- Node attributes (type, label, source file)
- Community membership and size
- Betweenness centrality rank
- Incoming and outgoing edges
graphize install¶
Install integrations with AI assistants:
graphize install claude # Claude Desktop MCP server config
graphize install cursor # .cursor/rules/graphize.mdc
graphize install copilot # .github/copilot/skills/graphize.md
graphize install codex # hooks.json
graphize install gemini # .gemini/context/graphize.md
graphize install aider # AGENTS.md section
Flags:
--status- Check installation status--uninstall- Remove integration--force- Overwrite existing configuration--dry-run- Show what would be changed
graphize report --health¶
Assess corpus health and graph value:
Output includes:
- File count and word count
- Estimated token count
- Graph nodes and edges
- Token reduction percentage
- Verdict: "valuable", "marginal", or "limited"
New Export Formats¶
Neo4j Cypher¶
Export graph as Neo4j CREATE statements:
Generates:
- CREATE statements for all nodes with labels and properties
- CREATE statements for all edges with types and properties
- Confidence metadata for semantic edges
Obsidian Vault¶
Export graph as wiki-style Obsidian vault:
Creates:
vault/
├── index.md # Entry point with god nodes
├── communities/ # One page per community
│ ├── community-0.md
│ └── community-1.md
└── nodes/ # One page per significant node
├── func_main.md
└── type_Config.md
Pages interconnected with [[wikilinks]] for Obsidian navigation.
New Flags¶
--directed (analyze)¶
Control graph directionality:
graphize analyze --directed=false # Undirected graph
graphize analyze --directed=true # Directed graph (default)
Setting is persisted in manifest.json for consistent handling.
Export Format Summary¶
| Format | Command | Use Case |
|---|---|---|
| HTML | export html |
Interactive visualization |
| TOON | export toon |
Token-efficient for AI agents |
| JSON | export json |
Machine-readable |
| GraphML | export graphml |
Gephi, yEd, Cytoscape desktop |
| Cypher | export cypher |
Neo4j database import |
| Obsidian | export obsidian |
Wiki-style documentation |
Documentation Extraction¶
Include markdown and text files in the knowledge graph:
graphize enhance --include-docs # Include markdown/text files
graphize enhance --docs-only # Only documentation files
Supported extensions: .md, .markdown, .txt, .rst
The extractor:
- Creates concept nodes from headings
- Links code references to code entities
- Generates
documents,describes, andexplainsedges
Upgrading from v0.1.0¶
No breaking changes. All existing commands work as before.
New features are additive:
- Run
graphize hook installto enable automatic analysis - Use
graphize watchduring development for live updates - Try
graphize explainto understand node context - Use
graphize installfor AI assistant integrations - Add
--healthtographize reportfor corpus assessment - Try new export formats for Neo4j or Obsidian workflows