master
Download ZIP Propose a change
Name Last commit message Last updated
bin Publish 2.0.18 · John Lauer 15d ago
docs Delete docs/thumbnail.svg · John Lauer 1mo ago
screenshots Set hero asset · John Lauer 1mo ago
skills Publish 2.0.14 · John Lauer 1mo ago
src v2.0.18: Module 2.4.0: the panel gutter check now measures against the containing block · John Lauer 15d ago
wiki Gorgeous README + billboard hero + inline screenshots; Wiki v2 page.json · John Lauer 4mo ago
.gitignore Gorgeous README + billboard hero + inline screenshots; Wiki v2 page.json · John Lauer 4mo ago
BUILD-SKILL.md Publish 1.4.6 · John Lauer 1mo ago
build.sh v2.0.12: Module 2.4.0: the panel gutter check now measures against the containing block · John Lauer 1mo ago
Cargo.lock v2.0.18: Module 2.4.0: the panel gutter check now measures against the containing block · John Lauer 15d ago
Cargo.toml v2.0.18: Module 2.4.0: the panel gutter check now measures against the containing block · John Lauer 15d ago
CHANGELOG.md Publish 2.0.4 · John Lauer 1mo ago
dockbar.json Publish 1.4.6 · John Lauer 1mo ago
install.sh v2.0.18: Module 2.4.0: the panel gutter check now measures against the containing block · John Lauer 15d ago
LICENSE Add MIT license (open source) · John Lauer 3mo ago
package.json v2.0.18: Module 2.4.0: the panel gutter check now measures against the containing block · John Lauer 15d ago
page.json Set hero: screenshots/hero.png · John Lauer 15d ago
publish.sh v2.0.12: Module 2.4.0: the panel gutter check now measures against the containing block · John Lauer 1mo ago
README.md Publish 2.0.14 · John Lauer 1mo ago
SKILL.md Publish 2.0.14 · John Lauer 1mo ago
thumbnail.png Migrate asset from Helium wiki · Kyle Bergstedt 4mo ago
uninstall.sh v2.0.18: Module 2.4.0: the panel gutter check now measures against the containing block · John Lauer 15d ago
VERSION v2.0.18: Module 2.4.0: the panel gutter check now measures against the containing block · John Lauer 15d ago

Adom Parts Search

One search box. Mouser, DigiKey and JLCPCB at once, with the fastest, cheapest pick chosen for you.

Sourcing a part used to mean three browser tabs, three logins, three different ways of saying "in stock," and a mental spreadsheet to figure out who actually gets it to your bench fastest. Parts Search collapses that into one query: type a part, or just ask your AI, and it fires three parallel searches, normalizes the answers, and names the single best source.

Install

adom-wiki pkg install adom/adom-parts-search

Or click the Parts Search card in the Hydrogen Dock Bar: it installs, starts the page, and opens it for you.

Say it to your AI

You do not have to drive the page. Ask your AI, using the words parts search:

  • "with parts search, find a 10k 0402 resistor"
  • "with parts search, find the cheapest LM358"
  • "with parts search, price an STM32F103RBT6"
  • "with parts search, check ESP32-S3-WROOM-1 stock"
  • "with parts search, source the parts in my BOM"

The same phrases sit at the top of the page; a click (or Try it) copies one to the clipboard and a toast confirms it. The strip has an X: close it once and it stays closed (Settings brings it back).

Quick start

# Browse: opens or refreshes the Parts Search tab and prints the results
adom-parts-search show "STM32F103RBT6"

# Script: JSON only, no page
adom-parts-search search "LM555" | jq '.recommendation'

# Dock contract: start the page server (idempotent) and print its direct URL
adom-parts-search serve --print-url

# Health of the three vendor backends, one line
adom-parts-search health

Screenshots

Three distributors, one comparable view

One keyword goes to Mouser, DigiKey and JLCPCB simultaneously; results land in three aligned columns with product photos, and a recommendation banner names the winner and the policy that chose it.

Parts Search page: Say it strip, search bar, recommendation banner naming Mouser for an STM32F103RBT6, and three vendor columns with product photos

Settings that explain themselves

The cog in the header opens a dismissible settings modal: results per vendor, which vendors to query, the recommendation policy (Mouser preferred or cheapest in stock), product photos, and the taskbar progress bar. Every card says what it does and how, every row shows its default, and Restore defaults takes two clicks.

Parts Search settings modal with the Search defaults, Vendors, Recommendation and Product photos cards

Parts Search settings modal scrolled to the Taskbar progress card and the Restore defaults footer

Every control explains itself

Hover anything and a tooltip says what it does and what will change, written for a newcomer.

Tooltip on the Search all 3 button explaining the parallel search and the Mouser-preferred policy

The Dock Bar card

Parts Search is a card in the Hydrogen Dock Bar, the app-launcher rail on the right edge of the ah workspace. One click runs the whole path in your workspace container: install the CLI from the wiki (skipped when it is already there), start the page server with adom-parts-search serve --print-url, health-check the URL it prints, and land the tab on the Parts Search page. The card's LED is live health read from this app's own /api/status every 15 seconds: green when all three vendor backends answer, yellow when one is degraded or switched off, red when none are reachable. The page you get is the same page adom-parts-search show drives; there is no separate launcher.

The Hydrogen workspace with the Dock Bar rail open on the right, the Parts Search card lit green, and the dock-launched Parts Search tab showing live results

Not in your rail? Dock settings (the gear at the top of the rail), Add app, adom/adom-parts-search. The full contract and diagnosis table live in the adom-parts-search-dock skill.

Dependencies

Dependency Required? Why
adom-mouser (service-mouser) Recommended Mouser column and the Mouser-preferred recommendation
adom-digikey (service-digikey) Recommended DigiKey column and the fallback when Mouser cannot ship
adom-jlcpcb (service-jlcpcb) Optional JLCPCB assembly-library column

No vendor API key, ever. Mouser, DigiKey and JLCPCB credentials are company-owned and live only inside Adom's service containers. What a search needs is your Adom identity, so each search is attributed to a real Adom user: in an Adom container it is read automatically from /var/run/adom/api-key; elsewhere set ADOM_API_KEY to your Adom session token.

Exact part first. Search an exact MPN and the recommendation is that exact part whenever it is in stock, at Mouser first and then DigiKey. A packaging or grade variant (DSER vs DSET, a -Q100 automotive part) is a different orderable part, so it can only ever appear as an explicit, amber-flagged substitution, never as a silent winner.

Client-only: it owns no API keys and runs no service of its own; it federates the three vendor backends and renders. At least one backend must be reachable; a missing one shows a friendly error and the recommendation reasons around it.

Features

  • One interface, three distributors: parallel queries, side-by-side product photos.
  • Mouser-preferred routing: Mouser is Adom's preferred vendor (fastest, lowest-cost fulfillment), so it wins when it is in stock.
  • A recommendation that flips: DigiKey wins when Mouser is out of stock or long-lead, and a second policy, cheapest in stock, compares unit prices across every vendor that answered.
  • Two faces: a page for browsing, a JSON CLI for scripting and BOMs.
  • A narrated demo: the play button in the header runs a two-minute guided tour with a draggable play / pause / next / previous / exit floaty; the narration is pre-rendered speech shipped inside the binary (nothing is synthesized at runtime). adom-parts-search demo starts it from the CLI.
  • Dock Bar ready: a version-aware idempotent serve, a fast /api/status with per-vendor LEDs, webview ownership, and a Say it strip.
  • Taskbar progress: while a search runs, a progress bar sized from measured durations is painted on the Hydrogen taskbar button (indeterminate for AI-driven searches).
  • AI-drivable: GET /state, GET /console, POST /api/toast, POST /api/click, and the matching ui verbs, so an AI can drive and observe the page exactly as a person would.
  • Graceful degradation: a rate-limited or down backend never fails the whole search.

Skills

Skill Purpose
adom-parts-search When and how the AI drives the app: show vs search, MPN extraction, part-family corrections
adom-parts-search-dock How the app lives in the Hydrogen Dock Bar: the card, the launch steps, the health LED, diagnosis
adom-parts-search-build Release workflow (build, publish to the wiki)

CLI reference

Command What it does
adom-parts-search show "<q>" Open or refresh the Parts Search tab and print full per-vendor results
adom-parts-search search "<q>" JSON only (no page); pipe to jq
adom-parts-search serve [--print-url] Start the page server in the background, idempotent and version-aware; print its direct URL
adom-parts-search app Run the page server in the foreground
adom-parts-search health [--json] One-line health of the three vendor backends (or the full status JSON)
adom-parts-search status The /api/status payload
adom-parts-search ui toast "<msg>" Raise a toast on the page
adom-parts-search ui click <id> Click a control on the page (search, instock, settings, restore, policy ...)
adom-parts-search ui search "<q>" Run a search through the page
adom-parts-search settings get|set|restore Read or change ~/.adom/parts-search-settings.json
adom-parts-search demo Run the narrated guided demo on the page
--limit N / --in-stock-only Cap hits per vendor / hide zero-stock (defaults come from Settings)

Open source: make it yours, then give it back

This app is open source under the MIT license. Fork it, rewrite it, bend it to your workflow, and when you have made it better, send your changes back to the Adom Wiki so the whole community benefits. Every wiki page is a git repo with a package registry on top, so adom-wiki pkg publish your own fork, or open a pull request against this page.

One caveat: the search backend is an Adom service. The actual lookups run against Adom's hosted Mouser, DigiKey and JLCPCB backends, which use Adom's vendor API credentials and count against Adom's quota. That hosted backend is an Adom service and is subject to change: rate limits, endpoints, and availability can move at any time. Everything client-side is yours to fork and republish; the cloud API quota is not.

License

MIT. See the license text at the bottom of the wiki page.