🔌 I Built a Plugin to Auto-Label Nets in KiCad (To Reduce Schematic Errors)

Hey fellow KiCad users! :wave:
I wanted to share a plugin I recently built to make schematic design in KiCad more reliable and error-free it’s an Auto-Net Labeling Plugin that automatically assigns meaningful net names as you draw your schematic.

Why I Built It:

While working on several projects, I kept running into issues caused by unlabelled or inconsistently named nets which made debugging and PCB layout more difficult. So I decided to automate this part of the workflow.

What It Does:

Automatically detects unnamed nets and assigns labels based on context (e.g. connected components, pin names).
Ensures naming consistency across your schematic.
Helps reduce the chance of errors during simulation, ERC, and PCB layout stages.

How It Works:

Written in Python using KiCad’s scripting API.
Runs as a plugin from the Schematic Editor.
Lightweight and non-intrusive you can review and accept/reject the suggested labels.

Looking for Feedback:

I’d love to hear what you think!

Would this plugin be useful in your workflow?
Any additional features you’d suggest (like custom naming rules, integration with hierarchical sheets, etc.)?
I’m also open to contributors if anyone wants to help polish it up!

I’ll be sharing the GitHub repo and a demo video soon. Stay tuned!

Please explain further. First, KiCad already gives automatic net names based on connected pins. Second, the schematic part of KiCad doesn’t have an API. Third, the Schematic Editor can’t run plugins.

I heard that the schematic API has been created, has it been developed? However, the other day I developed a plugin that automatically adds netnames to pads, tracks, coppers, etc., that do not have nets in the PCB editor. The purpose is to provide the ability to automatically assign networks when using KICAD to reverse crack PCBs. After a little waiting, you can also name the network according to the original name pin number combination. HaydenHu/Kicad-Auto_Net_Namer: Automatically assign names to physically connected but unnamed nets