Open source · MIT · v0.4.0

One line of your BOM, built into a finished part.

ecadlib reads your BOM, finds or draws the symbol, footprint and 3D model from the maker's datasheet, checks them, and releases the part to Altium 365 or KiCad.

Scrolling on shows ecadlib's six steps for one part: it reads the BOM line and searches your sources, reads the maker's drawing, lays out the symbol, builds the footprint, makes the 3D model, then checks it and releases it to your library.

Your component library, kept alive.

Free and open source. Runs on your machine with your own API key. Altium 365 first, KiCad too.

  • free, no paid tier
  • your API key, any model
  • runs on your machine
  • about $2 a BOM, paid to your provider

The footprint and symbol above are ecadlib's own output for TLC5951DAP. The BOM, the sources and the Altium panel are an example run.

Nexar · Altium 365DigiKeyMouseryour own librariesKiCad official librariesdatasheet readerIPC-7351B generatorEasyEDA · LCSC, unofficial, asked lastSTEP bodies

02Footprints

Drawn from the datasheet,
to IPC-7351B.

These land patterns are not illustrations. They are what ecadlib footprint makes from the package numbers on the left, drawn here the way Altium's PCB editor shows them.

package.jsonreading

        
…x 0.000 y 0.000 mm

benchmark · 25 Oct 2026

86 of 110 real parts right

The live run's datasheet reads plus two re-reads, scored on today's code against KiCad's library and the maker's datasheet (the run itself scored 77). None built wrong: the misses were held, not guessed. Tuned on these parts, so a fresh set is next.

pads

89 % of pads match KiCad

Over every footprint built. Where KiCad and the maker differ, ecadlib follows the maker. The target is 97 %.

cost

$25.80 in reads

One live read of all 110 parts, plus two re-reads. The method and every miss are in docs/benchmark.md.

03House style

Parts that look like yours.

ecadlib learns how your library names, describes and draws parts, and every new part follows it.

learn

Your conventions

ecadlib style learn reads your Altium, Altium 365 or KiCad library offline: names, descriptions, value formats, pin names. How it learns.

symbols

One pin rule

Inputs left, outputs right, power on top, ground at the bottom, on every IC symbol. One setting moves power and ground to the left.

review

Held until it is right

A part that fails the release check is held back with the reason and the fix. Releasing it anyway records who looked.

04Workflow

Right inside Altium and KiCad.

You never leave your design tool. ecadlib adds an ecadlib menu to Altium and a toolbar button to KiCad, each with its own window; the web page opens only for steps that need it. Ask for a part, and it comes back as a library part you can place.

TLC5951DAP · example run

    05Your model

    Bring your own key.
    Use any model.

    No account, hosted service or telemetry. ecadlib talks only to the model you set, with your own key. Claude is the default; OpenAI, OpenRouter, Gemini, Ollama and LM Studio work too. A small local model gets small checked steps, a frontier model one structured call.

    What it costs to runyou pay your provider · we take $0

    Passives, KiCad and EasyEDA parts
    $0
    A part read from its datasheet
    ≈ $0.27 $0.13 batched
    A 50-line BOM
    $1.50–3
    A 500-part library, from scratch
    $15–30
    Keeping it up to date
    ≈ $0

    Most parts never touch the model. --estimate shows the cost first and max_cost_usd caps it. Estimated on Claude Opus 5.5 at October 2026 prices. Every model, side by side.

    fig. 5 · your keyrest
    
          

    06Where it lands

    Altium 365 first. KiCad too.

    altium

    Altium Designer and Altium 365

    • Released to Altium 365 through Nexar, with a dry run first
    • .SchLib, .PcbLib and .DbLib, read back before release
    • Altium rebuilds each library itself and ecadlib compares pad by pad
    • An ecadlib menu inside Altium: add a part, fill the library, check the BOM

    kicad

    KiCad

    • .kicad_sym, .pretty, library tables, a database library and a PCM package
    • Every package loads in KiCad's pcbnew with the same pads
    • The KiCad and Altium output are compared part by part

    web ui

    A local page

    ecadlib ui: drop a BOM in, sign parts off.

    mcp

    An agent's tools

    ecadlib mcp: an agent checks a BOM in conversation.

    cli

    Scripts and CI

    Every step takes --json, for CI or a weekly job.

    07Living

    It keeps the library current.

    A weekly run checks suppliers, the KiCad sources and your Altium 365 workspace, and reports only what changed, in one issue or pull request.

    • Parts gone NRND, last-time-buy or end of life
    • Upstream footprints that changed, reconverted with a real diff
    • No released part changes without a person's approval

    08Quick start

    Two minutes, offline, no keys.

    The demo builds a small library from a bundled BOM with the built-in standard parts, so you can see the whole flow before you set anything up. On Windows and not a terminal person? Use the installer instead.

    ~/libraries
    # Python 3.10+
    pip install ecadlib
    ecadlib demo       # a 7-part library in ./ecadlib-demo, about a second
    ecadlib init       # your tool, your libraries, your sources
    ecadlib ui         # in your browser: Add to Altium or KiCad, drop in a BOM

    Optional: free DigiKey, Mouser and Nexar keys let ecadlib identify more parts and find their datasheets. Get the keys, step by step.