{"id":"9f1fe7e3-0ea0-46b9-9cc8-567f24dbcb21","shortId":"27AUGY","kind":"skill","title":"step-parts","tagline":"Find, evaluate, and download low-level common standard CAD parts from step.parts, such as screws, bolts, nuts, washers, bearings, standoffs, electronics parts, motors, connectors, and other off-the-shelf components. Use when Codex needs to search the hosted step.parts catalog, re","description":"# CAD Parts\n\n## Overview\n\nUse the hosted step.parts machine endpoints instead of scraping HTML or relying on local repository files. Treat `https://api.step.parts` as the canonical API origin and `https://www.step.parts` as the site/static-asset origin unless the user provides a different hosted mirror. If the domain does not resolve or the API is unavailable, report that the hosted service is not reachable yet instead of falling back to repo-specific assumptions.\n\n## Quick Workflow\n\n1. Interpret the requested part into search terms and optional facets:\n   - `q` for fuzzy tokens, standards, aliases, dimensions, source/product URLs, and attribute names/values.\n   - `category`, `family`, `standard`, or `tag` when the user gives an exact facet.\n2. Search `/v1/parts` and inspect `items`, `total`, and `facets`.\n3. If results are ambiguous, present the best few options with `id`, `name`, `standard`, and key attributes before choosing. If one result clearly matches, return the selected record details without downloading unless the user asked for a local STEP file.\n4. When the user asks to download or save a STEP file, download its `downloadUrl` so the internal download count is updated, then verify the file with the record's `sha256` when present.\n5. Return the local path when downloaded, plus the selected part id and page/API URLs so the user can trace provenance.\n\n## Bundled Downloader\n\nUse `scripts/download_step_part.py` for deterministic search, download, and checksum verification:\n\n```bash\npython skills/step-parts/scripts/download_step_part.py \"M3 socket head 12\" --download --out-dir /tmp/step-parts\npython skills/step-parts/scripts/download_step_part.py --id iso4762_socket_head_cap_screw_m3x12 --download --out-dir /tmp/step-parts\npython skills/step-parts/scripts/download_step_part.py \"bearing 608zz\" --limit 5\n```\n\nUseful options:\n\n- `--origin`: override `https://api.step.parts` only when the user provides another hosted API origin.\n- `--tag`, `--category`, `--family`, `--standard`: repeatable facet filters.\n- `--out-dir`: directory for downloaded STEP files. Defaults to `/tmp/step-parts`.\n- `--all`: with `--download`, download every result on the returned page as individual STEP downloads.\n- `--overwrite`: replace an existing output file.\n\nThe script prints JSON to stdout. For searches, it prints matched records. For downloads, it prints saved file paths, checksums, and source URLs.\n\n## API Reference\n\nRead `references/step-parts-api.md` when you need endpoint details, field meanings, or query semantics. Prefer:\n\n- `/v1/parts` for filtered search with absolute asset URLs.\n- `/v1/parts/{id}` for one enriched record.\n- `/v1/parts/{id}/download` or returned `downloadUrl` for counted STEP downloads.\n- `/v1/catalog/parts.index.json` for a compact discovery index.\n- `/v1/catalog/schema` for field and family attribute meanings.\n- `/v1/openapi.json` when generating a client or tool.\n\n## Search Guidance\n\n- Query tokens are ANDed by the API, so start specific but not overconstrained. For example, use `M3 SHCS 12` before adding exact family and standard filters.\n- Values within one facet are ORed together, and selected `tag`, `category`, `family`, and `standard` fields are ANDed together. Use exact facets to narrow within known categories, then rank manually by name and attributes.\n- Standards can be queried as `ISO 4762`, `ISO4762`, or the exact `standard.designation`.\n- The `attributes` object contains family-specific facts such as `thread`, `lengthMm`, `bore1Mm`, `material`, `profileSeries`, `slotSizeMm`, and dimensions in millimeters.\n- Part, GLB, and PNG URL patterns are predictable on `https://www.step.parts`; STEP URLs are environment-aware and may resolve to GitHub LFS media in production. Use API `downloadUrl` for downloads and catalog/API `stepUrl` only when the user explicitly needs the canonical asset URL.","tags":["step","parts","earthtojake","agent","agent-skills","cad","electrical-engineering","hardware","mechanical-engineering","open-source","skills"],"capabilities":["skill","source-earthtojake","skill-step-parts","topic-agent","topic-agent-skills","topic-cad","topic-electrical-engineering","topic-hardware","topic-mechanical-engineering","topic-open-source","topic-skills","topic-step"],"categories":["step.parts"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/earthtojake/step.parts/step-parts","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add earthtojake/step.parts","source_repo":"https://github.com/earthtojake/step.parts","install_from":"skills.sh"}},"qualityScore":"0.530","qualityRationale":"deterministic score 0.53 from registry signals: · indexed on github topic:agent-skills · 161 github stars · SKILL.md body (3,875 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:56:01.976Z","embedding":null,"createdAt":"2026-05-14T07:04:58.498Z","updatedAt":"2026-05-18T18:56:01.976Z","lastSeenAt":"2026-05-18T18:56:01.976Z","tsv":"'/download':405 '/tmp/step-parts':278,292,330 '/v1/catalog/parts.index.json':413 '/v1/catalog/schema':419 '/v1/openapi.json':426 '/v1/parts':155,389,397,403 '1':118 '12':273,453 '2':153 '3':162 '4':202 '4762':500 '5':235,298 '608zz':296 'absolut':394 'ad':455 'alias':134 'ambigu':166 'and':438,477 'anoth':309 'api':71,95,311,374,441,552 'api.step.parts':67,303 'ask':196,206 'asset':395,567 'assumpt':115 'attribut':139,178,424,493,507 'awar':541 'back':110 'bash':267 'bear':23,295 'best':169 'bolt':20 'bore1mm':518 'bundl':256 'cad':13,47 'canon':70,566 'cap':285 'catalog':45 'catalog/api':557 'categori':141,314,471,486 'checksum':265,370 'choos':180 'clear':184 'client':430 'codex':38 'common':11 'compact':416 'compon':35 'connector':28 'contain':509 'count':221,410 'default':328 'detail':190,382 'determinist':261 'differ':84 'dimens':135,523 'dir':277,291,322 'directori':323 'discoveri':417 'domain':89 'download':7,192,208,214,220,241,257,263,274,288,325,333,334,344,364,412,555 'downloadurl':216,408,553 'electron':25 'endpoint':55,381 'enrich':401 'environ':540 'environment-awar':539 'evalu':5 'everi':335 'exact':151,456,480,504 'exampl':449 'exist':348 'explicit':563 'facet':128,152,161,318,464,481 'fact':513 'fall':109 'famili':142,315,423,457,472,511 'family-specif':510 'field':383,421,475 'file':65,201,213,227,327,350,368 'filter':319,391,460 'find':4 'fuzzi':131 'generat':428 'github':546 'give':149 'glb':527 'guidanc':434 'head':272,284 'host':43,52,85,101,310 'html':59 'id':173,246,281,398,404 'index':418 'individu':342 'inspect':157 'instead':56,107 'intern':219 'interpret':119 'iso':499 'iso4762':282,501 'item':158 'json':354 'key':177 'known':485 'lengthmm':517 'level':10 'lfs':547 'limit':297 'local':63,199,238 'low':9 'low-level':8 'm3':270,451 'm3x12':287 'machin':54 'manual':489 'match':185,361 'materi':519 'may':543 'mean':384,425 'media':548 'millimet':525 'mirror':86 'motor':27 'name':174,491 'names/values':140 'narrow':483 'need':39,380,564 'nut':21 'object':508 'off-the-shelf':31 'one':182,400,463 'option':127,171,300 'ore':466 'origin':72,78,301,312 'out-dir':275,289,320 'output':349 'overconstrain':447 'overrid':302 'overview':49 'overwrit':345 'page':340 'page/api':248 'part':3,14,26,48,122,245,526 'path':239,369 'pattern':531 'plus':242 'png':529 'predict':533 'prefer':388 'present':167,234 'print':353,360,366 'product':550 'profileseri':520 'proven':255 'provid':82,308 'python':268,279,293 'q':129 'queri':386,435,497 'quick':116 'rank':488 're':46 'reachabl':105 'read':376 'record':189,230,362,402 'refer':375 'references/step-parts-api.md':377 'reli':61 'repeat':317 'replac':346 'repo':113 'repo-specif':112 'report':98 'repositori':64 'request':121 'resolv':92,544 'result':164,183,336 'return':186,236,339,407 'save':210,367 'scrape':58 'screw':19,286 'script':352 'scripts/download_step_part.py':259 'search':41,124,154,262,358,392,433 'select':188,244,469 'semant':387 'servic':102 'sha256':232 'shcs':452 'shelf':34 'site/static-asset':77 'skill' 'skill-step-parts' 'skills/step-parts/scripts/download_step_part.py':269,280,294 'slotsizemm':521 'socket':271,283 'sourc':372 'source-earthtojake' 'source/product':136 'specif':114,444,512 'standard':12,133,143,175,316,459,474,494 'standard.designation':505 'standoff':24 'start':443 'stdout':356 'step':2,200,212,326,343,411,536 'step-part':1 'step.parts':16,44,53 'stepurl':558 'tag':145,313,470 'term':125 'thread':516 'togeth':467,478 'token':132,436 'tool':432 'topic-agent' 'topic-agent-skills' 'topic-cad' 'topic-electrical-engineering' 'topic-hardware' 'topic-mechanical-engineering' 'topic-open-source' 'topic-skills' 'topic-step' 'total':159 'trace':254 'treat':66 'unavail':97 'unless':79,193 'updat':223 'url':137,249,373,396,530,537,568 'use':36,50,258,299,450,479,551 'user':81,148,195,205,252,307,562 'valu':461 'verif':266 'verifi':225 'washer':22 'within':462,484 'without':191 'workflow':117 'www.step.parts':74,535 'yet':106","prices":[{"id":"b123b6b0-c05f-42cd-bfb4-e6348ab2a5de","listingId":"9f1fe7e3-0ea0-46b9-9cc8-567f24dbcb21","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"earthtojake","category":"step.parts","install_from":"skills.sh"},"createdAt":"2026-05-14T07:04:58.498Z"}],"sources":[{"listingId":"9f1fe7e3-0ea0-46b9-9cc8-567f24dbcb21","source":"github","sourceId":"earthtojake/step.parts/step-parts","sourceUrl":"https://github.com/earthtojake/step.parts/tree/main/skills/step-parts","isPrimary":false,"firstSeenAt":"2026-05-14T07:04:58.498Z","lastSeenAt":"2026-05-18T18:56:01.976Z"}],"details":{"listingId":"9f1fe7e3-0ea0-46b9-9cc8-567f24dbcb21","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"earthtojake","slug":"step-parts","github":{"repo":"earthtojake/step.parts","stars":161,"topics":["agent","agent-skills","cad","electrical-engineering","hardware","mechanical-engineering","open-source","skills","step"],"license":"mit","html_url":"https://github.com/earthtojake/step.parts","pushed_at":"2026-05-18T18:29:07Z","description":"12,000+ open source STEP parts for your next CAD project","skill_md_sha":"948c8fe81b30e11c76b83d7323d679e3ff787477","skill_md_path":"skills/step-parts/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/earthtojake/step.parts/tree/main/skills/step-parts"},"layout":"multi","source":"github","category":"step.parts","frontmatter":{"name":"step-parts","description":"Find, evaluate, and download low-level common standard CAD parts from step.parts, such as screws, bolts, nuts, washers, bearings, standoffs, electronics parts, motors, connectors, and other off-the-shelf components. Use when Codex needs to search the hosted step.parts catalog, resolve fuzzy part names, standards, aliases, or dimensions, choose a matching part, fetch a canonical .step file, verify checksums, or use the step.parts API/OpenAPI/catalog endpoints for standard part discovery."},"skills_sh_url":"https://skills.sh/earthtojake/step.parts/step-parts"},"updatedAt":"2026-05-18T18:56:01.976Z"}}