Claude
Skills
Sign in
Back

graphify

Included with Lifetime
$97 forever

Use when exploring unfamiliar codebases, before searching for code, or after editing files. Builds a structural AST index (classes, functions, imports, call graph) from 12 languages via tree-sitter. Trigger: /graphify

General

What this skill does


# graphify — Code Navigation Layer

Structural index of the codebase. Know what exists, where, and how it connects — before you grep.

**Requires CLI:** `npm i -g graphify-ts` (uses Bun runtime).

**Manual updates only.** The graph does not refresh on its own — you (or the user) run `graphify update` or `graphify build` when you want a fresh index. This avoids write conflicts in git worktrees and other multi-session setups.

## First-time setup (one-time per machine)

```bash
npm i -g graphify-ts    # install CLI
```

Then, once per project:

```bash
graphify build .
```

After that, refresh manually whenever the index drifts from the code (see `graphify update` below).

## Commands

### `/graphify build` — Build index (first time, or full rebuild)

```bash
graphify build .
```

Scans all source files, extracts AST structure, saves to `graphify-out/graph.json`.

Report: "Indexed {files} files, {nodes} symbols, {edges} relationships"

### `/graphify query <name>` — Search for symbols

```bash
graphify query graphify-out/graph.json <name>
```

Case-insensitive search. Returns matching symbols with file locations.

### `/graphify update <files...>` — Incremental update after edits

```bash
graphify update graphify-out/graph.json <file1> [file2...]
```

Re-extract only the specified files. Run this after editing code if you plan to query the graph again in the same session.

### `/graphify auto-update` — Bulk update from git diff

```bash
graphify auto-update [dir]
```

Computes changed code files via `git diff` + untracked files, then calls `updateIndex`. Silent when there's nothing to do. Convenient for refreshing after a batch of edits without naming each file.

## When to Use

**Before searching code:** If `graphify-out/graph.json` exists, query it before Glob or Grep. The graph tells you which files contain which symbols. This is the main value — replace blind keyword search with structured lookup.

**After editing:** If you'll query the graph again in the same session, run `graphify update <edited-files>` (or `graphify auto-update` for a bulk refresh). Otherwise leave it — the next `graphify build` or update will catch up.

**Exploring unfamiliar code:** Run `/graphify query <concept>` to find entry points without guessing filenames.

## Supported Languages

Python, JavaScript, TypeScript (JSX/TSX), Go, Rust, Java, C, C++, Ruby, C#, Kotlin, Scala, PHP

## Graph Output

Saved as `graphify-out/graph.json`:

```json
{
  "nodes": [{ "id": "main::app", "label": "App", "sourceFile": "main.py", "sourceLocation": "main.py:5" }],
  "edges": [{ "source": "file::main", "target": "main::app", "relation": "contains", "confidence": "EXTRACTED" }],
  "metadata": { "files": 10, "nodes": 45, "edges": 62 }
}
```

Edge relations: `contains`, `method`, `imports`, `imports_from`, `calls` (INFERRED), `inherits`
Files: 1
Size: 3.1 KB
Complexity: 12/100
Category: General

Related in General