Jinja2 Enhance Install free

Free vs. Pro

Free is the foundation. Pro adds the backend-aware layer that eliminates false "undefined variable" warnings.

Free · MIT Always free, open source
  • Syntax highlighting
    Distinct colors for {% %} tags, {{ }} variables, and pipe filters inside HTML, style, and script blocks.
  • 10 built-in snippets
    for, if, ife, block, extends, include, set, macro, with, filter — all expandable in any HTML/Jinja2 file.
  • Jinja2 comment toggling
    Cmd+/ or Ctrl+/ wraps the selection in {# …
  • Variable checking (JHE0001)
    Flags undefined Jinja2 variables. Recognizes {% set %} and {% for %} bindings; allowlist suppresses backend-injected names.
  • Variable Panel
    Sidebar webview listing every variable used or set in the current template, with one-click jump to its origin.
  • 5 built-in themes
    Dark Default, Light Default, Dark/Light High Contrast, and Xuby Selection — plus full editor.tokenColorCustomizations support.
  • English & Spanish UI
    Localized command titles, settings, and panel copy in EN and ES.
Pro · In development Planned — not yet shipped:
  • Backend variable resolution
    Resolves variables from Flask, Django, FastAPI, Express, Nunjucks, and standalone Jinja2 render calls — no more false "undefined" warnings.
  • Go to backend definition
    F12 or Cmd+Click on any template variable jumps straight to the line in your Python or JavaScript source where it's declared.
  • Cross-file template tracking
    Resolves {% extends %} chains, {% include %} children, and inherited {% set %} variables — so child templates stop flagging variables defined in their base.
  • Imported macro resolution
    Both {% import "macros.html" as ns %} and {% from "macros.html" import card, modal as m %} are tracked across files.
  • Template path navigation
    F12 / Cmd+Click on any extends, include, or import path opens the resolved file. Auto-discovers templates/ roots; configurable.
  • Variable origin on hover
    Hover any variable to see whether it came from a backend call, an inherited base template, or an imported macro — with a click-to-jump link.
  • Smart lightbulb actions
    When JHE0001 fires but Pro finds the name elsewhere in the template hierarchy, the quick-fix offers "Go to inherited definition".

Features that pay for themselves

The differentiators — what makes a Pro license worth it on a real project.

Free

Variable checking (JHE0001)

Flags undefined Jinja2 variables. Recognizes {% set %} and {% for %} bindings; allowlist suppresses backend-injected names.

Variable checking runs on save (or on demand) and surfaces a JHE0001 diagnostic for any name your template references but never defines. The analyzer follows {% set %} assignments and loop variables, so you only see real misses — not false alarms on locals.

Names that come from your backend can be added to a workspace allowlist with one click via the Save variable quick fix.

Pro · planned

Backend variable resolution

Resolves variables from Flask, Django, FastAPI, Express, Nunjucks, and standalone Jinja2 render calls — no more false "undefined" warnings.

Pro parses your backend source to learn which variables each template actually receives. Flask render_template(), Django render(), FastAPI TemplateResponse, Express/Nunjucks res.render(), and standalone Jinja2 are all recognized.

Variables passed from the backend are no longer flagged as undefined, and the Variable Panel shows their origin alongside template-local bindings.

Pro · planned

Go to backend definition

F12 or Cmd+Click on any template variable jumps straight to the line in your Python or JavaScript source where it's declared.

Hover a variable, click the link (or hit F12), and Pro takes you to the exact render_template / render / TemplateResponse call site that supplies it. Works across files, across frameworks, and across multi-render templates that receive different variables from different routes.

Pro · planned

Cross-file template tracking

Resolves {% extends %} chains, {% include %} children, and inherited {% set %} variables — so child templates stop flagging variables defined in their base.

Pro builds a workspace-level template graph and walks the entire {% extends %} chain for each file. Variables defined in a base template are visible in every child; loop and block scopes are tracked correctly.

Two graph diagnostics catch structural problems early:

  • JHE1101 — unresolved template path in extends/include/import
  • JHE1102 — circular extends chain

Pricing

Pay for what saves you time. Cancel any time.

Free

$0 / forever

The MIT extension. Everything you need for single-template work.

  • Syntax highlighting + 10 snippets
  • Variable checking (JHE0001)
  • Variable Panel sidebar
  • 5 themes + token customization
  • EN / ES localization

Pro

In development
$5 / per month (planned)

Backend-aware intelligence for real projects with multi-file templates. In development — not yet for sale.

  • Everything in Free
  • Backend variable resolution (Flask · Django · FastAPI · Express · Nunjucks)
  • Go to backend definition (F12 / Cmd+Click)
  • Cross-file extends/include/import tracking
  • Template-graph diagnostics (JHE1101 · JHE1102)
  • 7-day offline grace · single machine, swappable

Team

Coming soon
$12 / per month, per seat

Shared variable registries, audit reports, and monorepo support.

  • Everything in Pro
  • Shared workspace variable registry
  • Documentation & audit reports
  • Monorepo template-root config
  • Priority support

Pro and Team are not yet for sale — drop your email and we'll write when they launch. 14-day refund applies on first purchase.