Repository navigation
Releases
LabCraft 0.3.0-m0
LabCraft M0, the first milestone in Rust: a dataflow language for test benches, written as text by an AI agent or
by hand, checked, run against simulated instruments, and drawn as a diagram that redraws as the file changes.
It is an early milestone: the diagram is read-only, and instruments are simulated only.
What is in it
labcraft-cli:fmtandcheckread, check and write programs (.lcffunctions,.lcttypes);runruns a
function against simulated instruments and writes its trace;diagram --svgdraws a function as SVG;mcpis an
MCP server, through which an AI agent writes, checks and runs programs on its own.labcraft, the desktop viewer: it opens a folder read-only, draws each function following the visual notation,
draws it again when its file changes, and shows the values of the last run on the wires.labcraft-web, the same viewer in a browser (WebAssembly), with the examples and the shipped libraries.
The three parts of M0: M0a reads, checks and writes (tag v0.1.0-m0a), M0b runs and opens the agent loop
(v0.2.0-m0b), M0v draws (this tag). The documents of the repository describe the language, the command line and
the notation; the acceptance scenarios that M0 passes are in docs/acceptance-m0.md.
The archives
| File | For |
|---|---|
labcraft-0.3.0-m0-windows-x64.zip |
Windows 10 and 11, x64 |
labcraft-0.3.0-m0-linux-x64.tar.gz |
Linux x64, glibc 2.35 or later (Ubuntu 22.04, Debian 12, Fedora 36 and later) |
labcraft-0.3.0-m0-macos-arm64.tar.gz |
macOS on Apple Silicon |
labcraft-0.3.0-m0-macos-x64.tar.gz |
macOS on Intel |
labcraft-web-0.3.0-m0.zip |
The web viewer, a folder to serve |
SHA256SUMS |
The SHA-256 of each file |
Each archive holds labcraft-cli, labcraft, the example programs in examples/, the simulated instruments of
the visa library in sim/, the licences and the attributions, and in THIRD-PARTY-LICENSES.txt the licences of
the Rust crates built into the binaries.
Try it
In a terminal, in the folder of the archive (on Windows, in PowerShell):
./labcraft-cli check examples
./labcraft-cli run --sim sim/dmm-230V.toml --arg resource=SIM::DMM0 examples check_voltage
./labcraft examplesrun prints the outputs of check_voltage against a simulated multimeter, and the viewer shows the values of that
run on its wires. To give an AI agent the MCP server, here in Claude Code:
claude mcp add labcraft -- <folder of the archive>/labcraft-cli mcp --project <a folder of its own>The binaries are not signed yet.
- Windows: SmartScreen may stop the first launch; choose More info, then Run anyway. In
cmd.exe, type
labcraft-cliwithout./. - macOS: the system refuses a downloaded binary that is not notarized. Remove the quarantine once, in the folder of
the archive:xattr -d com.apple.quarantine labcraft labcraft-cli. - Linux: the viewer needs a Vulkan or OpenGL driver, and X11 or Wayland; the command line needs neither.
The web viewer runs from a web server, not from a file opened in the browser. In its folder, for example:
python3 -m http.server 8000 (py -m http.server 8000 on Windows), then open http://localhost:8000/. Drop a folder of .lcf files on the page to draw
your own.
Not yet
Editing the diagram (M1), real instruments (M4: TCP/IP, serial, USBTMC, HiSLIP, an installed VISA), the front
panel (M3). The roadmap is in docs/roadmap.md.
LabCraft is licensed under MIT OR Apache-2.0. Feedback on the language and the viewer is the most useful help: see
CONTRIBUTING.md.