Skip to content

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 extractors
  • PriorityThick (10) - SDK-based extractors (can override default)
  • PriorityCustom (100) - User-provided custom extractors

New Commands

graphize path

Find the shortest path between two nodes:

graphize path func_main func_handleRequest

Output shows intermediate nodes and edge types:

func_main
  --[calls]--> func_init
  --[calls]--> func_handleRequest

graphize benchmark

Show token reduction statistics:

graphize benchmark

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 analyze after 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:

graphize report --health

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:

graphize export cypher -o graph.cypher

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:

graphize export obsidian -o ./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, and explains edges

Upgrading from v0.1.0

No breaking changes. All existing commands work as before.

New features are additive:

  1. Run graphize hook install to enable automatic analysis
  2. Use graphize watch during development for live updates
  3. Try graphize explain to understand node context
  4. Use graphize install for AI assistant integrations
  5. Add --health to graphize report for corpus assessment
  6. Try new export formats for Neo4j or Obsidian workflows