A VS Code extension that supercharges Helm chart development
See resolved template values inline, navigate to definitions, and switch between environments instantly.
See resolved .Values.* expressions directly in your template files. Values update instantly when you switch between environments—no need to run helm template repeatedly.
- Values shown inline after each template expression
- Unset values highlighted with warnings
- Truncated display for long values (configurable)
Quickly switch between values override files using the status bar dropdown. The selected file is merged with values.yaml following Helm's merge behavior.
Status bar shows:
📄 values-prod.yamlor📦 subchart > 📄 values-prod.yamlfor subcharts
Ctrl/Cmd+Click on any value decoration to jump directly to where that value is defined—whether it's in your override file, default values.yaml, or a subchart's values.
Right-click on any key in a values file and select "Find All References" to see every template that uses that value across your chart and subcharts.
When a .Values.* reference doesn't exist, the extension shows a warning decoration and offers a Quick Fix to create the missing key in your values.yaml.
Works seamlessly with Helm dependencies:
| Feature | Description |
|---|---|
| Auto-detection | Subcharts in charts/ directory automatically detected |
| Alias support | Dependencies with aliases in Chart.yaml properly resolved |
| Nested subcharts | Full support for subcharts within subcharts |
| Archive support | Works with .tgz packaged subcharts (read-only) |
| Global values | global: section properly inherited |
When editing values files, get intelligent autocomplete suggestions for subchart configuration keys based on their default values.yaml.
- Install the extension from the VS Code marketplace
- Open a workspace containing a Helm chart (must have
Chart.yaml) - Edit any template file in the
templates/directory - Click the status bar item to select a values override file
- Enjoy inline value previews and instant navigation!
| Setting | Description | Default |
|---|---|---|
helmValues.enableInlayHints |
Enable/disable inline value decorations | true |
helmValues.inlayHintMaxLength |
Maximum characters before value is truncated | 50 |
| Command | Description |
|---|---|
Helm: Select Values File |
Open the values file picker |
Helm: Clear Values File Selection |
Reset to default values.yaml only |
Helm: Go to Value Definition |
Navigate to the value source |
Helm: Create Missing Value |
Add undefined value to values.yaml |
{{ .Values.foo }}
{{- .Values.foo -}}
{{ $.Values.foo }}
{{ .Values.foo | default "bar" }}
{{ if .Values.enabled }}...{{ end }}The extension discovers override files matching these patterns:
values-*.yaml→values-prod.yaml,values-dev.yaml*.values.yaml→prod.values.yaml*-values.yaml→production-values.yamlvalues.*.yaml→values.prod.yamlvalues/*.yaml→values/staging.yaml
# Chart.yaml
dependencies:
- name: mysql
version: "1.0.0"
alias: database
# values.yaml
database:
auth:
rootPassword: "my-secret"
global:
environment: productionWhen editing charts/mysql/templates/deployment.yaml:
.Values.auth.rootPassword→"my-secret"(from parent).Values.global.environment→"production"(inherited global)
Archive subcharts (.tgz) are supported for value resolution and autocomplete, but navigation into archives is read-only.
# Install dependencies
npm install
# Compile
npm run compile
# Watch mode (for development)
npm run watch
# Run tests
npm test
# Lint
npm run lint
# Format code
npm run format- Open the project in VS Code
- Press F5 to launch the Extension Development Host
- Open a folder containing a Helm chart to test
Contributions are welcome! Please see the AGENTS.md file for development guidelines and architecture documentation.