Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>AELM - Agent-native Electronic Layout MarkupNew to Visual Studio Code? Get it now.
AELM - Agent-native Electronic Layout Markup

AELM - Agent-native Electronic Layout Markup

Preview

alphaelements

|
19 installs
| (0) | Free
Code-first schematic capture and EDA in VS Code. Write circuits in a concise DSL, see the schematic update live, diff in Git, and share with AI agents. Text-based alternative to traditional schematic editors.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

AELM — Agent-native Electronic Layout Markup

Design circuits with code, not clicks. Edit a .aelm file and the schematic renders live, side-by-side, in VS Code.

AELM logo

AELM in VS Code

What you get

  • A compact DSL for schematics — parts, pins, connections, and placement hints.
  • A live schematic preview that updates on every keystroke.
  • Git-friendly source files — every change is a text diff.
  • A format that LLMs and AI agents can read, edit, and generate reliably.
  • SVG / PNG export for docs, slides, and reports.
  • Built-in LSP: diagnostics, hover docs, completion for parts, pins, and nets.
  • A standard parts library (resistors, capacitors, transistors, power symbols, connectors, op-amps, logic gates, flow / block diagram symbols) with 35+ built-in schematic symbols.

Who it's for

  • Hardware designers who want schematics to live next to firmware in the same repo, with diffable history.
  • Docs and tutorials where a textual circuit source is easier to maintain than a binary schematic file.
  • Agentic workflows where a language model needs to read a design, propose a change, and write back a correct edit.
  • Anyone who prefers code-review-able circuits over clicking through a GUI.

Quick start

  1. Install the extension.
  2. Create a file ending in .aelm.
  3. The schematic opens in the circuit editor next to your code. Type, watch it render.

Example: a minimal circuit

part Resistor {
    pins {
        a: passive @1
        b: passive @2
    }
    symbol: resistor
}

module Divider {
    instances {
        R1: Resistor(value: 10k) place: (0, 0)
        R2: Resistor(value: 10k) place: R1.b(0, -10)
    }
    connections {
        R1.b -> R2.a
    }
}

More examples live at https://github.com/alphaelements/aelm/tree/main/examples.

File types

Extension Purpose
.aelm Schematic / circuit source
.alib Parts library (reusable part definitions)
.astyle Visual styling (colors, widths, grid)
.aproj Project config (library paths, defaults)

Commands

Open the command palette and type AELM: to see them all.

Command What it does
AELM: Show Side by Side Code + diagram in parallel
AELM: Show Diagram Only Full-screen schematic
AELM: Show Code Only Back to text editor
AELM: Export as SVG Save the diagram as SVG
AELM: Export as PNG Save the diagram as PNG
AELM: Zoom to Fit Fit the schematic to the viewport

Context-menu actions (right-click a component in the diagram): rotate, mirror, lock, delete, drill into sub-modules.

Documentation

  • Getting started
  • DSL reference
  • Parts and symbols
  • Style system

Status

Preview release. The language and editor are usable for real circuits today; the format is stabilising. Breaking DSL changes will be noted in the changelog.

Requirements

  • VS Code 1.80.0 or later

Links

  • GitHub
  • Issue tracker
  • Wiki / documentation
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft