HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
INTI-CMNB
KiBot
Python2021–2023
INTI-CMNB / KiBot

KiBot

KiCad automation utility

5Distinct people
6Mentions
1Explicit recommenders
763GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

KiCad automation utility

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

This is 100% accurate and I recommend it. I know that most people reading this right now will say "this is so hard I don't even know where to begin", but, as with anything,…

stavros used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month6 dated mentions

Observed mentions: 2021-12-25 00:25:46 UTC to 2023-06-14 01:58:11 UTC.

012021-12-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsDec 20212022-01-01 00:00:00 UTC to 2022-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-02-01 00:00:00 UTC to 2022-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-03-01 00:00:00 UTC to 2022-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-04-01 00:00:00 UTC to 2022-05-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-05-01 00:00:00 UTC to 2022-06-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-06-01 00:00:00 UTC to 2022-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-07-01 00:00:00 UTC to 2022-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-08-01 00:00:00 UTC to 2022-09-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-09-01 00:00:00 UTC to 2022-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsSep 20222022-10-01 00:00:00 UTC to 2022-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-11-01 00:00:00 UTC to 2022-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-12-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2023-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-02-01 00:00:00 UTC to 2023-03-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-03-01 00:00:00 UTC to 2023-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-04-01 00:00:00 UTC to 2023-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-05-01 00:00:00 UTC to 2023-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-06-01 00:00:00 UTC to 2023-07-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJun 2023

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Dec 20212021-12-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
Jan 20222022-01-01 00:00:00 UTC2022-02-01 00:00:00 UTC000
Feb 20222022-02-01 00:00:00 UTC2022-03-01 00:00:00 UTC000
Mar 20222022-03-01 00:00:00 UTC2022-04-01 00:00:00 UTC000
Apr 20222022-04-01 00:00:00 UTC2022-05-01 00:00:00 UTC101
May 20222022-05-01 00:00:00 UTC2022-06-01 00:00:00 UTC101
Jun 20222022-06-01 00:00:00 UTC2022-07-01 00:00:00 UTC000
Jul 20222022-07-01 00:00:00 UTC2022-08-01 00:00:00 UTC000
Aug 20222022-08-01 00:00:00 UTC2022-09-01 00:00:00 UTC101
Sep 20222022-09-01 00:00:00 UTC2022-10-01 00:00:00 UTC000
Oct 20222022-10-01 00:00:00 UTC2022-11-01 00:00:00 UTC000
Nov 20222022-11-01 00:00:00 UTC2022-12-01 00:00:00 UTC000
Dec 20222022-12-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
Jan 20232023-01-01 00:00:00 UTC2023-02-01 00:00:00 UTC000
Feb 20232023-02-01 00:00:00 UTC2023-03-01 00:00:00 UTC101
Mar 20232023-03-01 00:00:00 UTC2023-04-01 00:00:00 UTC000
Apr 20232023-04-01 00:00:00 UTC2023-05-01 00:00:00 UTC000
May 20232023-05-01 00:00:00 UTC2023-06-01 00:00:00 UTC000
Jun 20232023-06-01 00:00:00 UTC2023-07-01 00:00:00 UTC101

What Hacker News says

6 sources
KiBot [0] is super handy for this, the documentation has an explicit section on CI/CD usage. It does have to basically script drive the GUI to achieve some functionality which has now been added to the kicad cli, so hopefully going forward CI/CD with KiCad will be even easier! 0: https://github.com/INTI-CMNB/KiBot
In KiCad 7.0
I gathered my setup from a few sources but the main one is https://github.com/INTI-CMNB/kicad_auto and https://github.com/INTI-CMNB/KiBot . Here is my current setup for gitlab: When adding components, add "LCSC" to overall schematic (BOM export will fail if added to each part separately (join issue)) and the part number in each part in order to use the JLCPCB assembly service. Only parts with LCSC column are exported in the JLCPCB BOMs. .gitlab-ci.yml ... tests: image: setsoft/kicad_auto:dev_k6 stage: testing script: - "[ -f *.kicad_pcb ] && kibot -c test.kibot.yaml" tags: - docker pcb_outputs: image: setsoft/kicad_auto:dev_k6 stage: gen_fab script: - "[ -f *.kicad_pcb ] && kibot -c output.kibot.yaml" only: refs: - master artifacts: when: always paths:
Read the rest
- Fabrication/ tags: - docker ... test.kibot.yaml kibot: version: 1 preflight: run_erc: false update_xml: false run_drc: true check_zone_fills: true ignore_unconnected: false output.kibot.yaml # Gerber and drill files for JLCPCB, without stencil # URL: https://jlcpcb.com/ kibot: version: 1 filters: - name: only_jlc_parts comment: 'Only parts with JLC (LCSC) code' type: generic include_only: - column: 'LCSC' regex: '^C\d+' variants: - name: rotated comment: 'Just a place holder for the rotation filter' type: kibom variant: rotated pre_transform: _rot_footprint outputs: - name: JLCPCB_gerbers comment: Gerbers compatible with JLCPCB type: gerber dir: JLCPCB options: &gerber_options exclude_edge_layer: true exclude_pads_from_silkscreen: true plot_sheet_reference: false plot_footprint_refs: true plot_footprint_values: false force_plot_invisible_refs_vals: false tent_vias: true use_protel_extensions: true create_gerber_job_file: false disable_aperture_macros: true gerber_precision: 4.6 use_gerber_x2_attributes: false use_gerber_net_attributes: false line_width: 0.1 subtract_mask_from_silk: true layers: # Note: a more generic approach is to use 'copper' but then the filenames # are slightly different. - F.Cu - B.Cu - F.Paste - B.Paste - F.SilkS - B.SilkS - F.Mask - B.Mask - Edge.Cuts - name: JLCPCB_drill comment: Drill files compatible with JLCPCB type: excellon dir: JLCPCB options: pth_and_npth_single_file: false pth_id: '-PTH' npth_id: '-NPTH' metric_units: false output: "%f%i.%x" - name: JLCPCB comment: ZIP file for JLCPCB type: compress dir: Fabrication/JLCPCB options: files: - from_output: JLCPCB_gerbers dest: / - from_output: JLCPCB_drill dest: / - name: ibom comment: Interactive BOM type: ibom dir: Fabrication/ibom options: dark_mode: true - name: 'JLCPCB_position' comment: "Pick and place file, JLCPCB style" type: position dir: Fabrication/JLCPCB-BOM options: variant: rotated output: '%f_cpl_jlc.%x' format: CSV units: millimeters separate_files_for_front_and_back: false only_smd: true columns: - id: Ref name: Designator - Val - Package - id: PosX name: "Mid X" - id: PosY name: "Mid Y" - id: Rot name: Rotation - id: Side name: Layer - name: 'JLCPCB_bom' comment: "BoM for JLCPCB" type: bom dir: Fabrication/JLCPCB-BOM options: output: '%f_%i_jlc.%x' exclude_filter: 'only_jlc_parts' ref_separator: ',' columns: - field: Value name: Comment - field: References name: Designator - Footprint - field: 'LCSC' name: 'LCSC part number' csv: hide_pcb_info: true hide_stats_info: true quote_all: true*
In Fritzing is an open-source electronic design tool
stavros·Apr 30, 2022Recommendation phrase
This is 100% accurate and I recommend it. I know that most people reading this right now will say "this is so hard I don't even know where to begin", but, as with anything, once you know how it's done, it's trivial. The parent comment is a good introduction, watch some KiCAD videos on designing circuits, the process is pretty foolproof if you design the schematic correctly, and then you basically "export Gerbers", upload them to the fab (JLCPCB), and you have PCBs in a few days. Here's a small PCB I designed, together with Kibot project files that will error-check and export the Gerbers automatically: https://gitlab.com/stavros/manual-fc Install https://github.com/INTI-CMNB/kibot, run `kibot` in the directory of the designs, and you'll get files that are ready to upload to JLCPCB. Edit the designs etc to make your own thing, that should h
Read the rest
elp you get started.
In Ask HN: Teach me something new

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.