Convert your EasyEDA Pro projects to a KiCad-ready zip — from the command line.
KiCad ships an excellent native EasyEDA Pro importer — but it’s buried in the
GUI. epro2kicad drives that same importer headlessly through KiCad’s bundled
Python API, so you get GUI-quality conversion in one command. No cloud
uploads, no re-drawing, no dependencies beyond KiCad itself.
$ python3 epro2kicad.py MyProject.epro --zip
using KiCad python: /Applications/KiCad/KiCad.app/.../python3
converting PCB a7363ec0... ...
footprints: 45 tracks: 1068 nets: 63
wrote MyProject_kicad.zip
done: MyProject_kicad/
The examples/ folder contains a real conversion: the
Daaga V1.3 sumo-robot board (Arduino Nano + TB6612FNG motor driver +
QRE1113 line sensors), exported from EasyEDA Pro and converted with this tool:

This render was produced by kicad-cli pcb render from the converted
.kicad_pcb — every footprint, track, zone and the breakaway sensor panel
survived the round trip.
std::out_of_range: map::at — if you’ve seen it, this is why)type must be number, but is array
(kicad#24303) and
restores the NET records newer exports dropped (without them, KiCad 9
imports every pad and track as <no net>)docs/ is a client-side GitHub Pages app that
repairs and packages .epro files in the browser (nothing is uploaded);
final import is one GUI step in KiCad, since KiCad’s C++ importer can’t run
in a browser.kicad_pro so the output opens
as a proper project--zip produces a ready-to-share archive with the
original .epro and instructions includedNo install. Just KiCad ≥ 8 (kicad.org) and this script:
git clone https://github.com/enkhbold470/epro2kicad.git
cd epro2kicad
python3 epro2kicad.py path/to/YourProject.epro --zip
If KiCad’s Python isn’t auto-detected, point at it explicitly:
export KICAD_PYTHON="/Applications/KiCad/KiCad.app/Contents/Frameworks/Python.framework/Versions/Current/bin/python3"
In EasyEDA Pro: File → Export → EasyEDA Pro (Professional) Project — that
.epro file is what this tool eats.
python3 epro2kicad.py PROJECT.epro [-o OUTPUT_DIR] [--zip]
PROJECT.epro EasyEDA Pro project export
-o, --output output directory (default: <name>_kicad/)
--zip also produce <name>_kicad.zip
--version print version
KiCad’s EasyEDA Pro schematic importer is GUI-only (there is no headless
API for it, and no third-party tool supports the Pro format). The output zip
includes your original .epro plus instructions — the one manual step is:
KiCad → File → Import Non-KiCad Project → EasyEDA (JLCEDA) Pro Project → select the
.epro
That imports the schematic (and PCB) in about 30 seconds.
.epro zip with clean \n line endings in
every JSON Lines document (.esch, .epcb, .esym, .efoo). Some
EasyEDA exports carry CR/LF endings that hard-crash KiCad’s parser.pcbnew.PCB_IO_MGR.Load(EASYEDAPRO, ...), then saves with
PCB_IO_MGR.Save(KICAD_SEXP, ...) (not SaveBoard, which touches
project settings and crashes outside a full KiCad session)..kicad_pro, copies the original .epro, adds a
README, and optionally zips it all.| Platform | Status |
|---|---|
| macOS (KiCad.app) | ✅ tested (KiCad 10.0.4) |
| Linux (system KiCad) | ✅ should work — pcbnew is on the system Python |
| Windows | ⚠️ untested — set KICAD_PYTHON to KiCad’s python.exe |
Issues and PRs welcome. Ideas that would be great to have:
.epro filesMIT © 2026 Enkhbold Ganbold