KiCAD Prism supports both convention-based repository layouts and explicit path configuration.
Without explicit config, the backend has to inspect the repository and infer where files live. That works for common layouts, but it is slower and less predictable on unusual repos or monorepos.
A complete .prism.json gives you:
- deterministic file resolution
- less path auto-detection work
- clearer project metadata
- fewer surprises when importing or syncing repositories
Current path resolution follows this order:
- explicit
.prism.json - auto-detection for missing fields
- fallback legacy defaults where applicable
A key current behavior is that explicit fields are honored first, and only missing fields are auto-detected.
Top-level metadata:
project_namedescriptionworkflows
Path fields:
schematicpcbsubsheetsdesignOutputsmanufacturingOutputsdocumentationthumbnailreadmejobset
{
"project_name": "Flight Controller Rev B",
"description": "Main avionics control board.",
"paths": {
"schematic": "hardware/fc.kicad_sch",
"pcb": "hardware/fc.kicad_pcb",
"subsheets": "hardware/subsheets",
"designOutputs": "outputs/design",
"manufacturingOutputs": "outputs/manufacturing",
"documentation": "docs",
"thumbnail": "assets/thumbnail",
"readme": "README.md",
"jobset": "Outputs.kicad_jobset"
}
}GET /api/projects/{project_id}/configReturns:
config: effective path and metadata configresolved: resolved absolute pathssource:explicitorauto-detected
POST /api/projects/{project_id}/detect-pathsReturns a detected config plus validation without writing .prism.json.
PUT /api/projects/{project_id}/config
Content-Type: application/json
{
"project_name": "Flight Controller Rev B",
"description": "Main avionics control board.",
"schematic": "hardware/fc.kicad_sch",
"pcb": "hardware/fc.kicad_pcb",
"documentation": "docs"
}Saving config writes .prism.json in the project root.
If you do not provide a .prism.json, KiCAD Prism looks for common patterns such as:
- root
.kicad_schand.kicad_pcbfiles - common docs folders like
docs,documentation,wiki - common output folders like
Design-Outputs,Manufacturing-Outputs,outputs,exports - common thumbnail/image directories under
assets,images, orrenders - README-like files such as
README*orOVERVIEW*
- use explicit config for monorepos or non-standard layouts
- set
readmeanddocumentationexplicitly if your documentation is not underREADME.mdanddocs/ - keep output directories stable across workflow runs
- store project metadata and path mapping together in
.prism.json
If a file is not showing up where expected:
- call
GET /api/projects/{project_id}/config - inspect
resolvedpaths - run
POST /api/projects/{project_id}/detect-pathsto compare inferred values - save an explicit
.prism.jsonif the repo layout is unusual
For schematic and PCB fields, glob-like values are supported where the backend expects them, but explicit file paths are usually the least ambiguous option.