An interactive web-based tool to visualize Helm chart dependencies and references. Drop a Helm chart folder and instantly see how templates connect to values, helpers, and chart metadata.
- Drag & Drop: Simply drag a Helm chart folder into the browser
- Reference Detection: Automatically detects:
.Values.*references to values.yamlincludeandtemplatecalls to helper definitions.Chart.*references to Chart.yaml.Release.*references (Name, Namespace, etc.)
- Interactive Graph: Pan, zoom, and drag nodes to explore relationships
- File Selection: Click on any file node to highlight its connections
- MiniMap: Navigate large charts easily
- Bun (v1.0 or later)
# Clone or navigate to the project
cd helm_visualizer
# Install dependencies
bun install
# Start development server
bun run devThen open http://localhost:5173 in your browser.
- Open the app in your browser
- Drag and drop a Helm chart folder onto the drop zone
- Explore the interactive graph:
- Pan: Click and drag on the canvas
- Zoom: Scroll or use controls
- Select: Click on a file node to highlight its connections
- Deselect: Click on the background
A sample Helm chart is included in the sample-chart/ directory for testing.
- Runtime: Bun
- Framework: React 18 with TypeScript
- Bundler: Vite
- Visualization: React Flow (@xyflow/react)
- YAML Parsing: js-yaml
- Styling: Tailwind CSS
helm_visualizer/
├── src/
│ ├── components/
│ │ ├── DropZone.tsx # Drag-drop file handler
│ │ ├── FileTree.tsx # Sidebar file tree
│ │ ├── GraphView.tsx # React Flow canvas
│ │ └── nodes/ # Custom node components
│ ├── parser/
│ │ ├── helm-parser.ts # Main parser orchestrator
│ │ ├── yaml-parser.ts # YAML file parsing
│ │ └── template-parser.ts # Go template reference extraction
│ ├── graph/
│ │ └── graph-builder.ts # Build React Flow nodes/edges
│ └── types/
│ └── index.ts # TypeScript interfaces
├── sample-chart/ # Sample Helm chart for testing
└── package.json
| Pattern | Example | Connection |
|---|---|---|
.Values.* |
.Values.config.nodeEnv |
Template → values.yaml key |
include |
{{ include "app.labels" . }} |
Template → _helpers.tpl |
template |
{{ template "app.name" }} |
Template → _helpers.tpl |
.Chart.* |
.Chart.Name |
Template → Chart.yaml |
.Release.* |
.Release.Name |
Template → Release info |
bun run buildThe built files will be in the dist/ directory.
MIT