app
JLCPCB Parts Library
Public Made by Adomby adom
Check the JLCPCB / LCSC parts library before you fab — Basic vs Extended tier, LCSC stock and assembly pricing, so you avoid surprise feeder-setup fees. CLI, a Hydrogen app, and a shared backend.
← Commit history
Publish 1.0.9
6 files changed
+52−2
README.md+6@@ -38,6 +38,12 @@ On a JLCPCB assembly run, **Basic** parts are pre-loaded on the line (no fee); * add a per-part feeder charge. Every card shows the tier, LCSC code, stock and price, so you design around what's actually cheap to place. +Search Basic parts only with `adom-jlcpcb search "0402 10k" --basic` (or `--basic` on+`adom-parts-search`, where it narrows the JLCPCB column). The Basic set is refreshed nightly from+JLCPCB itself, so its flags and stock are current; everything else carries `stock_as_of`, because+the wider catalogue is re-crawled over months. For one part, `adom-jlcpcb part C25744` reads JLCPCB+live and tells you when our snapshot disagrees.+  ### Catch the Extended part before fab does
SKILL.md+22@@ -59,6 +59,8 @@ Search by keyword, MPN, or JLCPCB PN. |---|---|---| | `--limit N` | 10 | Max results (1–50) | | `--in-stock-only` | false | Only parts currently in stock |+| `--basic` | false | Only JLCPCB **Basic** parts (no per-type extended fee at assembly) |+| `--preferred` | false | Only Preferred Extended parts | | `--api URL` / `$JLCPCB_API` | auto | Backend URL. If unset, the CLI tries a local backend on `http://127.0.0.1:8774`, then Adom's hosted backend. It never calls the vendor directly and never needs a vendor key | Examples:@@ -67,17 +69,37 @@ adom-jlcpcb search "STM32F103RBT6" --limit 5 adom-jlcpcb search "USB-C connector" --in-stock-only adom-jlcpcb search "LDO 3.3V 500mA SOT-23" adom-jlcpcb search "ESP32 WiFi Bluetooth" | jq '.components[].mpn'+adom-jlcpcb search "0402 10k resistor" --basic # only parts with no feeder fee ``` +**How fresh is this?** Every part carries `stock_as_of` and `stock_age_days`,+and every response carries a `snapshot` block with the build time. The catalogue+comes from a public crawl that re-reads JLCPCB over months, so a part's stock can+be a day old or a hundred days old and only the part itself can say which. The+**Basic** set (~351 parts) is refreshed nightly from JLCPCB directly, so its+flags and stock are current. For any single part, `adom-jlcpcb part` reads+JLCPCB live.+ ### `adom-jlcpcb part <part-number>` Full detail lookup for a specific part. Accepts JLCPCB PN (`C8734`) or MPN (`STM32F103RBT6`). Returns a single-component result with full price-break table and attributes. +**This one reads JLCPCB live** (their public parts endpoint: no key, no quota),+so it answers "is this Basic, and what is the stock right now" rather than what+the snapshot last saw. It prints the live reading, says when the snapshot+disagrees, and falls back to the snapshot if JLCPCB cannot be reached. Use it+before committing a part to a board. `--offline` answers from the snapshot alone.+ ```bash adom-jlcpcb part C8734 adom-jlcpcb part STM32F103RBT6 | jq '.components[0].price_tiers'+adom-jlcpcb part C25744 --offline # snapshot only, no network ``` +`components[0].source` says which answer you got: `live from JLCPCB` or+`snapshot`. `differs` lists what the two disagree about, e.g.+`stock: snapshot 1,256,270 (as of 2026-06-23), JLCPCB 21,529,252 now`.+ ### `adom-jlcpcb app` Open the search UI in a Hydrogen webview tab.
bin/adom-jlcpcb⋯ 1 unchanged line ⋯
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-jlcpcb",- "version": "1.0.8",+ "version": "1.0.9", "type": "app", "description": "Check the JLCPCB / LCSC parts library before you fab \u2014 Basic vs Extended tier, LCSC stock and assembly pricing, so you avoid surprise feeder-setup fees. CLI, a Hydrogen app, and a shared backend.", "dependencies": {},
page.json+1−1@@ -4,7 +4,7 @@ "slug": "adom-jlcpcb", "title": "JLCPCB Parts Library", "brief": "Check the JLCPCB / LCSC parts library before you fab — Basic vs Extended tier, LCSC stock and assembly pricing, so you avoid surprise feeder-setup fees. CLI, a Hydrogen app, and a shared backend.",- "version": "1.0.8",+ "version": "1.0.9", "install": { "binary_name": "adom-jlcpcb", "install_dir": "",
skills/adom-jlcpcb/SKILL.md+22@@ -59,6 +59,8 @@ Search by keyword, MPN, or JLCPCB PN. |---|---|---| | `--limit N` | 10 | Max results (1–50) | | `--in-stock-only` | false | Only parts currently in stock |+| `--basic` | false | Only JLCPCB **Basic** parts (no per-type extended fee at assembly) |+| `--preferred` | false | Only Preferred Extended parts | | `--api URL` / `$JLCPCB_API` | auto | Backend URL. If unset, the CLI tries a local backend on `http://127.0.0.1:8774`, then Adom's hosted backend. It never calls the vendor directly and never needs a vendor key | Examples:@@ -67,17 +69,37 @@ adom-jlcpcb search "STM32F103RBT6" --limit 5 adom-jlcpcb search "USB-C connector" --in-stock-only adom-jlcpcb search "LDO 3.3V 500mA SOT-23" adom-jlcpcb search "ESP32 WiFi Bluetooth" | jq '.components[].mpn'+adom-jlcpcb search "0402 10k resistor" --basic # only parts with no feeder fee ``` +**How fresh is this?** Every part carries `stock_as_of` and `stock_age_days`,+and every response carries a `snapshot` block with the build time. The catalogue+comes from a public crawl that re-reads JLCPCB over months, so a part's stock can+be a day old or a hundred days old and only the part itself can say which. The+**Basic** set (~351 parts) is refreshed nightly from JLCPCB directly, so its+flags and stock are current. For any single part, `adom-jlcpcb part` reads+JLCPCB live.+ ### `adom-jlcpcb part <part-number>` Full detail lookup for a specific part. Accepts JLCPCB PN (`C8734`) or MPN (`STM32F103RBT6`). Returns a single-component result with full price-break table and attributes. +**This one reads JLCPCB live** (their public parts endpoint: no key, no quota),+so it answers "is this Basic, and what is the stock right now" rather than what+the snapshot last saw. It prints the live reading, says when the snapshot+disagrees, and falls back to the snapshot if JLCPCB cannot be reached. Use it+before committing a part to a board. `--offline` answers from the snapshot alone.+ ```bash adom-jlcpcb part C8734 adom-jlcpcb part STM32F103RBT6 | jq '.components[0].price_tiers'+adom-jlcpcb part C25744 --offline # snapshot only, no network ``` +`components[0].source` says which answer you got: `live from JLCPCB` or+`snapshot`. `differs` lists what the two disagree about, e.g.+`stock: snapshot 1,256,270 (as of 2026-06-23), JLCPCB 21,529,252 now`.+ ### `adom-jlcpcb app` Open the search UI in a Hydrogen webview tab.