app
Adom Chip Fetcher
Public Made by Adomby adom
Your whole parts library — manufacturer-grade chip CAD (symbol, footprint, 3D) one tap from your EDA tool.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>chip-fetcher — Tool Map</title>
<style>
:root{
--bg:#0a0e14; --panel:#0d1117; --ink:#e6edf3; --muted:#8b949e;
--local:#34d17e; --local-bg:rgba(52,209,126,.08); --local-bd:rgba(52,209,126,.35);
--remote:#ff9a4a; --remote-bg:rgba(255,154,74,.09); --remote-bd:rgba(255,154,74,.40);
--desktop:#8c6bf7;--desktop-bg:rgba(140,107,247,.10);--desktop-bd:rgba(140,107,247,.40);
--lib:#64abff; --lib-bg:rgba(100,171,255,.09); --lib-bd:rgba(100,171,255,.38);
--hub:#00e6dc; --hub-bg:rgba(0,230,220,.10); --hub-bd:rgba(0,230,220,.45);
--new:#ffd23f;
}
*{box-sizing:border-box}
body{margin:0;background:
radial-gradient(1200px 700px at 85% -10%,rgba(0,184,177,.10),transparent 60%),
radial-gradient(900px 600px at -5% 110%,rgba(140,107,247,.10),transparent 55%),
linear-gradient(155deg,#0a0e14,#0d1117 45%,#071318);
color:var(--ink);font-family:'Familjen Grotesk',system-ui,-apple-system,Segoe UI,sans-serif;
-webkit-font-smoothing:antialiased;padding:24px 16px 60px}
h1{font-size:26px;margin:0 0 2px;letter-spacing:-.5px}
h1 span{background:linear-gradient(100deg,#00e6dc,#39b8ff 60%,#8c6bf7);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.sub{color:var(--muted);font-size:14px;margin:0 0 18px}
.wrap{max-width:1100px;margin:0 auto}
/* legend */
.legend{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px}
.lg{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);
border:1px solid #222a33;border-radius:999px;padding:5px 11px;background:#0e141c}
.dot{width:11px;height:11px;border-radius:3px;flex:none}
/* tiers */
.tier{margin:0 0 14px}
.tier-h{display:flex;align-items:baseline;gap:8px;margin:0 0 8px}
.tier-h b{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.tier-h em{font-style:normal;color:var(--muted);font-size:12px}
.row{display:flex;flex-wrap:wrap;gap:10px}
.node{border-radius:12px;padding:10px 12px;min-width:150px;flex:1 1 150px;max-width:230px;
border:1px solid #222a33;background:#0e141c;position:relative}
.node .nm{font-weight:700;font-size:14px;display:flex;align-items:center;gap:6px}
.node .dsc{color:var(--muted);font-size:11.5px;margin-top:3px;line-height:1.35}
.node .calls{margin-top:7px;font-size:11px;color:#aeb8c4}
.node .calls b{color:var(--remote)}
.tag{font-size:9.5px;font-weight:700;letter-spacing:.04em;padding:2px 6px;border-radius:5px;text-transform:uppercase}
.t-local{color:var(--local);background:var(--local-bg);border:1px solid var(--local-bd)}
.t-remote{color:var(--remote);background:var(--remote-bg);border:1px solid var(--remote-bd)}
.t-desktop{color:var(--desktop);background:var(--desktop-bg);border:1px solid var(--desktop-bd)}
.t-lib{color:var(--lib);background:var(--lib-bg);border:1px solid var(--lib-bd)}
.new-pill{font-size:9px;font-weight:800;color:#0a0e14;background:var(--new);border-radius:5px;padding:1px 5px;letter-spacing:.03em}
.local{border-color:var(--local-bd)}
.remote{border-color:var(--remote-bd);background:var(--remote-bg)}
.desktop{border-color:var(--desktop-bd);background:var(--desktop-bg)}
.lib{border-color:var(--lib-bd);background:var(--lib-bg)}
.hub{border:1.5px solid var(--hub-bd);background:var(--hub-bg);max-width:none;flex-basis:100%}
.hub .nm{font-size:18px;color:var(--hub)}
.arrow{text-align:center;color:#3a4452;font-size:18px;margin:2px 0;line-height:1}
/* explainer cards */
.ex{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:26px 0 6px}
@media(max-width:680px){.ex{grid-template-columns:1fr}}
.card{border:1px solid #222a33;border-radius:14px;padding:14px 16px;background:#0e141c}
.card h3{margin:0 0 6px;font-size:15px;display:flex;align-items:center;gap:8px}
.card p{margin:0 0 8px;font-size:13px;color:#c4cdd8;line-height:1.5}
.card .k{font-size:12px;color:var(--muted)}
code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11.5px;background:#11181f;border:1px solid #1c242d;padding:1px 5px;border-radius:5px;color:#cfe}
.count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;
padding:0 6px;border-radius:7px;background:var(--hub-bg);border:1px solid var(--hub-bd);color:var(--hub);font-weight:800;font-size:13px}
.note{font-size:12px;color:var(--muted);margin-top:14px;line-height:1.5}
</style>
</head>
<body>
<div class="wrap">
<h1><span>chip-fetcher</span> — tool map</h1>
<p class="sub">What runs <em>in your container</em> vs. what we <em>call over the network</em>. Generated 2026-06-24 · updated for native Altium + EAGLE.</p>
<div class="legend">
<span class="lg"><span class="dot" style="background:var(--hub)"></span>orchestrator</span>
<span class="lg"><span class="dot" style="background:var(--local)"></span>local CLI — runs in your container</span>
<span class="lg"><span class="dot" style="background:var(--lib)"></span>local library (Rust crate, not a separate app)</span>
<span class="lg"><span class="dot" style="background:var(--remote)"></span>remote service container — we call it over HTTPS</span>
<span class="lg"><span class="dot" style="background:var(--desktop)"></span>your laptop — reached via adom-desktop bridge</span>
</div>
<!-- HUB -->
<div class="tier">
<div class="row">
<div class="node hub">
<div class="nm">⬢ adom-chip-fetcher</div>
<div class="dsc">The orchestrator. Pulls every CAD format off the internet, converts + renders each, and shows them side-by-side so you can pick what to export.</div>
</div>
</div>
</div>
<div class="arrow">▼ shells out to (all local CLIs) ▼</div>
<!-- CONVERSION + RENDER -->
<div class="tier">
<div class="tier-h"><b>Convert & render</b><em>turn each downloaded format into geometry + thumbnails</em></div>
<div class="row">
<div class="node local"><div class="nm">adom-sfconvert <span class="new-pill">NEW</span></div><div class="dsc">EAGLE/Fusion .lbr → KiCad AND Altium → KiCad — <b>fully native, pure Rust</b>.</div><div class="calls">native libs: <b style="color:var(--lib)">altium-schlib</b> + <b style="color:var(--lib)">altium-pcblib</b> + eagle — <b style="color:var(--local)">no service</b></div></div>
<div class="node local"><div class="nm">adom-symbol</div><div class="dsc">Renders the schematic symbol (with 3D chip embossed).</div><div class="calls">→ <b>service-kicad</b></div></div>
<div class="node local"><div class="nm">adom-footprint</div><div class="dsc">Renders the PCB footprint SVG.</div><div class="calls">→ <b>service-kicad</b></div></div>
<div class="node local"><div class="nm">adom-ds2sf</div><div class="dsc">Extracts sym+footprint from the datasheet PDF.</div><div class="calls">local (uses <code>claude</code> + pdf tools)</div></div>
<div class="node local"><div class="nm">adom-concur</div><div class="dsc">Scores whether all libs + datasheet AGREE (now incl. Altium symbol).</div><div class="calls">uses libs <b style="color:var(--lib)">altium-pcblib</b> + <b style="color:var(--lib)">altium-schlib</b></div></div>
<div class="node local"><div class="nm">adom-step</div><div class="dsc">Handles the 3D STEP model.</div><div class="calls">→ <b>step2glb</b></div></div>
<div class="node local"><div class="nm">adom-lbr</div><div class="dsc">Side-by-side sym/fp/3D embeddable.</div><div class="calls">→ <b>wiki</b></div></div>
<div class="node local"><div class="nm">adom-chip-thumbnailer</div><div class="dsc">Bakes the card thumbnails (sym/fp/3D icons).</div><div class="calls">local (OCCT + xvfb)</div></div>
<div class="node local"><div class="nm">adom-chipsmith</div><div class="dsc">Validates the 3D chip against its footprint.</div><div class="calls">→ <b>service-kicad</b>, <b>step2glb</b></div></div>
</div>
</div>
<!-- LIBS -->
<div class="tier">
<div class="tier-h"><b>Local libraries</b><em>Rust crates compiled in — not separate apps</em></div>
<div class="row">
<div class="node lib"><div class="nm">altium-pcblib <span class="tag t-lib">lib</span></div><div class="dsc"><b>The Altium reader you built.</b> Parses .PcbLib/.IntLib binary → KiCad pad JSON + SVG. 100% local, no network.</div></div>
<div class="node lib"><div class="nm">altium-schlib <span class="new-pill">NEW</span> <span class="tag t-lib">lib</span></div><div class="dsc"><b>Native Altium SYMBOL reader</b> — parses .SchLib binary → KiCad pin JSON + SVG. 100% local, validated 28/28 vs KiCad.</div></div>
<div class="node lib"><div class="nm">eagle parser <span class="tag t-lib">lib</span></div><div class="dsc">Inside adom-sfconvert. Parses EAGLE/Fusion .lbr XML → KiCad. 100% local.</div></div>
</div>
</div>
<!-- SOURCING -->
<div class="tier">
<div class="tier-h"><b>Sourcing</b><em>find the part & its data — each has a baked-in API key in its own service</em></div>
<div class="row">
<div class="node local"><div class="nm">adom-parts-search</div><div class="dsc">The umbrella search.</div><div class="calls">→ <b>mouser</b>, <b>digikey</b>, <b>jlcpcb</b></div></div>
<div class="node local"><div class="nm">adom-mouser</div><div class="calls">→ <b>mouser service</b></div></div>
<div class="node local"><div class="nm">adom-digikey</div><div class="calls">→ <b>digikey service</b></div></div>
<div class="node local"><div class="nm">adom-jlcpcb</div><div class="calls">→ <b>jlcpcb service</b></div></div>
</div>
</div>
<!-- BRIDGE -->
<div class="tier">
<div class="tier-h"><b>Bridge & infra</b><em>reach your laptop / the platform</em></div>
<div class="row">
<div class="node local"><div class="nm">adom-desktop</div><div class="dsc">Bridge to your real laptop.</div><div class="calls">→ <b style="color:var(--desktop)">your laptop</b></div></div>
<div class="node local"><div class="nm">adom-cli</div><div class="dsc">Adom platform (containers, wiki, carbon).</div></div>
<div class="node local"><div class="nm">adom-vscode</div><div class="dsc">Reveal files in the editor.</div></div>
</div>
</div>
<div class="arrow">▼ the heavy lifting lives OFF your container ▼</div>
<!-- REMOTE SERVICES -->
<div class="tier">
<div class="tier-h"><b>Remote service containers</b><em>shared, always-on, big installs you never put on your own container</em></div>
<div class="row">
<div class="node remote"><div class="nm">🌐 service-kicad <span class="tag t-remote">remote</span></div><div class="dsc"><b>KiCad 10</b> (~2 GB) headless. DRC/ERC, SVG/Gerber/STEP/GLB export. (Altium import is now native — see altium-schlib.)</div><div class="k" style="font-size:11px;color:var(--muted);margin-top:5px">kicad-rk5ue5pcfemi.adom.cloud</div></div>
<div class="node remote"><div class="nm">🌐 step2glb <span class="tag t-remote">remote</span></div><div class="dsc">STEP → GLB 3D conversion (OCCT).</div><div class="k" style="font-size:11px;color:var(--muted);margin-top:5px">step2glb-…adom.cloud</div></div>
<div class="node remote"><div class="nm">🌐 mouser / digikey / jlcpcb <span class="tag t-remote">remote ×3</span></div><div class="dsc">One service each, with the vendor API key baked in — so you never need a key.</div><div class="k" style="font-size:11px;color:var(--muted);margin-top:5px">mouser-… · digikey-… · jlcpcb-…</div></div>
<div class="node remote"><div class="nm">🌐 wiki <span class="tag t-remote">remote</span></div><div class="dsc">Publish & install pages/skills.</div><div class="k" style="font-size:11px;color:var(--muted);margin-top:5px">wiki.adom.inc</div></div>
</div>
</div>
<!-- DESKTOP -->
<div class="tier">
<div class="tier-h"><b>Your laptop</b><em>via the adom-desktop bridge — not a cloud service</em></div>
<div class="row">
<div class="node desktop"><div class="nm">🖥 real Chrome <span class="tag t-desktop">laptop</span></div><div class="dsc">Native-browser / pup automation for vendor downloads (your real logins).</div></div>
<div class="node desktop"><div class="nm">🖥 KiCad / Fusion <span class="tag t-desktop">laptop</span></div><div class="dsc">Open the finished library in your actual EDA app.</div></div>
</div>
</div>
<!-- EXPLAINERS -->
<div class="ex">
<div class="card">
<h3>🟢 What's a “local CLI”?</h3>
<p>A small command that's <b>installed in your cloud container</b> (in <code>~/.local/bin</code>) and runs right there. Fast, no network, nothing big to install. Example: <code>adom-sfconvert</code>, <code>adom-symbol</code>.</p>
<p class="k">These are tiny Rust binaries (a few MB). They do the orchestration, parsing, and file-shuffling.</p>
</div>
<div class="card">
<h3>🟠 What's a “remote service container”?</h3>
<p>A <b>shared, always-on container we call over HTTPS</b>. It holds the heavy software (KiCad is ~2 GB) so it lives in <b>one</b> place instead of on every user's container.</p>
<p class="k">When a local CLI needs KiCad, it POSTs a file to <code>service-kicad</code> and gets the result back. <b>Nothing ever installs KiCad on your container.</b></p>
</div>
</div>
<div class="card" style="margin-top:14px">
<h3><span class="count">15</span> apps chip-fetcher depends on</h3>
<p>adom-sfconvert <span class="new-pill">NEW</span> · adom-symbol · adom-footprint · adom-ds2sf · adom-concur · adom-step · adom-lbr · adom-chip-thumbnailer · adom-chipsmith · adom-parts-search · adom-mouser · adom-digikey · adom-jlcpcb · adom-desktop · adom-cli (+ adom-vscode for editor reveal).</p>
<p class="k">All 15 are <b style="color:var(--local)">local CLIs</b>. Between them they reach only <b style="color:var(--remote)">6 remote services</b> (service-kicad, step2glb, mouser, digikey, jlcpcb, wiki) and your laptop. The 2 GB KiCad never touches your container.</p>
</div>
<div class="note">
<b>On Altium specifically:</b> <b style="color:var(--lib)">altium-pcblib</b> reads Altium footprints and <b style="color:var(--lib)">altium-schlib</b> reads Altium symbols (both native/local). <code>adom-altium</code> is an empty stub. The other Altium pages on the wiki — <code>adom-altium-library-importer</code>, <code>altium-part-importer</code>, <code>adom-desktop-altium-bridge</code> (all barrett-land) — go the <b>opposite</b> direction: they write parts <i>into</i> Altium Designer on the desktop. Reading Altium <b>symbols</b> (.SchLib) is now <b>native too</b> via <code>altium-schlib</code> — so as of this thread <b>nothing foreign touches service-kicad</b>; Altium + EAGLE convert entirely in your container.
</div>
</div>
</body>
</html>