lvkit #

lvkit reads, renders, documents, and diffs LabVIEW .vi/.ctl/.lvclass/.lvlib files — no LabVIEW license required. It can also generate a Python transliteration of a VI; that path is experimental and coverage is incremental.

pip install lvkit
lvkit describe "path/to/Some VI.vi"

That's the first win: a human-readable signature, inputs/outputs, constants, control flow, and the operations on the block diagram, printed straight from the .vi binary — see reference/describe.

Clean-room, by necessity #

lvkit parses the VI binary itself — it does not open, script, or export from LabVIEW. Identifying a primitive, a vi.lib VI, or a type comes from the parsed graph, public NI documentation, and algorithm knowledge, never from a licensed LabVIEW install. This is why lvkit exists at all: reviewing, diffing, or documenting a VI no longer requires a LabVIEW seat.

lvkit is an independent, clean-room project, not affiliated with, authorized by, endorsed by, or sponsored by NI. LabVIEW, NI, and National Instruments are trademarks of National Instruments Corporation, used only to identify the file format lvkit reads.

Install #

pip install lvkit (shown above). For a global, isolated install: pipx install lvkit or uv tool install lvkit.

lvkit visualize — a whole-library dependency/dataflow graph view — needs an extra: pip install lvkit[visualize] (see reference/visualize).

Do something next #

See also #

  • reference/mcp — the MCP server's tools and a worked project-understanding demo.
  • reference/render — the full render flag reference.
  • reference/diff — the full diff flag reference.
  • reference/generate — generate a Python transliteration of a VI (experimental; coverage is incremental).
  • reference/docs — generate cross-referenced HTML documentation for a VI, library, or class.