{
  "schema_version": 1,
  "type": "app",
  "slug": "adom-mouser",
  "title": "Mouser Electronics Search",
  "brief": "Search Mouser components, pricing, and stock. Three faces: CLI verbs (search/part/health), a Hydrogen webview app, and a shared backend HTTP service.",
  "version": "0.1.8",
  "tags": [],
  "license": "MIT",
  "discovery_triggers": [
    "mouser",
    "mouser parts",
    "mouser pricing",
    "mouser search",
    "mouser part number",
    "component search",
    "part lookup",
    "price breaks",
    "datasheet mouser",
    "in stock mouser"
  ],
  "discovery_pitch": "Search Mouser Electronics for components, pricing, stock, and datasheets — CLI + webview app + shared backend service.",
  "install": {
    "binary_name": "adom-mouser",
    "install_dir": "",
    "install_hint": "",
    "version_cmd": ""
  },
  "readme": "# adom-mouser\n\nSearch Mouser Electronics for components, pricing, stock, and datasheets. One Rust binary with three faces:\n\n- **CLI verbs** — `adom-mouser search|part|health` return normalized JSON on stdout, ready for `| jq`.\n- **Hydrogen webview app** — `adom-mouser app` opens a first-class \"Mouser Search\" tab with per-card images, price breaks, RoHS / lifecycle / packaging flags, copy-to-clipboard for MPN and Mouser PN, and a backend-health indicator.\n- **Backend HTTP service** — `adom-mouser serve` runs an HTTP proxy (port 8775) with a 10-minute LRU cache. Keeps the Mouser API key server-side; consumer containers point `MOUSER_API` at it.\n\n![Mouser search webview showing STM32F103 results with pricing and stock](https://wiki-ufypy5dpx93o.adom.cloud/static/apps/adom-mouser/mouser-search-results.png)\n\n## Install\n\n```bash\ncurl -fsSL https://wiki-ufypy5dpx93o.adom.cloud/static/apps/adom-mouser/adom-mouser \\\n  -o /tmp/adom-mouser \\\n  && chmod +x /tmp/adom-mouser \\\n  && sudo install -m 0755 /tmp/adom-mouser /usr/local/bin/adom-mouser \\\n  && adom-mouser install\n```\n\nInstalls the binary to `/usr/local/bin/adom-mouser`, deploys `~/.claude/skills/adom-mouser/SKILL.md` and `~/.claude/skills/adom-mouser-build/SKILL.md`, and registers bash completions.\n\nFor gallia containers, this is done automatically by `gallia/install.mjs` — adom-mouser is a **Tier A app** (every Adom user needs component search day-one).\n\n## Use\n\n```bash\n# CLI\nadom-mouser search \"STM32F103RBT6\" --limit 5\nadom-mouser part 511-STM32F103RBT6 | jq '.components[0] | {mouser_pn, unit_price, price_tiers, stock}'\nadom-mouser health\n\n# UI\nadom-mouser app        # opens a Hydrogen webview tab\n\n# Backend\nMOUSER_API_KEY=<key> adom-mouser serve    # runs on service-mouser container\n```\n\n## Architecture\n\n```\n  any user container             service-mouser (default-light)\n  ──────────────────             ──────────────────────────────\n  adom-mouser search       ─┐\n  adom-mouser app          ─┼──▶ adom-mouser serve (port 8775)\n  adom-mouser health       ─┘    + MOUSER_API_KEY\n                                 + 10-min LRU cache\n                                 + self-heal cron watchdog\n                                          │\n                                          ▼\n                                api.mouser.com / v2\n```\n\nThe service container clones only `adom-inc/adom-mouser`; 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-mouser](https://github.com/adom-inc/adom-mouser) (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.859Z",
  "updated_at": "2026-05-28T05:28:39.859Z",
  "skills": []
}