Onderdelen
Onderdelenbibliotheek
agentee library: de eigen onderdelen van de gebruiker met hun symbolen, footprints, modellen, datasheets en voorraad, gevonden, toegevoegd en gebruikt in elk ontwerp.
De onderdelenbibliotheek is de eigen set onderdelen van de gebruiker: de connectoren, regelaars, passieve componenten en alles anders wat ze in elk ontwerp willen hergebruiken, zodat kabels en voorraad over projecten heen meegaan. Elk onderdeel bevat zijn symbool, footprint, 3D-model, datasheet en de laatst gecontroleerde voorraad, en een agent kiest hieruit voordat hij naar iets nieuws gaat (MCP library_find, library_list, library_show, library_use, library_add). De workflow voor elk onderdeel dat een ontwerp nodig heeft is zoeken, toevoegen, gebruiken: find toont de bibliotheekonderdelen die overeenkomen en, als er geen is, de huidige onderdelen op voorraad bij de distributeurs; het gekozen onderdeel gaat met add in de bibliotheek en met use op de printplaat.
Het staat in ~/.config/agentee/library/ ($AGENTEE_LIBRARY verplaatst het), en een project kan onderdelen toevoegen of overschrijven in .agentee/library/ op de root. Elk onderdeel is een map:
JST-PH-2/
part.toml
JST-PH-2.sym.toml # the symbol, renamed to the part
JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal.fp.toml
3dmodels/JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal.steprole = "connector"
mpn = "S2B-PH-K-S"
manufacturer = "JST"
lcsc = "C131337" # the JLCPCB/LCSC part number, looked up by `add` and `refresh`
value = "PH 2-pin"
rating = "2 A, 100 V"
preferred = true # the first choice for its role
# generic = true # any value on this footprint is this part (a resistor series)
# pins = 2 # default the symbol's pin count
tags = ["power", "battery"]
notes = "power input, 2 A max, use XH for motors"
symbol = "JST-PH-2.sym.toml"
footprint = "JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal.fp.toml"
model = "3dmodels/JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal.step"
added = "2026-10-09"
[datasheet] # pinned in the datasheet cache
url = "http://www.farnell.com/datasheets/4648554.pdf"
sha256 = "dd60971f..."
[[files]] # where each file came from and its hash when added
path = "JST-PH-2.sym.toml"
source = "kicad Connector_Generic:Conn_01x02, KiCad 9.0"
sha256 = "42b88f96..."
[[stock]] # one per distributor listing, from add or refresh
distributor = "Farnell"
sku = "9491902"
stock = 338281
currency = "EUR"
breaks = [[100.0, 0.0841], [1000.0, 0.0655]]
min = 100
url = "https://ie.farnell.com/search?st=9491902"
checked = "2026-10-09"agentee library add S2B-PH-K-S --name JST-PH-2 --role connector \
--symbol Connector_Generic:Conn_01x02 \
--footprint Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal \
--manufacturer JST --rating "2 A, 100 V" --notes "power input" --preferred
agentee library find 3.3V buck --role regulator # library matches, else stocked parts to add
agentee library find USB-C receptacle --need 100 --search
agentee library list # every part, by role, with stock and price
agentee library list --role connector 2-pin power
agentee library show JST-PH-2
agentee library use JST-PH-2 -p board/ # copy its files in, print the edit that places it
agentee library refresh # stock and price of every part, one lookup each
agentee library verifyfind WORDS toont de bibliotheekonderdelen waarvan de naam, rol, tags, onderdeelnummer, waarde, specificatie, footprint of notities op elk woord overeenkomen. Alleen als er geen overeenkomt (of met --search) voert het dezelfde woorden uit als een trefwoordzoeking bij elke distributeur met een sleutel en toont de onderdelen die actief zijn (geen status als verouderd, einde van leven of stopgezet) met minstens --need op voorraad (standaard 1), samengevoegd op onderdeelnummer: totale voorraad, de distributeurs die het hebben, de beste eenheidsprijs bij die hoeveelheid, en de datasheetlink. Onderdelen die bij meerdere distributeurs op voorraad zijn komen eerst, daarna op voorraad; --limit beperkt de lijst (standaard 15). Een getoond onderdeel dat al in de bibliotheek staat, zegt dat.
add neemt het symbool en de footprint uit een .sym.toml of .fp.toml bestand, een symbool of footprint van het project (-p), of een KiCad Library:Name; de footprint is standaard die van het symbool. Het kopieert het 3D-model van de footprint mee (uit de KiCad modelmappen, de modelcache of een download), wijst de footprint naar de kopie en stelt de height in vanuit het model als die er niet is, zodat een onderdeel offline werkt en blijft werken als een KiCad-installatie of een vendor-download verandert. Als KiCad geen model van die naam heeft, neemt het het dichtstbijzijnde lichaam in dezelfde .3dshapes map, hetzelfde pakket met de dichtstbijzijnde blootliggende pad (of het lege lichaam van een _ThermalVias footprint), en zegt dat; het 3D-weergave en models doen hetzelfde. --model accepteert ook een vendor-download, een ZIP of map met een .kicad_mod en het STEP of VRML model (SamacSys, SnapMagic en Ultra Librarian leveren deze): het past de pads van het vendor-footprint aan de onze toe op nummer, weigert als ze meer dan 0,1 mm uit elkaar liggen, en schrijft de model_offset en model_rotate die het vendor-model op onze footprint zetten. Zonder model van KiCad of --model, zoekt add het onderdeelnummer op in de JLCPCB/LCSC onderdelenlijst en neemt het EasyEDA model, op dezelfde manier geplaatst door de pads van de EasyEDA-footprint na het controleren van het model tegen de omtrek van die footprint; de files van het onderdeel registreren het als EasyEDA C258169 (easyeda.com). add en refresh bewaren het LCSC-nummer als lcsc, en use geeft het door als het lcsc veld van het onderdeel, dat bom-jlcpcb.csv leest. --no-distributors slaat beide zoekingen over. Het haalt de datasheet (--datasheet URL of PDF, anders de URL van het symbool, anders die van de distributeurs), pind die vast in de datasheetcache zodat datasheet purge hem nooit verwijdert, en registreert de voorraad en prijsbreuken van elke vermelding. De notities zeggen wanneer geen distributeur het onderdeel op voorraad heeft als actief onderdeel. --local voegt toe aan de bibliotheek van het project in plaats daarvan.
use kopieert het symbool naar symbols/, de footprint naar footprints/ en het model naar 3dmodels/ van het project; een bestand dat al bestaat en verschilt wordt geweigerd zonder --force. Het geeft het agentee edit sch commando terug dat het onderdeel toevoegt met zijn mpn, mfr en library velden. datasheet text JST-PH-2 leest de vastgezette kopie zonder een netwerkoproep.
refresh vraagt elke distributeur met een sleutel één keer om alle onderdeelnummers van de bibliotheek en vervangt de [[stock]] van elk onderdeel; een distributeur die faalt behoudt zijn laatste vermelding. list toont de goedkoopste vermelding op voorraad met de datum waarop die is gecontroleerd, zodat voorraad en prijs bekend zijn zonder een API-oproep, per die datum.
verify controleert elk onderdeel: elke symboolpin heeft een pad, de vastgezette datasheet noemt het onderdeelnummer en het pakket (of een pinaangetal), de pinnamen van het symbool komen erin voor, de omtrek van het model past in de courtyard, de gaten, slitsen en ringen van de footprint voldoen aan de minimumwaarden van JLCPCB, en elk bestand heeft nog de hash waarmee het is toegevoegd. Het eindigt met 1 als er één faalt.
check waarschuwt (regel library) als een ontwerp een onderdeel buiten de bibliotheek gebruikt voor een rol die de bibliotheek heeft, en noemt het bibliotheekonderdeel dat je moet gebruiken: het met hetzelfde pinaangetal, het voorkeursonderdeel eerst. De rol van een onderdeel is zijn role veld, of volgt uit zijn referentie: J/P connector (rf connector voor coax, SMA en U.FL, usb connector, modular connector, card socket), R weerstand, C condensator, L spoel, FB ferriet, D diode of led, Q transistor, Y kristal, F zekering, SW schakelaar, BT batterij, K relais. Een onderdeel is in de bibliotheek als zijn mpn of library veld een bibliotheekonderdeel noemt, of als het op de footprint van een generic onderdeel staat. Stel het library = "no" veld van het onderdeel in om er één buiten te houden. library.toml op de root van de bibliotheek stelt in hoe hard het duwt:
check = "warning" # warning | info | off
# roles = ["connector"] # only these roles