MCPcopy Index your code
hub / github.com/openscopeproject/InteractiveHtmlBom

github.com/openscopeproject/InteractiveHtmlBom @v2.11.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.11.2 ↗ · + Follow
483 symbols 1,274 edges 39 files 28 documented · 6% updated 18d agov2.11.2 · 2026-05-24★ 4,45835 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Interactive HTML BOM plugin for KiCad

Supports EasyEDA, Eagle, Fusion360 and Allegro PCB designer

icon

This plugin generates a convenient Bill of Materials (BOM) listing with the ability to visually correlate and easily search for components and their placements on the PCB. It is particularly useful when hand-soldering a prototype, as it allows users to quickly find locations of components groups on the board. It is also possible to reverse lookup the component group by clicking on a footprint on the board drawing.

The plugin utilizes Pcbnew python API to read PCB data and render silkscreen, fab layer, footprint pads, text, and drawings. BOM table fields and grouping is fully configurable, additional columns, such as a manufacturer ID, can be added in Schematic editor and imported either through the netlist file, XML file generated by Eeschema's internal BOM tool, or from board file itself.

There is an option to include tracks/zones data as well as netlist information allowing dynamic highlight of nets on the board.

For full description of functionality see wiki.

Generated html page is fully self contained, doesn't need internet connection to work and can be packaged with documentation of your project or hosted anywhere on the web.

A demo is worth a thousand words.

Installation and Usage

See project wiki for instructions.

License and credits

Plugin code is licensed under MIT license, see LICENSE for more info.

Html page uses Split.js, PEP.js and (stripped down) lz-string.js libraries that get embedded into generated bom page.

units.py is borrowed from KiBom plugin (MIT license).

svgpath.py is heavily based on svgpathtools module (MIT license).

Core symbols most depended-on inside this repo

add
called by 62
InteractiveHtmlBom/ecad/common.py
normalize
called by 32
InteractiveHtmlBom/ecad/easyeda.py
normalize
called by 31
InteractiveHtmlBom/ecad/kicad.py
writeStorage
called by 30
InteractiveHtmlBom/web/util.js
error
called by 19
InteractiveHtmlBom/core/ibom.py
info
called by 14
InteractiveHtmlBom/core/ibom.py
add_point
called by 14
InteractiveHtmlBom/ecad/common.py
_split
called by 13
InteractiveHtmlBom/core/config.py

Shape

Function 229
Method 222
Class 32

Languages

Python64%
TypeScript36%

Modules by API surface

InteractiveHtmlBom/web/ibom.js62 symbols
InteractiveHtmlBom/web/render.js53 symbols
InteractiveHtmlBom/dialog/settings_dialog.py41 symbols
InteractiveHtmlBom/dialog/dialog_base.py33 symbols
InteractiveHtmlBom/ecad/kicad.py32 symbols
InteractiveHtmlBom/ecad/common.py32 symbols
InteractiveHtmlBom/ecad/easyeda.py27 symbols
InteractiveHtmlBom/ecad/fusion_eagle.py25 symbols
InteractiveHtmlBom/web/util.js24 symbols
InteractiveHtmlBom/ecad/svgpath.py22 symbols
InteractiveHtmlBom/core/ibom.py20 symbols
InteractiveHtmlBom/web/table-util.js12 symbols

Dependencies from manifests, versioned

jsonschema4.1 · 1×
wxpython4.0 · 1×

For agents

$ claude mcp add InteractiveHtmlBom \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact