Getting started

From install to your first write-back in about five minutes. No terraform binary required; everything runs inside VS Code.

1. Install the extension

SchematIaC is not on the Marketplace yet. Join the interest list and we will email you when it is. Once the listing is live, install it from the Marketplace or search for SchematIaC in the Extensions view. It needs VS Code 1.74 or newer, works with both Terraform (and OpenTofu — same HCL) and Azure Bicep, and needs no terraform or bicep binary.

2. Start the trial

Opening a canvas without a licence shows an activation screen. Click Start 14-day trial, enter your email, and type the 6-digit code from the email you receive. The screen becomes your canvas the moment the trial is active.

Those are the only two network requests the extension ever makes — your email address and an anonymous installation digest, never any Terraform. See Licensing & privacy for the details.

Screenshot to come
The activation screen a fresh canvas shows — trial, buy, or paste a key.

3. Create a canvas

  1. Run New SchematIaC Canvas from the command palette and name it after the project — one canvas is one definition, not one per environment (workspaces handle dev/test/prod).
  2. Right-click a .tf, .tfvars, .bicep or .bicepparam file, or a folder in the Explorer, and choose Add to SchematIaC Canvas — or use + Add file on the canvas toolbar. A canvas holds one language; the first file you add decides whether it is a Terraform or a Bicep canvas.

Local modules load automatically when their caller is added; each appears as a box with input and output ports.

The canvas itself is a small .schematiac/<name>.canvas file — safe to commit, safe to delete, never your infrastructure.

4. Trace a value

Blocks are nodes; attributes are rows; references are wires. Variables, locals, outputs and tfvars entries group into one node per file. Click any row and its whole lineage lights up — the tfvars entry that fed the variable that fed the resource attribute — while everything else dims.

Values show what they resolve to, not the expression: "${var.env}-acme" reads "dev-acme". A corner mark says when a value was computed rather than typed; hover it for the expression behind it. See The canvas for what every mark means.

One row selected: its whole lineage stays lit — module, locals, resources — while everything else dims.
One row selected: its whole lineage stays lit — module, locals, resources — while everything else dims.

5. Change something and save

  • Re-point a reference: drag a wire’s source dot onto a different variable, local or resource. Compatible targets light up; a list can never be dropped where a string is expected.
  • Edit a value: click a definition in the properties panel and type a new expression. It is validated as HCL before it can touch a file.

Every change shows you the exact line diff for approval, then stages until you press Save — which reviews every pending file one last time, with per-file revert. Only the expression you changed is rewritten. Nothing reaches disk before Save.

Screenshot to come
The diff review before a change stages — the exact line, nothing else.

Where next

  • Terraform.tf / .tfvars, workspaces and the Folder Overview.
  • Bicep.bicep / .bicepparam on the same canvas.
  • MCP server — give your AI agent the same engine.
  • The canvas — everything on screen, explained.