schem
Human- and LLM-readable DSL for PCB schematics with a Rust compiler that validates constraints and emits KiCad netlists.
What it does and how it connects
schem is a domain-specific language and Rust compiler for PCB schematics. A plain-text .schem file describes nets, components, and pin connections; the compiler parses it with a PEG grammar, checks it against structural and electrical rules, and emits a KiCad legacy netlist (.net) that imports directly into pcbnew for layout. Validation returns a full report of errors and warnings instead of failing on the first error.
The project is at v0.1 and in active development. Parsing, validation, and KiCad .net emission work and are tested against a real reference design, a zap bracelet with 16 nets, 5 components, and 6 constraints. The README states what is missing: there is no automated test suite, .kicad_sch schematic emission is not implemented, and there is no Gerber-ready output, no component library integration, and no editor support yet.
Alternatives
Compare side by side- atopile
A code-first language and compiler for electronics with a larger toolchain, while schem is a small DSL that emits a KiCad legacy netlist.
- kicad-mcp-pro
An MCP server that drives KiCad schematic and PCB workflows, rather than a DSL compiler that emits a netlist file.
- mcp-kicad-sch-api
An MCP server that creates and edits KiCad schematic files through a Python library, rather than a DSL compiled to a netlist.
- tscircuit
Designs boards in TypeScript and React in a browser or CLI workflow, while schem compiles a plain-text schematic DSL to a KiCad netlist.
- kicad-happy
Agent skills that review existing KiCad schematics and boards, rather than a language for writing schematics as text.
Recurring errors it addresses
Error Index entries this tool is built to reduce or work around.
- Interactive routing creates unwanted micro-segments and awkward paths that take time to clean up.Error Index
- Grid snap and move commands can disconnect items or reposition them in unwanted ways.Error Index
- GUI lag, occasional freezes, and sluggish editor switching interrupt concentration.Error Index
- Wayland/NVIDIA users report graphical glitches, flicker, or instability.Error Index
Sources
Not verified
- License: the GitHub API returns no license and no LICENSE file was found in the repo, so no license is stated.
- Pricing: none stated on the repo.
- Real user voices: no real linked post read for this page; the repo has no open issues.
- A named individual builder beyond the repository owner handle Raf3-Tech
Last verified November 6, 2026. Listings are informational. The evidence score measures public, verifiable evidence and is not an endorsement or a compatibility claim.