Helm Debugger
Debug Helm charts by tracing values.yaml through _helpers.tpl into the
rendered manifests.
📖 Documentation: https://jessesimpson36.github.io/helm-debugger/
Overview
This project lets you debug Helm charts and answer how your values.yaml
options change across _helpers.tpl functions and eventually make it into the
final rendered manifests.
The debugger makes use of Delve because
Go's text/template library processes entire files at a time, making it
difficult to track down individual operations without introspecting a running
process.
State of the project: this is still pretty experimental / proof of concept.
Quick start
The recommended way to run this project is the pinned Docker image, which provides every tool at a known version:
docker run --rm --cap-add=SYS_PTRACE --security-opt seccomp=unconfined \
-v "$PWD:/workspace" -w /workspace \
ghcr.io/jessesimpson36/helm-debugger:latest --mode model --helm-path helm \
--chart test --values image.tag \
--extra-command-args '--show-only templates/deployment.yaml'
For requirements, the deterministic toolchain, and building from source, see Getting started.
Debug charts from your AI coding tool
--mode mcp starts a Model Context Protocol
server over stdio so AI tools can reproduce what a chart renders and then find
which template line produced it:
Project-local configs are shipped for OpenCode, Claude Code, Cursor, and VS Code. See the MCP server docs for setup, then Releases and upgrading to pin a published version.
Documentation
The full documentation lives in docs/ and is published at
https://jessesimpson36.github.io/helm-debugger/:
- Getting started — requirements, Docker, building locally
- Concepts — execution flows, breakpoints, modes, query types
- CLI reference — every command line flag
- MCP server — for OpenCode, Claude Code, Cursor, and VS Code
- Understanding output — execution flow, relevant values, write buffer
- Releases and upgrading — image tags, SBOMs,
install-mcp.sh - Releasing — how releases are cut
Previewing the docs locally
The site is built with Zensical (the successor to
Material for MkDocs), which reads mkdocs.yml:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
zensical serve
Changes under docs/ are deployed to GitHub Pages by
.github/workflows/docs.yml on pushes to main.