Agentcad Skill

v0.1.6

CAD tool for AI agents. Use when the user asks you to design, model, or build a 3D object. agentcad executes CadQuery Python scripts and produces STEP files,...

1· 67·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for jdilla1277/agentcad.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Agentcad Skill" (jdilla1277/agentcad) from ClawHub.
Skill page: https://clawhub.ai/jdilla1277/agentcad
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required binaries: agentcad
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Canonical install target

openclaw skills install jdilla1277/agentcad

ClawHub CLI

Package manager switcher

npx clawhub@latest install agentcad
Security Scan
Capability signals
Crypto
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The name/description (CAD tool that runs CadQuery scripts) matches the declared requirements: it needs the agentcad CLI and Python 3.10–3.12. No unrelated binaries or credentials are requested.
Instruction Scope
SKILL.md instructs the agent to run the agentcad CLI and to read generated artifacts (preview.png, diff images, STEP/GLB files) — this is expected. One minor scope note: the doc explicitly tells the agent to open the interactive viewer in the user's browser 'every run, unprompted', which is an aggressive UX preference (intrusive if automated). Otherwise the instructions do not reference unrelated files, env vars, or external endpoints.
Install Mechanism
This is an instruction-only skill with no install spec or archived downloads. The README suggests installing the CLI via pip (agentcad on PyPI), which is a standard distribution channel; the skill itself does not install arbitrary code or fetch from unknown URLs.
Credentials
No environment variables, credentials, or config paths are required. The requested artifacts are local outputs produced by the agentcad CLI; nothing indicates credential or secret access.
Persistence & Privilege
always is false and the skill does not request persistent system-wide privileges. It does not attempt to modify other skills or agent configuration. Autonomous invocation is allowed by default (normal), and no additional elevated privileges are declared.
Assessment
This skill manifest appears coherent for a CLI-based CAD helper. Before installing or using it: 1) ensure you install the agentcad CLI from a trusted source (pip on PyPI) and verify the package/source if you require extra assurance; 2) be aware the skill instructs the agent to open the local viewer automatically after every successful run — if you don't want automatic browser openings, disable that behavior or run agent actions manually; 3) check the CLI's own commands (e.g., any 'feedback' or telemetry commands) so you understand what data might be transmitted externally; and 4) run the CLI in an isolated environment (sandbox/container) if you want to limit risk while you evaluate the tool.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

Binsagentcad
Any binpython3.12, python3.11, python3.10
cadvk977jdkxmyh49nq8vvnxtyh4kx85ftb6latestvk977jdkxmyh49nq8vvnxtyh4kx85ftb6stablevk977jdkxmyh49nq8vvnxtyh4kx85ftb6
67downloads
1stars
2versions
Updated 2h ago
v0.1.6
MIT-0

agentcad — CAD tool for AI agents

You have access to agentcad, a CLI that turns CadQuery Python scripts into 3D geometry. All output is JSON. Every command returns "command" and "status" keys.

First-time setup

agentcad init --name <project_name>
agentcad --help   # Read this — it is your complete operational briefing

Core workflow

  1. Write a script. No imports needed — cq, show_object, and all helpers are pre-injected. show_object(result) is required.

  2. Dry-run first to check metrics without consuming a version:

    agentcad run script.py --output test --dry-run
    

    Check volume, dimensions, is_valid in the response.

  3. Run for real. Visual feedback is on by default:

    agentcad run script.py --output label
    

    Every successful run produces (paths in the JSON response):

    • preview.png — 4-view composite (front, right, top, iso). Read this to confirm the part looks right before iterating. One image, all 4 angles.
    • diff.side_by_side — side-by-side PNG vs the most recent successful prior version. Read this when iterating to see what your change did.
    • diff.overlay — tinted (green prev, red this) overlay for subtle shifts. Read only if side-by-side didn't resolve the question.
    • viewer.html — interactive 3D viewer for the user (humans only; you can't render HTML). Mention it to the user so they open it.

    Pass --no-preview only for tight parametric sweeps where latency matters.

  4. Show the user. After a successful build, open the interactive viewer:

    agentcad view v1_label/viewer.html   # or output.step / output.glb
    

    Users expect to see the result in a browser. Do this every run, unprompted.

  5. Inspect if invalid. If is_valid: false or geometry looks wrong:

    agentcad inspect v1_label/output.step
    
  6. Iterate. Fix the script, run with a new --output label. Use agentcad diff 1 2 to compare versions.

Script writing rules

  • show_object(result) is required — at least one call.
  • These are pre-injected (no import needed): cq, show_object, translate, rotate, mirror_fuse, loft_sections, tapered_sweep, naca_wire, bbox_point, place_at, assemble, ellipse_wire, spline_wire, polygon_wire, rounded_rect_wire, elliptical_sweep, involute_gear_profile
  • Helpers operate on TopoDS_Shape. Bridge with .val().wrapped:
    part = cq.Workplane('XY').box(10, 20, 5).val().wrapped
    moved = translate(part, 50, 0, 0)
    
  • To show helper output:
    show_object(cq.Workplane('XY').newObject([cq.Shape.cast(topo_shape)]))
    
  • For OCP internals (gp_Pnt, BRepPrimAPI, etc.), import manually.

Key commands

CommandPurpose
agentcad init --name NAMEInitialize project
agentcad run SCRIPT --output LABELExecute script, produce STEP + metrics
agentcad run ... --dry-runMetrics only, no version consumed
agentcad run ... --no-previewSuppress preview (on by default)
agentcad run ... --render iso,frontPNG views
agentcad run ... --export stl,glbMesh export
agentcad run ... --params k=v,k=vOverride script parameters
agentcad render STEP --view SPECPost-hoc renders with camera control
agentcad export STEP --format stl,glbPost-hoc mesh export
agentcad inspect STEPTopology report (validity, free edges)
agentcad diff REF1 REF2Compare versions
agentcad contextProject state
agentcad docs [SECTION]Deep-dive docs (16 sections)
agentcad view FILERun this after every successful build — opens GLB/STEP in the user's browser

Debugging playbook

  1. Check metrics firstvolume and dimensions catch most issues.
  2. Read preview.png — the 4-view composite. Fastest way to spot obvious problems.
  3. Read diff.side_by_side if iterating — confirms your change did what you intended.
  4. Negative volume? Wire winding is backwards (CW instead of CCW).
  5. is_valid: false? Run agentcad inspect — check free_edge_count and shell status.
  6. Hollow shape? free_edge_count > 0 means open shell.
  7. Complex profiles (gears, splines)? Use subtractive construction — cut from a blank cylinder/box instead of building up. See agentcad docs patterns.

Patterns

  • Build at origin, then position: Create geometry at origin, use translate() and rotate() to place it.
  • Compound vs Union: makeCompound() for assemblies (parts stay separate), .union() for boolean fuse into one solid.
  • Parametric scripts: Top-level variable assignments become overridable via --params. Use this for iteration.
  • Named parts: show_object(shape, name="wheel", options={"color": "red"}) for per-part metrics and colored GLB export.

Comments

Loading comments...