{
  "schema_version": 1,
  "type": "app",
  "slug": "chip-fetcher",
  "title": "chip-fetcher",
  "brief": "Download manufacturer-grade chip CAD bundles (STEP + KiCad + Altium + Fusion + datasheets) by driving Chrome via pup. Manufacturer-first sourcing ladder with programmatic enforcement. 9-level complete",
  "version": "1.2.23",
  "tags": [],
  "license": "MIT",
  "discovery_triggers": [
    "fetch chip",
    "fetch step file",
    "chip cad",
    "chip step",
    "chip footprint",
    "manufacturer chip step",
    "mpn fetch",
    "chip-fetcher",
    "ti cad download",
    "st cad download",
    "nxp cad download",
    "build chip library",
    "chip pads test corpus",
    "harvest design pdfs",
    "datasheet harvest",
    "snapeda fetch",
    "snapmagic fetch",
    "altium intlib",
    "fusion 360 lbr",
    "ultralibrarian fetch",
    "mouser fetch",
    "digikey fetch",
    "nrnd alternate",
    "eol alternate",
    "active alternate",
    "multi-variant stock",
    "chip stock check",
    "harvest cad bundle",
    "nordic chip cad",
    "espressif chip cad",
    "microchip chip cad",
    "stm32 cad",
    "imx cad"
  ],
  "discovery_pitch": "chip-fetcher grabs manufacturer-grade chip CAD bundles (STEP + KiCad sym/mod + Altium IntLib + Autodesk Fusion .lbr + datasheets) for any MPN by driving the manufacturer's own download flow first, then falling back through SnapEDA → Mouser → DigiKey → Ultra Librarian → Component Search Engine. Tracks NRND/EOL lifecycle and surfaces active alternates. Library is one folder per chip with all files pre-named for KiCad/Altium imports.",
  "sample_prompts": [
    {
      "prompt": "Fetch the TPS25751 chip CAD bundle"
    },
    {
      "label": "Show me which chips are fully complete",
      "prompt": "chip-fetcher done"
    },
    {
      "prompt": "Download the STEP file for BME280"
    },
    {
      "label": "Check what source to try next for this MPN",
      "prompt": "chip-fetcher next-source"
    },
    {
      "prompt": "Validate the ABM8G crystal against its datasheet"
    },
    {
      "prompt": "Open the chip-fetcher dashboard"
    },
    {
      "prompt": "Search Mouser for stock on ESP32-S3-WROOM-1"
    }
  ],
  "install": {
    "binary_name": "chip-fetcher",
    "install_dir": "",
    "install_hint": "",
    "version_cmd": ""
  },
  "readme": "# chip-fetcher\n\nDownload manufacturer-grade chip CAD bundles (STEP + KiCad symbol + KiCad footprint + Altium IntLib + Fusion .lbr + datasheet) into a structured library by driving Chrome via pup on the user's desktop.\n\n## What's new in 1.2.23\n\n- **`chip-fetcher done`** — 9-level completeness ladder per chip (PDF → STEP → KiCad → Altium → Fusion → Thumbnails → Validated → Stock → Provenance)\n- **Two-layer provenance** — every fetched file records `discovery_source` (where found) + `content_origin` (who made it)\n- **ds2sf + concur integration** — autonomous validation loop: extract symbol/footprint from datasheet, cross-validate against KiCad/Altium/EAGLE sources, auto-refetch on divergence\n- **Interactive dashboard** with card zoom (animated), auto-zoom, validation badges, orientation picker, action buttons, per-element tooltips, live-updating status\n- **`chip-fetcher scrape`** — CLI wrapper for pup browser automation with hardcoded profile enforcement\n- **`chip-fetcher creds`** — credential vault (list/save/delete) persisted in adom-desktop\n- **`chip-fetcher pup-pdf-fetch`** — fetch PDFs through authenticated pup sessions when direct curl fails\n- **`chip-fetcher pdf-check`** — sweep all PDFs for HTML masquerade, auto-repair with `--repair`\n- **Programmatic rule enforcement** — `sources`, `gate`, `mfr-probe`, `next-source`, `done`, `hint` subcommands with HINT lines\n- **DigiKey models playbook** — documented `/en/models/<id>` page with Manufacturer Provided STEP + UL + SnapMagic accordions\n\n## Sourcing ladder (enforced by `chip-fetcher sources`)\n\n1. Manufacturer's own site (ti.com, nordicsemi.com, nxp.com, st.com, etc.)\n2. SnapEDA / SnapMagic (snapeda.com)\n3. Mouser (`adom-mouser search`)\n4. DigiKey (`adom-digikey search`)\n5. Arrow (arrow.com)\n6. CSE / UL — only when mfr links there\n7. LCSC — last resort, avoid\n\n## Install\n\n```\ncurl -fsSL https://wiki-ufypy5dpx93o.adom.cloud/static/apps/chip-fetcher/chip-fetcher -o /usr/local/bin/chip-fetcher && chmod +x /usr/local/bin/chip-fetcher && chip-fetcher install\n```\n\n## Key commands\n\n| Command | What it does |\n|---|---|\n| `chip-fetcher fetch <MPN>` | Start fetching a chip's full CAD bundle |\n| `chip-fetcher done [--mpn X]` | Show 9-level completeness per chip |\n| `chip-fetcher sources` | Print the sourcing ladder |\n| `chip-fetcher gate [--strict]` | Exit non-zero if any chip missing essentials |\n| `chip-fetcher mfr-probe <MPN>` | Check manufacturer's site for CAD/datasheet |\n| `chip-fetcher next-source <MPN>` | Print next untried source in the ladder |\n| `chip-fetcher validate <MPN>` | Run ds2sf + concur validation loop |\n| `chip-fetcher import <file> --mpn X` | Import a file with two-layer provenance |\n| `chip-fetcher scrape open/nav/eval/shot` | Drive pup browser for scraping |\n| `chip-fetcher pup-pdf-fetch <MPN> <URL>` | Fetch PDF through authenticated pup session |\n| `chip-fetcher pdf-check [--repair]` | Sweep for HTML-masquerading-as-PDF |\n| `chip-fetcher creds list/save/delete` | Manage vendor credentials |\n| `chip-fetcher heartbeat <MPN> <stage>` | Update dashboard + auto-scroll + HINTs |\n| `chip-fetcher serve` | Launch the interactive dashboard |\n| `chip-fetcher selfcheck` | Verify all dependencies are installed |\n\n## Requirements\n\n- `adom-desktop` v1.6.3+ (for pup browser automation + Page.setDownloadBehavior)\n- `adom-mouser` (for stock/pricing queries)\n- `adom-digikey` (for DigiKey search)\n- `ds2sf` v0.5.2+ (for datasheet extraction)\n- `concur` v0.8.0+ (for cross-source validation)\n- `chip-thumbnailer` v0.5.1+ (for thumbnail generation)\n",
  "author": {
    "id": "695820315b5f1e4db2fcf602",
    "name": "Kyle Bergstedt",
    "email": "kyle@adom.inc"
  },
  "visibility": {
    "public": true
  },
  "hero": null,
  "metadata": {},
  "created_at": "2026-05-28T05:28:53.967Z",
  "updated_at": "2026-05-28T05:28:53.967Z",
  "skills": []
}