Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>HyperspektNew to Visual Studio Code? Get it now.
Hyperspekt

Hyperspekt

Ansicht

|
1 install
| (0) | Free
A live, interactive graph that exposes your codebase's architecture. Computed metrics on its topology let you see impact, blast radius, and architectural gaps at a glance.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Hyperspekt

A live, interactive graph that exposes your codebase's architecture. Computed metrics on its topology let you see impact, blast radius, and architectural gaps at a glance.

Built by Ansicht.

Supported Languages

Language File Types Tree-sitter Grammar LSP Enrichment
Move (Sui) .move Yes move-analyzer
Rust .rs Yes —
TypeScript .ts, .tsx Yes —
JavaScript .js, .jsx Yes —
Go .go Yes —
Solidity .sol Yes —

Languages are auto-detected from workspace files. Multiple languages can coexist in a single workspace (polyglot support).

Features

Graph Visualization

  • Live force-directed dependency graph rendered in a webview panel with Barnes-Hut repulsion, edge attraction, community gravity, and simulated-annealing cooling
  • Minimap overview panel for navigating large graphs (toggle with M)
  • Fit-to-screen button to auto-zoom the graph to fit the viewport
  • Alt+drag rectangle zoom for zooming into a specific region
  • Community and module layout modes with position persistence across sessions (cycle with Ctrl+L)
  • Incremental updates on file save — debounced, content-hashed, with stable definition IDs so the graph does not flicker

Parsing & Resolution

  • Tree-sitter parsing of the full definition hierarchy: modules, functions, structs, enums, constants, traits, classes, type aliases, struct fields, and enum variants
  • Five-strategy reference resolution applied in order: fully-qualified, alias-resolved, module-qualified, same-module, and name-only (with ambiguity guard)
  • Chained field access resolution via fieldChain on ReferenceIR — resolves a.b.c access patterns across type boundaries
  • Resolution rate diagnostics showing internal/external resolution percentages

Architecture Metrics

Three metrics computed on every graph update, displayed in the status bar as [Qdep] X.XX [Qta] X.XX [C] X.XX, color-coded by health:

Metric Measures Range Healthy
Modularity (Q_dep) Louvain community detection with provider/consumer edge weighting -1 to 1 >= 0.5
Circularity (C) Johnson's cycle enumeration on strongly connected components 0 to 1 <= 0.1
Type Authority (Q_ta) Internal field-access cohesion minus cross-module API coupling -1 to 1 >= 0.3

Git Integration

  • Per-definition change detection against HEAD: added, modified, deleted, unchanged
  • Ghost nodes for definitions removed from modified files, with stable IDs and deleted status
  • Edge git status propagation from endpoints (deleted > added > modified > unchanged)

Navigation

  • Ctrl+Click a node to jump to its source definition
  • Ctrl+Shift+Click a node to open a HEAD-vs-working-tree diff
  • Ctrl+Click an edge to open the reference site in source
  • Shift+E to trace symbol exposure (what does this symbol expose?)
  • Shift+U to trace symbol usage (what uses this symbol?)
  • P to find the shortest path between two nodes

File-to-Graph Interop

  • Focus Current Symbol (Ctrl+Shift+G) — highlight the definition at the cursor in the graph
  • Inspect File (Ctrl+Shift+I) — filter the graph to show only definitions from the current file
  • Available from both the editor context menu and explorer context menu

Getting Started

Prerequisites

  • VS Code 1.85 or later
  • A workspace containing supported source files (.move, .rs, .ts, .tsx, .js, .jsx, .go, .sol)

Install

Build from source (see Development) or install the packaged .vsix.

Activate

  1. Open a workspace with supported source files. The extension activates automatically when a supported file is opened.
  2. Click the Hyperspekt icon in the activity bar, or run Hyperspekt: Show Dependency Graph from the Command Palette (Ctrl+Shift+P).

Commands

Command ID Key Description
Show Dependency Graph hyperspekt.show — Open the graph panel and run the full pipeline
Focus Current Symbol hyperspekt.focusNode Ctrl+Shift+G Highlight the definition at the cursor in the graph
Inspect File in Graph hyperspekt.inspectFile Ctrl+Shift+I Filter graph to the current file's definitions
Show All Files hyperspekt.clearFileFilter Escape Clear the file filter and show all definitions
Show Diagnostics hyperspekt.showDiagnostics Ctrl+G D Log node/edge counts and resolution stats
Refresh Graph hyperspekt.refresh Ctrl+G R Trigger a full pipeline re-run
Cycle Layout hyperspekt.cycleLayout Ctrl+G L Switch between Community and Module layout
Find Path hyperspekt.findPath Ctrl+G / Find shortest path between two nodes
Toggle Kind Filter hyperspekt.toggleKind Ctrl+K F/S/E/C/T/L/A Toggle visibility of functions/structs/enums/constants/traits/classes/type aliases

Webview Controls

A floating control bar at the bottom center provides quick access to filters and layout. Active toggles are highlighted in green.

Control Key Description
Functions Ctrl+K F Show/hide functions
Structs Ctrl+K S Show/hide structs
Enums Ctrl+K E Show/hide enums
Constants Ctrl+K C Show/hide constants (off by default)
Traits Ctrl+K T Show/hide traits
Classes Ctrl+K L Show/hide classes
Type Aliases Ctrl+K A Show/hide type aliases
Layout Ctrl+G L Cycle layout algorithm
Refresh Ctrl+G R Full pipeline re-run
Minimap Ctrl+G M Toggle minimap overlay

Tooltips: Hover over a node to see its kind, canonical path, git status, and provider/consumer scores. Hover over an edge to see its kind, source text, and weight. Hold Alt to suppress tooltips.

Configuration

Setting Type Default Description
hyperspekt.debounceMs number 300 Delay in ms before re-parsing a changed file. Lower values give faster feedback but use more CPU.
hyperspekt.showMinimap boolean false Show the minimap overview panel in the graph view.

Architecture

src/
  providers/
    move/           Move (Sui) language provider + LSP client
    rust/           Rust language provider
    typescript/     TypeScript/JavaScript language provider
    go/             Go language provider
    solidity/       Solidity language provider
    shared/         Shared provider utilities
    AbstractLanguageProvider.ts
    CompositeLanguageProvider.ts
  analysis/        Tree-sitter parsing, IR builder, IR resolver, reference resolution
  git/             Git change detection, ghost node synthesis, HEAD baseline
  graph/
    metrics/       Modularity, circularity, type authority computations
    differ.ts      Graph diffing for incremental updates
    incremental.ts File-save watcher, debounced re-parse, delta emission
    state.ts       Core graph state (nodes, edges, full rebuild)
  types/           Shared type definitions (DefId, NodeData, EdgeData, etc.)
  util/            Logging, ID allocation, tracing
  webview/         Panel manager, webview HTML/resource serving
  extension.ts     Activation, command registration, pipeline orchestration

webview/
  graph/
    forceLayout.ts Custom force-directed layout (Barnes-Hut, cooling schedule)
    renderer.ts    Cytoscape graph rendering, interaction handlers
  ui/
    toolbar.ts     Control bar state and types
    tooltip.ts     Hover tooltips with viewport clamping
  main.ts          Webview entry point, VS Code API message bridge

Development

npm install
npm run build      # esbuild bundle
npm test           # vitest
npx tsc --noEmit   # type-check without emitting
npm run watch      # rebuild on file changes

To package as a .vsix:

npm run package

License

See the bundled LICENSE.txt, or our license terms for the full EULA.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft