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
README.mdadded+61@@ -0,0 +1,61 @@+# adom-jlcpcb++Search JLCPCB Electronics for components, pricing, stock, and datasheets. One Rust binary with three faces:++- **CLI verbs** — `adom-jlcpcb search|part|health` return normalized JSON on stdout, ready for `| jq`.+- **Hydrogen webview app** — `adom-jlcpcb app` opens a first-class "JLCPCB Search" tab with per-card images, price breaks, RoHS / lifecycle / packaging flags, copy-to-clipboard for MPN and JLCPCB PN, and a backend-health indicator.+- **Backend HTTP service** — `adom-jlcpcb serve` runs an HTTP proxy (port 8774) with a 10-minute LRU cache. Keeps the JLCPCB API key server-side; consumer containers point `JLCPCB_API` at it.++++## Install++```bash+curl -fsSL https://wiki-ufypy5dpx93o.adom.cloud/static/apps/adom-jlcpcb/adom-jlcpcb \+ -o /tmp/adom-jlcpcb \+ && chmod +x /tmp/adom-jlcpcb \+ && sudo install -m 0755 /tmp/adom-jlcpcb /usr/local/bin/adom-jlcpcb \+ && adom-jlcpcb install+```++Installs the binary to `/usr/local/bin/adom-jlcpcb`, deploys `~/.claude/skills/adom-jlcpcb/SKILL.md` and `~/.claude/skills/adom-jlcpcb-build/SKILL.md`, and registers bash completions.++For gallia containers, this is done automatically by `gallia/install.mjs` — adom-jlcpcb is a **Tier A app** (every Adom user needs component search day-one).++## Use++```bash+# CLI+adom-jlcpcb search "STM32F103RBT6" --limit 5+adom-jlcpcb part C8734 | jq '.components[0] | {mouser_pn, unit_price, price_tiers, stock}'+adom-jlcpcb health++# UI+adom-jlcpcb app # opens a Hydrogen webview tab++# Backend+JLCPCB_API_KEY_UNUSED_placeholder=<key> adom-jlcpcb serve # runs on service-jlcpcb container+```++## Architecture++```+ any user container service-jlcpcb (default-light)+ ────────────────── ──────────────────────────────+ adom-jlcpcb search ─┐+ adom-jlcpcb app ─┼──▶ adom-jlcpcb serve (port 8774)+ adom-jlcpcb health ─┘ + JLCPCB_API_KEY_UNUSED_placeholder+ + 10-min LRU cache+ + self-heal cron watchdog+ │+ ▼+ api.jlcpcb.com / v2+```++The service container clones only `adom-inc/adom-jlcpcb`; its `service/watchdog.sh` runs every 2 min to (1) keep the service healthy and (2) `git fetch origin main` + rebuild + swap binary when a new release lands. No redeploy step after publishing — publish.sh pushes to main, the service container picks it up within ~5 minutes.++## Source++Source at [adom-inc/adom-jlcpcb](https://github.com/adom-inc/adom-jlcpcb) (private). The public artifact is this wiki page's `docker-binary` asset — source access is not required to install or use the app.++Built following the canonical [adom-app-model](https://wiki-ufypy5dpx93o.adom.cloud/wiki/skills/adom-app-model): single private repo for both client + service code, binary published to the wiki, service on its own default-light container, Tier A distribution via `gallia/install.mjs`.
page.jsonadded+48@@ -0,0 +1,48 @@+{+ "schema_version": 1,+ "type": "app",+ "slug": "adom-jlcpcb",+ "title": "JLCPCB Parts Library Search",+ "brief": "Search JLCPCB's 437K-component parts library (basic/preferred/extended). Rust CLI + Hydrogen webview app + Node.js + SQLite FTS5 backend — no API credentials needed (all local).",+ "version": "0.1.0",+ "tags": [],+ "license": "MIT",+ "discovery_triggers": [+ "jlcpcb",+ "jlcpcb parts",+ "jlcpcb search",+ "lcsc",+ "lcsc part number",+ "basic parts",+ "preferred parts",+ "extended parts",+ "jlcpcb assembly",+ "pcba parts",+ "parts library",+ "jlcpcb price breaks",+ "list jlcpcb components",+ "category search jlcpcb"+ ],+ "discovery_pitch": "Search JLCPCB's parts library (437K components, SQLite + FTS5) — basic/preferred/extended classification, price breaks, stock. No API credentials needed.",+ "install": {+ "binary_name": "adom-jlcpcb",+ "install_dir": "",+ "install_hint": "",+ "version_cmd": ""+ },+ "readme": "# adom-jlcpcb\n\nSearch JLCPCB Electronics for components, pricing, stock, and datasheets. One Rust binary with three faces:\n\n- **CLI verbs** — `adom-jlcpcb search|part|health` return normalized JSON on stdout, ready for `| jq`.\n- **Hydrogen webview app** — `adom-jlcpcb app` opens a first-class \"JLCPCB Search\" tab with per-card images, price breaks, RoHS / lifecycle / packaging flags, copy-to-clipboard for MPN and JLCPCB PN, and a backend-health indicator.\n- **Backend HTTP service** — `adom-jlcpcb serve` runs an HTTP proxy (port 8774) with a 10-minute LRU cache. Keeps the JLCPCB API key server-side; consumer containers point `JLCPCB_API` at it.\n\n\n\n## Install\n\n```bash\ncurl -fsSL https://wiki-ufypy5dpx93o.adom.cloud/static/apps/adom-jlcpcb/adom-jlcpcb \\\n -o /tmp/adom-jlcpcb \\\n && chmod +x /tmp/adom-jlcpcb \\\n && sudo install -m 0755 /tmp/adom-jlcpcb /usr/local/bin/adom-jlcpcb \\\n && adom-jlcpcb install\n```\n\nInstalls the binary to `/usr/local/bin/adom-jlcpcb`, deploys `~/.claude/skills/adom-jlcpcb/SKILL.md` and `~/.claude/skills/adom-jlcpcb-build/SKILL.md`, and registers bash completions.\n\nFor gallia containers, this is done automatically by `gallia/install.mjs` — adom-jlcpcb is a **Tier A app** (every Adom user needs component search day-one).\n\n## Use\n\n```bash\n# CLI\nadom-jlcpcb search \"STM32F103RBT6\" --limit 5\nadom-jlcpcb part C8734 | jq '.components[0] | {mouser_pn, unit_price, price_tiers, stock}'\nadom-jlcpcb health\n\n# UI\nadom-jlcpcb app # opens a Hydrogen webview tab\n\n# Backend\nJLCPCB_API_KEY_UNUSED_placeholder=<key> adom-jlcpcb serve # runs on service-jlcpcb container\n```\n\n## Architecture\n\n```\n any user container service-jlcpcb (default-light)\n ────────────────── ──────────────────────────────\n adom-jlcpcb search ─┐\n adom-jlcpcb app ─┼──▶ adom-jlcpcb serve (port 8774)\n adom-jlcpcb health ─┘ + JLCPCB_API_KEY_UNUSED_placeholder\n + 10-min LRU cache\n + self-heal cron watchdog\n │\n ▼\n api.jlcpcb.com / v2\n```\n\nThe service container clones only `adom-inc/adom-jlcpcb`; its `service/watchdog.sh` runs every 2 min to (1) keep the service healthy and (2) `git fetch origin main` + rebuild + swap binary when a new release lands. No redeploy step after publishing — publish.sh pushes to main, the service container picks it up within ~5 minutes.\n\n## Source\n\nSource at [adom-inc/adom-jlcpcb](https://github.com/adom-inc/adom-jlcpcb) (private). The public artifact is this wiki page's `docker-binary` asset — source access is not required to install or use the app.\n\nBuilt following the canonical [adom-app-model](https://wiki-ufypy5dpx93o.adom.cloud/wiki/skills/adom-app-model): single private repo for both client + service code, binary published to the wiki, service on its own default-light container, Tier A distribution via `gallia/install.mjs`.\n",+ "author": {+ "id": "695820315b5f1e4db2fcf602",+ "name": "Kyle Bergstedt",+ "email": "[email protected]"+ },+ "visibility": {+ "public": true+ },+ "hero": null,+ "sample_prompts": [],+ "metadata": {},+ "created_at": "2026-05-28T05:28:39.179Z",+ "updated_at": "2026-05-28T05:28:39.179Z",+ "skills": []+}