LVKit

Read LabVIEW VIs without installing LabVIEW.

LVKit parses .vi, .ctl, .lvclass, .lvlib, and .lvproj files directly into queryable dependency and dataflow graphs. Render the block diagram, document code, track changes in CI, feed VI structure to AI tools, or generate equivalent Python.

Every frame is real product output on one real VI — an OpenG MD5 implementation — produced without opening LabVIEW.

LVKit View: A faithful SVG render of the block diagram — dataflow, structures, and wires.

A faithful SVG render of the block diagram — dataflow, structures, and wires.

Getting started

Install from PyPI, then run setup to create a project resolution store and install AI agent skills.

pip install lvkit
lvkit setup

Prefer a global install? pipx install lvkit or uv tool install lvkit. Interactive graphs need lvkit[visualize].

Then try it on a VI:

lvkit describe path/to/your.vi --verbose
lvkit render path/to/your.vi -o my-vi.svg

render writes a self-contained interactive SVG — open it in a browser, or drop it straight into a page. Neither command needs a single primitive mapped first.

Not a terminal person? The VS Code extension views and diffs VIs in the editor and bundles its own lvkit binary — no LabVIEW and no Python needed.

What you can do with it

Built for CLI, AI, and IDE

CLI + CI

Every capability is a command, so a pipeline can render, document, and diff VIs on a runner that has no LabVIEW license and never will. Output is deterministic — pass --no-auto-vilib and a run is identical on every machine, so results can be committed and compared. Emit --format json for a step to gate on, or --format html for a self-contained viewer to attach to the build.

- run: pip install lvkit
- run: lvkit diff old/MyVI.vi new/MyVI.vi --no-auto-vilib -o diff.html

MCP server + agent skills

lvkit setup installs ready-made workflows into Claude Code or Copilot — describe VIs, convert them, and resolve unknowns without writing prompts. For interactive sessions, the MCP server lets an agent load a graph, walk wires, and ask follow-up questions across multiple VIs.

{
  "mcpServers": {
    "lvkit": { "command": "uvx", "args": ["--from", "lvkit", "lvkit-mcp"] }
  }
}

VS Code extension

Click a .vi in the Explorer and it opens as an interactive block diagram instead of a binary-file notice. Right-click a changed one in Source Control and pick Open Visual Diff for the before/after viewer — so a VI review happens where the rest of your code review already does. It ships a self-contained lvkit binary, so it needs neither LabVIEW nor Python installed.

Get it on the Marketplace →ext install pragmatest.lvkit

Principles

No LabVIEW install required

LVKit reads VI binaries directly — no LabVIEW installation, no runtime, no account. It works in CI and on machines that have never seen LabVIEW.

Reads, never writes

LVKit only ever reads a VI — it never modifies, re-saves, or edits one. Your files are never touched, and LabVIEW stays the only thing that authors them.

Clean-room by design

Every piece of semantic knowledge comes from published sources, not proprietary code or runtime access. The binary parser builds on the open-source pylabview project.

Deterministic and verifiable

The whole pipeline is deterministic — no LLM, no sampling. Same VI in, same output every run, so results can be diffed, committed, and checked in CI.

AI-ready, not AI-dependent

A built-in MCP server and agent skills let Claude Code or Copilot drive LVKit interactively. Nothing about the tool requires an agent — the CLI works on its own.

Open source, Apache-2.0

The code is yours to read, run, fork, and extend. No paid tier of the same software waiting to take it over once you depend on it.

Apache-2.0 · pre-1.0 · public on GitHub. Code generation coverage is incremental and APIs may shift before 1.0; pin a version, fork if you have to.

LabVIEW is a registered trademark of National Instruments Corporation (NI). LVKit is not affiliated with or endorsed by NI, and is an independent, clean-room implementation.