← Commit history
BUILD-SKILL.md+3−3
@@ -44,10 +44,10 @@ A release syncs five places to the same version X.Y.Z:    curl -s https://mouser-<slug>.adom.cloud/health | jq '.version'   # → "X.Y.Z"    ``` -7. **Verify on a fresh user container** (optional, but catches gallia regressions):+7. **Verify on a fresh user container** (optional, but catches install regressions):    ```bash    # on a fresh container:-   node ~/gallia/install.mjs                 # Tier A block fetches from wiki+   adompkg install --refresh                 # Tier A block fetches from the registry    adom-mouser --version                     # → "adom-mouser X.Y.Z"    ``` @@ -57,7 +57,7 @@ A release syncs five places to the same version X.Y.Z: - [ ] Wiki page at `apps/adom-mouser` renders the new `install_hint` one-liner - [ ] User has seen a working screenshot of the webview - [ ] No console errors via `GET /console`-- [ ] `gallia/install.mjs` Tier A block still works (pulls + installs the new version)+- [ ] `adompkg install --refresh` still pulls + installs the new version (Tier A) - [ ] **Brand audit — in-app icons are monochrome white.** Run:       ```       grep -nE 'fill="#00b8b0"|stroke="#00b8b0"|color: var\(--accent\)' src/app/*.html src/app/*.svg 2>/dev/null
README.md+63−59
@@ -2,94 +2,98 @@  **Mouser's catalog — stock, price breaks, datasheets and lifecycle — right in your workspace.** -`adom-mouser` is the single-vendor Mouser tool for the Adom ecosystem: one Rust binary with three-faces — a JSON **CLI**, a first-class **Hydrogen webview app**, and the shared **backend service**-that powers `service-mouser` and feeds [`adom-parts-search`](/adom/adom-parts-search).+![Mouser stock and pricing in your Adom workspace — CLI, a Hydrogen app, and a shared backend, with 40-minute drone delivery to Fort Worth](/blob/app/adom-mouser/screenshots/hero.png) -## Install+`adom-mouser` is the single-vendor Mouser tool for the Adom ecosystem — one Rust binary, three+faces: -```bash-adompkg install adom-mouser-```+- **CLI** — `adom-mouser search | part | health` for quick JSON-returning shell use and BOMs.+- **Hydrogen app** — `adom-mouser app` opens a searchable UI as a first-class Hydrogen tab.+- **Backend service** — `adom-mouser serve` runs the shared proxy (port 8775) that powers the+  `service-mouser` container and feeds [`adom-parts-search`](/adom/adom-parts-search). -## Quick start+It replaces the old `service-mouser` + MCP setup: no MCP server, no Adom Viewer.  ```bash-# One-shot search (auto-detects backend, falls back to a direct Mouser call)+adompkg install adom-mouser adom-mouser search "ESP32-S3-WROOM-1"--# Interactive UI as a Hydrogen tab-adom-mouser app--# One exact part-adom-mouser part "595-LM358DR" ``` -## Screenshots+## Search like you mean it -### Search like you mean it-Full MPN for an exact hit, or a parametric phrase like `LDO 3.3V 500mA SOT-23`. Each card shows the-manufacturer photo, Mouser PN + MPN, stock, price, lead time, RoHS/lifecycle and key attributes.+Type a full MPN for an exact hit, or a parametric phrase like `LDO 3.3V 500mA SOT-23` to browse.+Every result card shows the manufacturer photo, Mouser PN + MPN, stock, unit price, lead time,+RoHS/lifecycle flags and the key attributes — so you can decide without leaving the workspace.  ![adom-mouser results for an ESP32-S3-WROOM module — product photos, stock, price, price breaks and attribute flags](/blob/app/adom-mouser/screenshots/results-esp32.png) -### Quantity pricing, first-class-Price breaks are shown on every card, so you know what a reel actually costs — not just the qty-1-sticker.+## Quantity pricing and the parts that matter -![adom-mouser results for USB-C receptacles — multiple manufacturers with pin count, current rating and quantity price breaks](/blob/app/adom-mouser/screenshots/results-usbc.png)+Price breaks are first-class: the card shows the full quantity ladder so you know what a reel+actually costs, not just the qty-1 sticker. Connectors, passives, modules, MCUs — the same clean+card for everything. -### Scriptable from the first keystroke-`search`/`part`/`health` return JSON — pipe to `jq`, a BOM, or another Claude step.+![adom-mouser results for USB-C receptacles — multiple manufacturers with pin count, current rating and quantity price breaks](/blob/app/adom-mouser/screenshots/results-usbc.png) -![Terminal showing adom-mouser search piped to jq for the first component, then a health check reporting the backend healthy](/blob/app/adom-mouser/screenshots/cli.png)+## Scriptable from the first keystroke -## Dependencies+`search` returns JSON; `part` fetches one MPN; `health` checks the backend. Pipe any of it into+`jq`, a BOM, or another Claude step. -| Dependency | Required? | Why |-|---|---|---|-| `service-mouser` backend (`adom-mouser serve`) | Recommended | Shared 10-min cache + a single `MOUSER_API_KEY`; the CLI auto-detects it |-| Direct Mouser API | Fallback | Used automatically when no backend is reachable |+![Terminal showing adom-mouser search piped to jq for the first component, then a health check reporting the backend is healthy](/blob/app/adom-mouser/screenshots/cli.png) -## Features+```bash+adom-mouser search "STM32F103RBT6" | jq '.components[0]'+adom-mouser part "595-LM358DR"+adom-mouser health+``` -- **Three faces** — CLI verbs, a Hydrogen webview app, and the shared backend service.-- **Rich cards** — photo, Mouser PN + MPN, stock, price + breaks, lead time, RoHS, lifecycle, attrs.-- **Backend autodetect** — uses the shared proxy if present, else a direct call.-- **40-min drone delivery** from Mansfield, TX to Fort Worth is why Mouser is the preferred vendor.+## Install -## Talk to the AI+```bash+adompkg install adom-mouser+``` -- "find an ESP32-S3-WROOM module on Mouser"-- "what does an STM32F103RBT6 cost at Mouser"-- "Mouser stock for a USB-C receptacle"-- "datasheet for an LM358 on Mouser"+## How it works -## Skills+```+  any container                         service-mouser+  $ adom-mouser search "ESP32"  ──POST──▶  adom-mouser serve  (:8775)+  $ adom-mouser app                        MOUSER_API_KEY set+    (Hydrogen webview tab)                 10-min LRU cache+                                                 │+                                                 ▼+                                          api.mouser.com (v2)+``` -| Skill | Purpose |-|---|---|-| `adom-mouser` | When/how Claude drives the search — verbs, MPN vs keyword, reading the cards |-| `adom-mouser-build` | Release workflow (build, publish to the wiki) |+The CLI auto-detects the backend (or a local `:8775`), and falls back to a direct Mouser call when+no backend is reachable. **40-minute drone delivery** from Mouser's Mansfield, TX warehouse to our+Fort Worth facility is why Mouser is the preferred vendor across Adom tooling. -## CLI reference+## See also -| Command | What it does |-|---|---|-| `adom-mouser search "<q>"` | Search Mouser → JSON |-| `adom-mouser part "<mouser-pn>"` | Fetch one part → JSON |-| `adom-mouser app` | Open the searchable Hydrogen tab |-| `adom-mouser health` | Check the backend + API key |-| `adom-mouser serve` | Run the shared backend proxy (port 8775) |+- [`adom-parts-search`](/adom/adom-parts-search) — searches Mouser, DigiKey and JLCPCB at once and picks the best buy.  ## Open source — make it yours, then give it back -This app is **open source under the MIT license**. Fork it, improve it, then send it back: `adompkg-publish` your own version, or open a pull request against this page so the change lands for everyone.+This app is **open source under the MIT license**. Fork it, rewrite it, rename it, bend it to your+own workflow — and when you've 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+contributing back is first-class — improvements that land here ship to every Adom user who installs+the app.++```bash+adompkg install adom-mouser      # install it+#   …edit the source to taste…+adompkg publish             # publish your own fork, or+#   open a pull request against this page so the change lands for everyone+``` -> **One caveat — the search backend is an Adom service.** Lookups run against Adom's hosted Mouser-> backend (`service-mouser`), which uses Adom's API credentials and counts against Adom's quota —-> an Adom service, **subject to change**. Everything client-side is yours to fork and republish.+> **One caveat — the search backend is an Adom service.** The actual lookups run against+> Adom's hosted Mouser backend (`service-mouser`), which uses **Adom's vendor API credentials and counts 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 (the CLI, the webview, the rendering+> and recommendation logic) is yours to fork and republish; the cloud API quota is not.  ## License 
SKILL.md+1−1
@@ -188,7 +188,7 @@ adom-mouser search "LM317" adom-mouser app        # UI reads $MOUSER_API automatically ``` -Gallia users don't need to set `MOUSER_API` explicitly — `adom-mouser` is a Tier A app (see `adom-app-model`), so it's installed by every `gallia/install.mjs` run from the wiki binary. The CLI autodetects a local `adom-mouser serve` on 127.0.0.1:8775 and falls back to calling Mouser directly if `MOUSER_API_KEY` is set locally.+Users don't need to set `MOUSER_API` explicitly — `adom-mouser` is a Tier A app (see `adom-app-model`), so it's installed by every `adompkg install` run from the registry. The CLI autodetects a local `adom-mouser serve` on 127.0.0.1:8775 and falls back to calling Mouser directly if `MOUSER_API_KEY` is set locally.  ### Local-only (quick testing) 
bin/._adom-mouseradded
⋯ 1 unchanged line ⋯
bin/adom-mouseradded
⋯ 1 unchanged line ⋯
package.json+5−2
@@ -1,6 +1,6 @@ {   "slug": "adom-mouser",-  "version": "1.0.1",+  "version": "1.0.2",   "type": "app",   "description": "Mouser component search in your workspace \u2014 stock, quantity price breaks, datasheets and lifecycle. CLI verbs, a Hydrogen app, and a shared backend service.",   "dependencies": {},@@ -32,5 +32,8 @@     "distributor",     "open-source",     "mit"-  ]+  ],+  "hero": {+    "path": "screenshots/hero.png"+  } }\ No newline at end of file
page.json+26−6
@@ -3,8 +3,8 @@   "type": "app",   "slug": "adom-mouser",   "title": "Mouser Electronics Search",-  "brief": "Mouser component search in your workspace \u2014 stock, quantity price breaks, datasheets and lifecycle. CLI verbs, a Hydrogen app, and a shared backend service.",-  "version": "1.0.1",+  "brief": "Mouser component search in your workspace — stock, quantity price breaks, datasheets and lifecycle. CLI verbs, a Hydrogen app, and a shared backend service.",+  "version": "1.0.2",   "install": {     "binary_name": "adom-mouser",     "install_dir": "",@@ -32,8 +32,8 @@     "public": true   },   "hero": {-    "path": "screenshots/hero.png",-    "type": "image"+    "type": "image",+    "path": "screenshots/hero.png"   },   "sample_prompts": [     "find an ESP32-S3-WROOM module on Mouser",@@ -52,8 +52,28 @@     "datasheet mouser",     "in stock mouser"   ],-  "discovery_pitch": "Search Mouser Electronics for components, pricing, stock, and datasheets \u2014 CLI + Hydrogen webview app + shared backend service.",+  "discovery_pitch": "Search Mouser Electronics for components, pricing, stock, and datasheets — CLI + Hydrogen webview app + shared backend service.",   "metadata": {     "platform": "linux"-  }+  },+  "description": "Mouser component search in your workspace — stock, quantity price breaks, datasheets and lifecycle. CLI verbs, a Hydrogen app, and a shared backend service.",+  "dependencies": {},+  "needs_sudo": false,+  "scripts": {+    "install": "./install.sh",+    "uninstall": "./uninstall.sh"+  },+  "files": [+    "bin/**",+    "skills/**",+    "install.sh",+    "uninstall.sh",+    "package.json",+    "page.json",+    "README.md",+    "SKILL.md",+    "BUILD-SKILL.md",+    "screenshots/**"+  ],+  "org": "adom" }\ No newline at end of file
screenshots/._cli.pngadded
⋯ 1 unchanged line ⋯
screenshots/._hero.pngadded
⋯ 1 unchanged line ⋯
screenshots/._results-esp32.pngadded
⋯ 1 unchanged line ⋯
screenshots/._results-usbc.pngadded
⋯ 1 unchanged line ⋯
screenshots/hero.png
⋯ 1 unchanged line ⋯
skills/._adom-mouseradded
⋯ 1 unchanged line ⋯
skills/._adom-mouser-buildadded
⋯ 1 unchanged line ⋯
skills/adom-mouser-build/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/adom-mouser-build/SKILL.md+3−3
@@ -44,10 +44,10 @@ A release syncs five places to the same version X.Y.Z:    curl -s https://mouser-<slug>.adom.cloud/health | jq '.version'   # → "X.Y.Z"    ``` -7. **Verify on a fresh user container** (optional, but catches gallia regressions):+7. **Verify on a fresh user container** (optional, but catches install regressions):    ```bash    # on a fresh container:-   node ~/gallia/install.mjs                 # Tier A block fetches from wiki+   adompkg install --refresh                 # Tier A block fetches from the registry    adom-mouser --version                     # → "adom-mouser X.Y.Z"    ``` @@ -57,7 +57,7 @@ A release syncs five places to the same version X.Y.Z: - [ ] Wiki page at `apps/adom-mouser` renders the new `install_hint` one-liner - [ ] User has seen a working screenshot of the webview - [ ] No console errors via `GET /console`-- [ ] `gallia/install.mjs` Tier A block still works (pulls + installs the new version)+- [ ] `adompkg install --refresh` still pulls + installs the new version (Tier A) - [ ] **Brand audit — in-app icons are monochrome white.** Run:       ```       grep -nE 'fill="#00b8b0"|stroke="#00b8b0"|color: var\(--accent\)' src/app/*.html src/app/*.svg 2>/dev/null
skills/adom-mouser/._SKILL.mdadded
⋯ 1 unchanged line ⋯
skills/adom-mouser/SKILL.md+1−1
@@ -188,7 +188,7 @@ adom-mouser search "LM317" adom-mouser app        # UI reads $MOUSER_API automatically ``` -Gallia users don't need to set `MOUSER_API` explicitly — `adom-mouser` is a Tier A app (see `adom-app-model`), so it's installed by every `gallia/install.mjs` run from the wiki binary. The CLI autodetects a local `adom-mouser serve` on 127.0.0.1:8775 and falls back to calling Mouser directly if `MOUSER_API_KEY` is set locally.+Users don't need to set `MOUSER_API` explicitly — `adom-mouser` is a Tier A app (see `adom-app-model`), so it's installed by every `adompkg install` run from the registry. The CLI autodetects a local `adom-mouser serve` on 127.0.0.1:8775 and falls back to calling Mouser directly if `MOUSER_API_KEY` is set locally.  ### Local-only (quick testing)