Configuration
Everything is an environment variable or a serve flag; there is no config file.
Where things live
| Variable | Default | Meaning |
|---|---|---|
SOLDERMASK_HOME | the repository in a checkout, otherwise the platform's data directory (~/Library/Application Support/soldermask, $XDG_DATA_HOME/soldermask) | base directory for data: projects/ and .cache/ are under it |
SOLDERMASK_PROJECTS | $SOLDERMASK_HOME/projects | the projects directory |
SOLDERMASK_CACHE | $SOLDERMASK_HOME/.cache | parts, footprints, symbols, 3D models, the LAN certificate, the access token |
SOLDERMASK_DOCS | <repo>/site | the built manual the app serves at /docs |
The model
| Variable | Meaning |
|---|---|
SOLDERMASK_BACKEND | gemini (default) or claude; SILIXON_BACKEND is still honoured |
SOLDERMASK_AUTO_REPAIR | 1 (default): a chat turn whose build comes back with unresolved parts or electrical errors is sent back to the model once and the revision built if it scores better; 0 turns it off, N allows N rounds |
GEMINI_API_KEY / GOOGLE_API_KEY | Gemini credentials |
ANTHROPIC_API_KEY | Claude credentials (a logged-in ant auth profile also works) |
Serving
| Variable / flag | Meaning |
|---|---|
SOLDERMASK_TOKEN | the access token; off / none / 0 disables auth (same as --no-auth) |
--token, --no-auth, --proxy, --workers, --log-file, --http, --port, --host | see Command line |
The cache
.cache/ is safe to delete; everything in it is refetched or regenerated. It holds: parts/ (24-hour TTL), easyeda/ (footprints and symbols by LCSC code, kept until refreshed), models3d/ (3D models, versioned by CACHE_VERSION), kicad-symbols/ and symbol_index.json (the KiCad library and its 42 MB index), lan-cert.pem/lan-key.pem (the self-signed certificate) and access-token.
Tooling
| Variable | Meaning |
|---|---|
SNAP_CHROME | the Chromium binary for tools/snap.py; the Playwright cache is searched otherwise |
PW_CORE, PW_CHROMIUM | playwright-core and its browser for tests/verify_3d.js |
Routability
| Variable | Default | What it moves |
|---|---|---|
SOLDERMASK_CORPUS | .cache/corpus | where every route the pipeline runs is kept, and where soldermask learn generate writes |
SOLDERMASK_FREEROUTING_JAR | vendor/freerouting-2.4.1.jar in a checkout, .cache/vendor/freerouting-2.4.1.jar installed | the router. The name recorded against every label follows this file, so pointing it elsewhere relabels honestly |
SOLDERMASK_ROUTABILITY | soldermask/assets/routability.json | the model file the placer ranks candidates with; point it at a soldermask learn train --out file to try one without shipping it |
Described in Routability.