{"slug": "abstract-machines-launches-synth", "title": "Abstract Machines Launches Synth", "summary": "Abstract Machines open-sourced Synth, an Apache-2.0-licensed circuit compiler that turns text-based board designs into KiCad schematics, PCB layouts, and bills of materials, with a command-line interface and AI agent tools included. Synth is built on SynthSpec, a language for describing components, connections, and board constraints in a .synth file, and the project ships a Model Context Protocol (MCP) server so MCP-compatible agents can retrieve the language reference, search parts and pin definitions, validate designs, apply fixes, and invoke placement, routing, and export. The company says the goal is to bring the software development loop to electronics, making hardware design a workflow an agent can participate in and an engineer can verify.", "body_md": "Ready\n\nToday, **Abstract Machines is open-sourcing [Synth](https://github.com/absmach/synth)**, a circuit compiler that turns text-based board designs into KiCad schematics, PCB layouts, and bills of materials. It is available under the Apache-2.0 license, with a command-line interface and tools for AI agents included.\n\nOur ambition is to bring the software development loop to electronics: describe a design, compile it, inspect the errors, and iterate. Review a circuit change in a pull request. Run checks in CI. Give an AI agent a board brief, then inspect the source it writes and the outputs it generates.\n\n**Circuit source you can review. Compiler feedback you can act on. KiCad files you can open.**\n\n[Explore Synth on GitHub](https://github.com/absmach/synth) · [Get started](#try-synth-today)\n\n## A circuit board you can read, diff, and build\n\nSynth starts with **SynthSpec**, a language for describing components, connections, and board constraints in a `.synth` file. Engineers and agents work on the same readable source.\n\nHere is a small fragment showing an RP2350 microcontroller connected to an ATECC608 secure element. It illustrates the syntax; the power connections, pull-ups, and other supporting circuitry are omitted:\n\n```\nboard \"sensor_node\" {\n  layers 4\n  manufacturer \"jlcpcb\"\n\n  component U1: mcu \"rp2350\"\n  component U2: secure_element \"atecc608\"\n\n  connect U1.gp0 -> U2.sda\n  connect U1.gp1 -> U2.scl\n}\n```\n\nSynth resolves those parts against its component registry, checks the design, and uses a typed representation of the board for placement, routing, and export. The language also supports placement hints, keepouts, and differential-pair constraints.\n\nThat changes how a team can work on hardware. A pin reassignment becomes a source diff. A compiler diagnostic points back to the design that caused it. With the compiler, registry, and settings pinned, deterministic placement and routing make builds repeatable.\n\nThe 3D view above is generated from a KiCad board artifact, showing the board outline, components, copper, and silkscreen. Electrical and manufacturing review remain part of the workflow.\n\nFor a larger example from the Synth Enterprise workflow, you can [download the field node circuit source](https://www.absmach.eu/synth/orbit-board.synth) and [open its generated board in KiCad](https://www.absmach.eu/synth/orbit-board.kicad_pcb).\n\nKiCad is where you inspect the generated schematic and board. Keep circuit changes in the Synth source and part definitions so they survive regeneration: edits made directly to generated KiCad files are overwritten on the next export.\n\n## Give your AI agent a compiler\n\nCoding agents work through a useful feedback loop: write source, run tools, read errors, and revise. Synth brings that loop to circuit design.\n\nThe open-source project includes a **Model Context Protocol (MCP) server**. Connect an MCP-compatible agent and it can retrieve the language reference, search for parts and their pin definitions, validate a design, apply fixes, and invoke placement, routing, and export. You choose the agent and model.\n\nConsider an agent that writes `U1.gpo` instead of `U1.gp0`. Synth’s resolver reports `E-SYNTH-COMP-002`: an undefined pin, with a source location and suggested replacements. The agent can use that feedback to make a focused correction:\n\n``` php\n- connect U1.gpo -> U2.sda\n+ connect U1.gp0 -> U2.sda\n```\n\nYou can review the edit, rerun the checks, and inspect the resulting artifacts. This is the central idea behind Synth: **make hardware design a workflow an agent can participate in and an engineer can verify.**\n\n## What we are open-sourcing\n\nSynth Community Edition includes the tools to run that workflow yourself:\n\n- **The language and compiler:** SynthSpec parsing, part resolution, and a typed board representation.\n- **Electrical and physical checks:** electrical-rule checks (ERC), design-rule checks (DRC), and structured diagnostics with source locations and suggested fixes where available.\n- **Placement, routing, and KiCad export:** schematic and PCB generation, plus a bill of materials. Optional fabrication exports use`kicad-cli` .\n- **An extensible component registry:** part definitions, project and user overlays, and import and authoring tools.\n- **CLI and agent tools:** local commands, JSON diagnostics, and the MCP server.\n\nWe are also developing **Synth Enterprise** on this foundation, with a managed service, a custom agent harness, and engineering team support. Its cockpit preview brings agent runs, source, diagnostics, and design views together. [Explore the editions](https://www.absmach.eu/synth/#editions) or [talk to us about your workflow](https://www.absmach.eu/contact).\n\n## Why we are opening it now\n\nA circuit compiler becomes more useful with every well-described component, reproducible bug report, and design that tests its assumptions. Opening Synth lets hardware engineers, software developers, and agent builders improve the same foundation.\n\nYou can inspect how a rule works, extend the registry for your components, and adapt the tools to your own development process. We want circuit design to benefit from the shared tools and review practices that make open-source software productive.\n\nSynth is early. Component coverage, layout quality, and routing need to improve across a wider range of boards. Passing compiler checks establishes that a design satisfies the implemented rules; engineers still need to review component data, inspect KiCad outputs, and validate the hardware before manufacturing. Expanding that coverage and making failures easier to diagnose are central to the work ahead.\n\n## Try Synth today\n\nWith a current stable Rust toolchain and Cargo installed, clone the repository and export the minimal example:\n\n```\ngit clone https://github.com/absmach/synth.git\ncd synth\ncargo build -p synth-cli\ncargo run -p synth-cli -- validate fixtures/designs/hello.synth\ncargo run -p synth-cli -- export-kicad fixtures/designs/hello.synth --out output/hello\n```\n\nThis example is an empty two-layer board: a small first check of the compile-and-export path. Open the generated project in KiCad, then explore the [environmental logger and other circuit examples](https://github.com/absmach/synth#examples).\n\nTo connect your own agent, start the MCP server from the same checkout:\n\n```\ncargo run -p synth-cli -- mcp --stdio\n```\n\nThe [MCP guide](https://github.com/absmach/synth/blob/main/crates/synth-mcp/README.md) covers agent integration, and the [KiCad workflow guide](https://github.com/absmach/synth/blob/main/docs/kicad-workflows.md) explains export and review.\n\n**Bring a board you want to build.** Try an example, add a component, or [share a design that challenges the compiler](https://github.com/absmach/synth/issues). Contributions to the compiler, registry, examples, and documentation are welcome.\n\n[Star Synth on GitHub](https://github.com/absmach/synth) and help us build an open foundation for programmable circuit design.", "url": "https://wpnews.pro/news/abstract-machines-launches-synth", "canonical_source": "https://www.absmach.eu/blog/synth-core-announcement/", "published_at": "2026-09-17 15:47:03+00:00", "updated_at": "2026-09-17 15:56:33.446511+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "developer-tools", "ai-tools"], "entities": ["Abstract Machines", "Synth", "SynthSpec", "KiCad", "Model Context Protocol", "RP2350", "ATECC608", "Apache-2.0"], "alternates": {"html": "https://wpnews.pro/news/abstract-machines-launches-synth", "markdown": "https://wpnews.pro/news/abstract-machines-launches-synth.md", "text": "https://wpnews.pro/news/abstract-machines-launches-synth.txt", "jsonld": "https://wpnews.pro/news/abstract-machines-launches-synth.jsonld"}}