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.

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 setupPrefer 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.svgrender 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
Render the block diagram
A faithful, interactive SVG of a VI’s block diagram — the same wiring, structures, and dataflow, pan/zoom and theme-aware. Try it live.
Describe a VI
lvkit describe my.viprints a human-readable signature, inputs and outputs, operations, and control flow — without opening LabVIEW.Generate documentation
Cross-referenced HTML docs for a .vi, .lvlib, or .lvclass — inputs, outputs, operations, and wiring diagrams.
Diff two versions
See what changed between two VIs — added and removed terminals, changed operations, rewired connections. Fits in code review and CI, or right in VS Code with the extension.
Visualize
An interactive dataflow or dependency graph across a whole library — the shape of the system, not one VI’s wiring.
Generate Python
Convert a VI, library, or class to Python. Deterministic — same VI in, same Python out, every run. No LLM in the loop. Coverage is incremental, but it keeps getting better.
Drive it from AI or the CLI
Every operation runs from a scriptable CLI or a built-in MCP server, so Claude Code and Copilot can describe, convert, and query VIs end-to-end.
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.htmlMCP 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.
ext install pragmatest.lvkitPrinciples
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.




