solidcraft-cli
Headless SolidCraft CAD: run scripts, measure parts, export, and snapshot
TLDR
SYNOPSIS
solidcraft-cli run [script|design|part] [--in file] [--out FILE]... [--save FILE] [--quiet] [--results] [--allow-errors]solidcraft-cli eval|inspect [file] [--in file]solidcraft-cli snapshot file --out shot.png [--width W] [--height H] [--view iso|front|top|_...]solidcraft-cli exec command [json-params]solidcraft-cli commandssolidcraft-cli mcp [--in file] [--connect HOST:PORT]solidcraft-cli recipe|oracle|fuzz|bench-open|crashes|licences|icon ...
DESCRIPTION
solidcraft-cli is the headless command line of SolidCraft, an open-source parametric 3D CAD application written in Rust. The desktop app is a GUI; this binary runs the same engine without a window: command scripts, measurements, exports, PNG snapshots, and an MCP server so agents can model, measure, and look at parts.A script is a JSON list of the same commands the UI runs (`sketch.create`, `solid.extrude`, `file.export`, and the rest). `solidcraft-cli commands` prints the registry. run loads a script, a `.solidcraft` design, a STEP file, or a mesh (3MF/STL/OBJ), optionally starting from --in, then writes each --out through `file.export` and --save through `file.save_as`. Unless --quiet, it prints `inspect.measure` JSON (volume, area, centre of mass, body counts). A timeline feature that fails fails the run and writes nothing, unless --allow-errors.eval (alias inspect) prints measurements plus timeline, parameters, and sketches. snapshot renders a PNG from a standard view. mcp speaks MCP on stdio; --connect attaches to a running desktop session.The desktop binary is solidcraft (AppImage, .deb, .rpm, Flatpak, Snap). This page is the CLI.
PARAMETERS
run
Load a script, design, STEP, or mesh; export and/or save; print measurements.--in file
Start from a design or STEP/mesh instead of an empty session. With run, a positional script then runs on top of it.--out FILE
Export (repeatable). Extension selects STEP, IGES, 3MF, STL, or OBJ.--save FILE
Write a `.solidcraft` design.--quiet
Do not print measurements after run.--results
Print every script command's result as JSON (needs a script).--allow-errors
Write bodies even when a timeline feature failed.eval, inspect
Measurements and document inspect as JSON.snapshot
Render PNG. --out is required. --width / --height default 1280×800. --view is `iso`, `front`, `back`, `top`, `bottom`, `left`, or `right`.exec command [json-params]
Run one command on an empty design.commands
Pretty-print the command registry.mcp
MCP server on stdio. --in loads a design or script first; --connect HOST:PORT talks to the desktop app's JSON-lines channel.recipe recipe.json
Translate an oracle recipe to a command script.oracle case-dir...
Replay recipes and compare with `expected.json`.fuzz
Geometry fuzzer (`--from`, `--count`, `--jobs`, `--timeout`, `--steps`, `--minimise`, `--out`, `--report`).bench-open file [--parse-only]
Loading timings as JSON lines.crashes list|show|replay|dir|clear
Local crash records.licences, licenses
SolidCraft's licence and third-party licences.icon --out F.png|F.ico [--size N]
Draw the app icon (for packaging).-V, --version
Print `solidcraft-cli` and the crate version.
CAVEATS
This is the headless CLI, not the GUI. A failed timeline feature aborts run unless --allow-errors; writing anyway can export the bodies from before the failed feature. snapshot needs --out. Mesh imports (3MF, STL, OBJ) render, measure, move, and export; solid features need B-rep bodies. Status is early but usable for simple parts.
HISTORY
SolidCraft is an open-source parametric CAD in Rust (MIT and Apache-2.0). The project was renamed from SolveCraft. solidcraft-cli is the `solidcraft-cli` crate in that workspace.
