PluginBench
Skill
Review
Audit score 70

graphify

howell5/willhong-skills

Structural code index via AST—query symbols before searching, explore unfamiliar codebases faster.

What is graphify?

Graphify builds a searchable structural index (AST graph) of your codebase across 12 languages using tree-sitter. Use it to find classes, functions, imports, and call relationships before grepping, or refresh it after editing files to keep the index in sync.

  • Extract AST structure (classes, functions, imports, call graph) from 12 languages (Python, JavaScript, TypeScript, Go, Rust, Java, C, C++, Ruby, C#, Kotlin, Scala, PHP)
  • Query symbols by name across the codebase with case-insensitive search
  • Incrementally update the index after editing specific files or auto-detect changes via git diff
  • Generate a JSON graph with nodes (symbols), edges (relationships), and metadata for structured navigation

How to install graphify

npx skills add https://github.com/howell5/willhong-skills --skill graphify
Prerequisites
  • Node.js and npm installed
  • Run `npm i -g graphify-ts` once per machine (uses Bun runtime)
  • Run `graphify build .` once per project to create the initial index
Claude Code
Cursor
Windsurf
Cline

How to use graphify

  1. 1.Install globally: `npm i -g graphify-ts`
  2. 2.Build the initial index: `graphify build .` (creates `graphify-out/graph.json`)
  3. 3.Query symbols: `/graphify query <name>` to find classes, functions, or imports
  4. 4.After editing files, refresh: `/graphify update <file1> [file2...]` or `/graphify auto-update` to detect changes via git diff
  5. 5.Repeat queries as needed; rebuild only when you want a full rescan

Use cases

Good for
  • Explore an unfamiliar codebase by querying entry points and symbol locations instead of guessing filenames
  • Find all references to a class or function across multiple files before refactoring
  • Refresh the code graph after batch edits to keep symbol lookups accurate in the same session
  • Navigate large projects by understanding which files contain which symbols and how they connect
Who it's for
  • Developers onboarding to unfamiliar codebases
  • Teams working on large or multi-language projects
  • Engineers refactoring or searching code without IDE support

graphify FAQ

Do I need to rebuild the graph every time I edit code?

No. The graph does not auto-refresh. Run `graphify update <files>` or `graphify auto-update` only if you plan to query again in the same session. Otherwise, the next build or update will catch up.

What languages does graphify support?

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

How is this different from grep or keyword search?

Graphify uses AST parsing to understand code structure (classes, functions, imports, calls), not just text matching. This gives you precise symbol locations and relationships without false positives.

Can I use graphify in a git worktree or multi-session setup?

Yes. Manual updates avoid write conflicts. You control when the index refreshes, so multiple sessions won't interfere.

What does the graph.json output contain?

Nodes (symbols with file locations), edges (relationships like contains, imports, calls, inherits), and metadata (file count, symbol count, edge count).

Full instructions (SKILL.md)

Source of truth, from howell5/willhong-skills.


name: graphify description: "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" allowed-tools: Bash(graphify:*)

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)

npm i -g graphify-ts    # install CLI

Then, once per project:

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)

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

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

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

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

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

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:

{
  "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

Related skills

More from howell5/willhong-skills and the wider catalog.

PRpreline-theme-generator logo

preline-theme-generator

htmlstreamofficial/preline

Generate, preview, save, or validate Preline theme CSS using the bundled local generator in this skill. Use when the user asks to create a new Preline theme, match a brand color, translate a mood into a theme, generate light and dark theme CSS, preview theme output without writing files, or review and fix generated theme tokens. Do not use for generic non-Preline CSS work or arbitrary command execution.

769 installs
ANandroid-adb logo

android-adb

httprunner/skills

Android device control via raw ADB commands. Use for device/emulator discovery, USB or Wi-Fi connection, app launch/force-stop, tap/swipe/keyevent/text input, screenshots, UI hierarchy dump, and ADB troubleshooting.

627 installs
SYsystematic-literature-review logo

systematic-literature-review

huangwb8/chineseresearchlatex

当用户明确要求"做系统综述/文献综述/related work/相关工作/文献调研"时使用。AI 自定检索词,多源检索→去重→AI 逐篇阅读并评分(1–10分语义相关性与子主题分组)→按高分优先比例选文→自动生成"综/述"字数预算→资深领域专家自由写作(固定摘要/引言/子主题/讨论/展望/结论),保留正文字数与参考文献数硬校验,强制导出 PDF 与 Word。支持多语言翻译与智能编译(en/zh/ja/de/fr/es)。

838 installs
TIticket-resolution logo

ticket-resolution

hubspot/agent-cli-skills

Create, triage, advance, and close HubSpot support tickets — pipeline discovery, contact/company association, priority queues, bulk stage moves, resolution close-out.

639 installs
HFhf-cli logo

hf-cli

Official
huggingface/skills

Hugging Face Hub CLI for managing models, datasets, spaces, buckets, and jobs on the Hub.

1.7k installs
HUhuggingface-best logo

huggingface-best

Official
huggingface/skills

>

840 installs