LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

solidcraft-cli

Headless SolidCraft CAD: run scripts, measure parts, export, and snapshot

TLDR

Run a command script and print measurements
$ solidcraft-cli run [examples/bracket.json]
copy
Export to STEP
$ solidcraft-cli run [examples/bracket.json] --out [bracket.step]
copy
Start from an existing design then run a script
$ solidcraft-cli run [edit.json] --in [part.solidcraft] --out [part.step]
copy
Measure a design or imported STEP file as JSON
$ solidcraft-cli eval [part.step]
copy
Render a PNG snapshot
$ solidcraft-cli snapshot [examples/bracket.json] --out [bracket.png] --view [iso]
copy
Run one modelling command on an empty design
$ solidcraft-cli exec [sketch.create] '{"plane":"XY"}'
copy
Dump the command registry
$ solidcraft-cli commands
copy
Speak MCP on stdio (optional live UI on a port)
$ solidcraft-cli mcp --in [part.solidcraft]
copy

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.

SEE ALSO

openscad(1), freecad(1), blender(1), meshlab(1)

RESOURCES

Copied to clipboard
Kai