Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/luckiday/vibe-hardwarenpx agentmods add skills/luckiday/vibe-hardware/vibe-cadWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/luckiday/vibe-hardware/vibe-cad)<a href="https://agentmods.dev/skills/luckiday/vibe-hardware/vibe-cad"><img src="https://agentmods.dev/badge/skills/luckiday/vibe-hardware/vibe-cad/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/luckiday/vibe-hardware/vibe-cad"><img src="https://agentmods.dev/badge/skills/luckiday/vibe-hardware/vibe-cad.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00273 | $0.03004 |
| Opus 5 | $0.00137 | $0.01502 |
| Sonnet 5 | $0.00055 | $0.00601 |
| Haiku 4.5 | $0.00027 | $0.00300 |
Grade A, and why
vibe-cad scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 189 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Text → CAD (beginner + Claude Code → printable part)
Parametric mechanical CAD for the parts in this repo — mostly enclosures that
wrap a vibe-pcb board + its modules. You write the intent and the fit numbers;
Claude Code emits a single build123d python file, reviews it in the CAD
Viewer, interference-checks it against the real boards, and exports STEP/STL.
Worked reference (the target shape): a device shell under examples/ — a 2-part
stacked shell with a display/sensor window, snap detents, vents, a bracket mount, an
exploded view, and a 0 mm³ interference check. The flagship
examples/pager-buddy/cad/ is currently a stub
(only the constraints.yaml contract): the pager-buddy firmware runs on an off-the-shelf
M5StickC S3, and this shell is the in-progress enclosure for the from-scratch board. This
skill is the method; follow it to model that shell.
The model is ONE parametric file
Unlike a GUI CAD, the source of truth is a python module with two halves:
- A param block at the top — every dimension as a named constant, derived
values computed from them (
CAR_TOP = CAR_BOT + CAR_T). Change a number, the whole part moves consistently. This is what a beginner edits. - Importable
build_*()builders with no side effects —build_tray(),build_cover(),build_fit(),build_exploded(). Exports live in a separatebuild_all.pyso the model can be imported by the section / check / view tools without writing files.
build123d vocabulary you reuse: Box / Cylinder / loft primitives · Pos / Rot / Align placement · chamfer (wrap in a try_chamfer that retries smaller / skips,
so one bad edge doesn't crash the build) · import_step to load a real module STEP
(its frame is arbitrary — dump each solid's bbox to discover it, then seat off a
named solid via max(solids, key=volume) + bounding_box()) · & for the
interference check · Compound(children=[...]) to assemble. Two design rules worth
naming up front: the print should self-locate each part (a bore/stop that makes
hand-assembly foolproof — adhesive only fixes, never locates), and add the
back plate/cover to build_fit() so a boolean section can prove its bosses/ribs
clear the real parts. See references/build123d-patterns.md.
What ships with it
8 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/build123d-patterns.md 11 KB
- references/cad-viewer.md 3.6 KB
- references/usb-connector-cutouts.md 6.9 KB
- scripts/cad_contract.py 8.7 KB runs code
- scripts/cad_viewer.sh 2.7 KB runs code
- scripts/check_fit.py 4.8 KB runs code
- scripts/patterns.py 5.7 KB runs code
- scripts/section.py 4.0 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 189 lines · 273 tokens per session scan A 645104ebbea0
vibe-cad is a skill published in the GitHub repository luckiday/vibe-hardware (5 stars, last pushed 16d ago), licensed MIT. It adds 273 tokens to every session and 3,004 once invoked, about $0.0014 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
cad-viewer
Start CAD Viewer and return review links for CAD and robot-description files. Use when visually reviewing .step, .stp, .glb, .stl, .3mf, .dxf, .urdf, .srdf, or .sdf files, especially when handed off from CAD, URDF, SRDF, or SDF generation skills.
solidworks-vibecad
A planning guide for turning natural-language mechanical design requests into structured, parameterized SolidWorks plans that can be reviewed before execution.
add-interfaces
Enrich an existing PartCAD part with connection interfaces and ports (mating metadata) so it can be mated to other parts automatically. Use for /pc:add-interfaces or when the user asks to add interfaces, ports, connectors, or mating information to a part, or to make parts snap/connect/assemble together.
gen-assembly
Generate a PartCAD assembly (an ASSY that composes parts with placement and/or mates) from a description, generating or reusing the component parts and validating the result with the PartCAD CLI. Use for /pc:gen-assembly or when the user asks to generate or create an assembly, mechanism, or multi-part product.
render
Render a PartCAD object or a CAD file to a 2D image - PNG, JPEG, SVG or DXF - from one or many viewing angles (front, back, left, right, top, bottom, iso, or an arbitrary direction), with pc render for an object a package declares or pc adhoc render for a file that belongs to no package. Use for /pc:render or when the…
gen-part
Generate a PartCAD part from a natural-language description (and optional reference images/requirements) by authoring a CAD script and validating it with the PartCAD CLI. Use for /pc:gen-part or when the user asks to generate, create, or model a single mechanical part.