Releases: ctxrs/graf
Release list
Graf 0.6.0
Graf 0.6 makes large repositories much faster to search and update.
- On the full VS Code repository, Graf searches in 13 ms and updates an unchanged graph in 880 ms.
- The new compact storage layout cuts database and journal growth while preserving the richer graph.
- Incremental updates now reuse prepared SQLite state and touch only changed files.
- Source changes during an update are detected before the new generation is published.
- The README now has a shorter setup, a plain-English Graphify comparison, and a one-command migration flow.
Existing databases upgrade automatically on the next successful write. Install or upgrade with the command in the README.
Graf 0.5.0
Graf 0.5 improves incremental indexing, source-grounded navigation and persistent graph storage.
- Resolve more local callable values. In JavaScript and TypeScript, follow ordinary factories with one final return of a known, unchanged function. Keep declaration links separate when the runtime implementation is unknown.
- Use scoped qualified-name endings to find symbols while retaining explicit errors for genuinely ambiguous identities.
- Update affected bindings transactionally with less duplicated storage and repeated SQL work. Ordinary queries read the saved index without rebuilding it.
- Reclaim reusable database pages explicitly with
graf compact; it does not scan source files or change graph contents. - Analyze communities with native Leiden by default, retain
--community-algorithm louvain, and use--community-starts 4for additional modularity search within the shared work budget. More search costs more work and does not guarantee meaningful groups or convergence.
Existing indexes: Graf 0.5 reads older indexes. A successful refresh upgrades storage atomically; afterward use Graf 0.5 or later to open that database. Portable JSON snapshots remain compatible. Compaction is explicit, and an upgrade can leave reusable space until it runs.
Install or upgrade using the verified installer. See the usage guide for supported cases, limits and commands.
Graf 0.4.0
Graf 0.4.0 adds explicit local learning workflows, broader source navigation, and offline graph exploration.
- Save answers with
save-result, generate lessons withreflect, and opt into memory annotations in CLI, MCP, and exports. Native source hashes distinguish verified observations from stale or unverified records. - Inspect GitHub pull requests with
prs; GitHub access occurs only when requested. Optional project tool hooks suggest graph navigation while allowing ordinary source reads. - Discover supported literal SwiftPM targets automatically, resolve more explicit Python/TypeScript/Go/Rust relationships, and retain uncertainty for ambiguous or dynamic calls.
- Select Leiden analysis alongside the default Louvain algorithm, preserve imported community identities, and explore offline HTML graphs with clickable neighbors and group outlines.
- Detect and configure semantic providers explicitly, with bounded usage, recovery, and usage receipts.
See the usage guide for commands, supported cases, and limits. Graphify snapshots can be imported with graf switch graphify; Graf has its own CLI and is not a Python API replacement.
Re-run the installer to upgrade. Downloads cover Linux x64/ARM64, macOS Intel/Apple Silicon, and Windows x64, with signed manifests, per-platform SBOMs, and license notices.
Graf 0.3.0
Graf 0.3 adds native language and document indexing, richer graph navigation, and offline analysis while keeping ordinary queries on the saved SQLite graph.
- Index code with explicit project context, including local imports, package relationships, templates, and source evidence. Unsupported or ambiguous targets remain visible as unresolved references.
- Add Markdown, PDF, Office, and other documents; opt into media converters and model enrichment with explicit budgets and caches.
- Search, trace paths and impact, analyze communities, save labels, and export offline HTML, GraphML, Cypher, Mermaid, SVG, Markdown, Canvas, or Obsidian notes.
- Merge project snapshots, query a saved global graph, and connect agents through reversible setup and stdio or HTTP MCP.
- Migrate an existing Graphify project with
graf switch graphify. Graphify snapshots and selected tools are supported; Python internals and compiler-level analysis are outside this compatibility contract.
See the usage guide for language limits, provider configuration, and examples.
Install on macOS/Linux:
curl -fsSL https://raw.githubusercontent.com/ctxrs/graf/main/install.sh | shInstall on Windows:
irm https://raw.githubusercontent.com/ctxrs/graf/main/install.ps1 | iexDownloads are gzip archives containing the signed executables. Follow the download verification guide for manual extraction and verification. Every platform includes a dependency inventory and third-party notices; the signed manifest authenticates both compressed and executable bytes.
Graf 0.2.0
Graf 0.2 adds a one-command switch from a Graphify snapshot to Graf's persistent graph and MCP server:
curl -fsSL https://raw.githubusercontent.com/ctxrs/graf/main/install.sh | sh -s -- --from graphifyAlready installed? Run graf switch graphify in your project, then restart your agent client. Graf imports the snapshot, changes the selected MCP connection, and verifies it over MCP. It preserves unrelated settings and the original graph. graf switch --undo restores the saved configuration and refuses to overwrite later edits. Global configurations require explicit --config selection.
Graphify export imports now preserve logical direction and parallel facts, including raw no-cluster exports. Use graf --db imported.db import graphify graphify-out/graph.json --format export for an import without changing MCP configuration. The default import mode retains Graf 0.1's strict node-link interpretation. Unreadable or invalid ignore rules now stop native indexing updates instead of silently dropping exclusions; the previous graph generation remains intact.
Graf has its own CLI and MCP tools. Keep Graphify for generating graphs from languages and documents Graf does not index natively; native Graf indexing currently covers Python. Migration does not refresh snapshots or remove Graphify's generation tools.
Downloads cover Linux x64/ARM64, macOS Intel/Apple Silicon, and Windows x64. Installers verify the signed release manifest and asset hashes. macOS binaries are signed and notarized; Windows binaries are Authenticode signed. Target-specific SBOMs and third-party notices accompany the binaries.
Validation passed 85 Rust tests on current stable and Rust 1.90, 17 additional Graphify regressions, and 16 acceptance cases on each of the five shipping platforms. Native checks include migration, configuration permissions, Unicode/deep paths, and undo.
Graf 0.1.0
Graf's first release provides a persistent local code graph, written in Rust.
Install the latest Graf release on Linux or macOS:
curl -fsSL https://raw.githubusercontent.com/ctxrs/graf/main/install.sh | shOn Windows x64, in PowerShell:
irm https://raw.githubusercontent.com/ctxrs/graf/main/install.ps1 | iexThe installers verify the signed release manifest, executable and license notices. See installation options for prerequisites, PATH setup, version selection and custom directories.
- Index Python definitions, imports and call sites; update only changed files.
- Find symbols, inspect callers/callees, trace impact and follow paths through the graph.
- Import supported Graphify node-link JSON snapshots.
- Use the same read-only query engine through the CLI or seven MCP tools.
Graphs and search indexes live in SQLite. Queries do not reload graph JSON or rebuild the graph. Indexing and querying need no API keys, model calls or background service.
Download the executable for Linux x64/ARM64, macOS Intel/Apple Silicon or Windows x64 below. Each has an SBOM and license notices. See download verification and installation for platform requirements, signatures and checksums.
Native indexing currently supports Python. Call resolution is conservative, so dynamic or ambiguous calls may remain unresolved. Graphify imports are snapshots; Graf has its own CLI and MCP API. See the README for the supported behavior and limitations.