<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>CAD Generation on Producthunt daily</title>
        <link>https://producthunt.programnotes.cn/en/tags/cad-generation/</link>
        <description>Recent content in CAD Generation on Producthunt daily</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Sun, 04 Oct 2026 21:18:08 +0800</lastBuildDate><atom:link href="https://producthunt.programnotes.cn/en/tags/cad-generation/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>text-to-cad</title>
        <link>https://producthunt.programnotes.cn/en/p/text-to-cad/</link>
        <pubDate>Sun, 04 Oct 2026 21:18:08 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/text-to-cad/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1656359526341-bf6ca7077e86?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3OTExMTk3NzR8&amp;ixlib=rb-4.1.0" alt="Featured image of post text-to-cad" /&gt;&lt;h1 id=&#34;earthtojaketext-to-cad&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/earthtojake/text-to-cad&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;earthtojake/text-to-cad&lt;/a&gt;
&lt;/h1&gt;&lt;div align=&#34;center&#34;&gt;
&lt;img src=&#34;apps/docs/public/brand/logo-texttocad.png&#34; alt=&#34;text-to-cad&#34; width=&#34;800&#34;&gt;
&lt;p&gt;Give your agent CAD superpowers.&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.texttocad.dev&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Docs&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/earthtojake/text-to-cad/stargazers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/github/stars/earthtojake/text-to-cad?style=for-the-badge&amp;amp;logo=github&amp;amp;label=Stars&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub stars&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://skills.sh/earthtojake/text-to-cad&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://skills.sh/b/earthtojake/text-to-cad?style=for-the-badge&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;skills.sh&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://x.com/earthtojake&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/badge/Follow-%40earthtojake-000000?style=for-the-badge&amp;amp;logo=x&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Follow @earthtojake&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://discord.gg/5FGB9DwJYU&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/badge/Discord-Join-5865F2?style=for-the-badge&amp;amp;logo=discord&amp;amp;logoColor=white&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Join Discord&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;LICENSE&#34; &gt;&lt;img src=&#34;https://img.shields.io/badge/License-MIT-blue?style=for-the-badge&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;License: MIT&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/earthtojake/text-to-cad/actions/workflows/test.yml?query=branch%3Amain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/github/actions/workflow/status/earthtojake/text-to-cad/test.yml?branch=main&amp;amp;style=for-the-badge&amp;amp;logo=githubactions&amp;amp;logoColor=white&amp;amp;label=Tests&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Tests&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://pypi.org/project/cadgen/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/pypi/v/cadgen?style=for-the-badge&amp;amp;logo=pypi&amp;amp;logoColor=white&amp;amp;label=cadgen&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;cadgen&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/gumyr/build123d&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/badge/build123d-0.11-2F6FB0?style=for-the-badge&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;build123d&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://dev.opencascade.org&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/badge/Open%20CASCADE-7.9-E2001A?style=for-the-badge&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Open CASCADE&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;skills/cad/requirements.txt&#34; &gt;&lt;img src=&#34;https://img.shields.io/badge/Python-3.11&amp;#43;-3776AB?style=for-the-badge&amp;amp;logo=python&amp;amp;logoColor=white&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Python&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://nodejs.org&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/badge/Node.js-20&amp;#43;-5FA04E?style=for-the-badge&amp;amp;logo=nodedotjs&amp;amp;logoColor=white&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Node.js&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h1 id=&#34;text-to-cad&#34;&gt;text-to-cad
&lt;/h1&gt;&lt;p&gt;text-to-cad is a library of agent skills for generating, inspecting, sourcing,
slicing, and handing off CAD and robot-description artifacts from local project
files.&lt;/p&gt;
&lt;h2 id=&#34;-skills&#34;&gt;🧰 Skills
&lt;/h2&gt;&lt;p&gt;Install the library to give agents focused workflows for CAD, fabrication,
robot description files, simulation, and local review.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Skill&lt;/th&gt;
					&lt;th&gt;Summary&lt;/th&gt;
					&lt;th&gt;Source&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;CAD&lt;/td&gt;
					&lt;td&gt;Creates and edits CAD models from plain-language or image requests, with STEP as the main output along with options to export to STL, 3MF and GLB.&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;skills/cad/SKILL.md&#34; &gt;skills/cad&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;step.parts&lt;/td&gt;
					&lt;td&gt;Finds off-the-shelf STEP parts like screws, bearings, motors, and connectors.&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;skills/step-parts/SKILL.md&#34; &gt;skills/step-parts&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Engineering Drawing&lt;/td&gt;
					&lt;td&gt;Dimensioned engineering drawings from a part, as a PDF: views, hidden lines, dimensions, hole callouts, title block.&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;skills/engineering-drawing/SKILL.md&#34; &gt;skills/engineering-drawing&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;DXF&lt;/td&gt;
					&lt;td&gt;Creates 2D DXF drawings like profiles, templates, gaskets, and cut layouts from Python sources or CAD geometry.&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;skills/dxf/SKILL.md&#34; &gt;skills/dxf&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;URDF&lt;/td&gt;
					&lt;td&gt;Writes robot structure files with links, joints, limits, inertials, and meshes.&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;skills/urdf/SKILL.md&#34; &gt;skills/urdf&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;SRDF&lt;/td&gt;
					&lt;td&gt;Adds MoveIt planning groups, end effectors, poses, and collision rules to a URDF.&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;skills/srdf/SKILL.md&#34; &gt;skills/srdf&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;SDF&lt;/td&gt;
					&lt;td&gt;Creates simulator models and worlds with frames, physics, sensors, and lights.&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;skills/sdf/SKILL.md&#34; &gt;skills/sdf&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;SendCutSend&lt;/td&gt;
					&lt;td&gt;Checks DXF and STEP files before upload to SendCutSend.&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;skills/sendcutsend/SKILL.md&#34; &gt;skills/sendcutsend&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;DfAM Check&lt;/td&gt;
					&lt;td&gt;Measures mesh printability per process: wall thickness, overhangs, support volume, and build orientation.&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;skills/dfam-check/SKILL.md&#34; &gt;skills/dfam-check&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;DFM&lt;/td&gt;
					&lt;td&gt;Reviews a part for sheet metal, CNC machining, or injection molding, with measured evidence and the cited rule behind every finding; measures draft, undercuts and projected area from a mesh.&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;skills/dfm/SKILL.md&#34; &gt;skills/dfm&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;G-code&lt;/td&gt;
					&lt;td&gt;Slices models into printer-ready G-code with OrcaSlicer, using your own printer presets.&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;skills/gcode/SKILL.md&#34; &gt;skills/gcode&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Bambu Labs&lt;/td&gt;
					&lt;td&gt;Sends prints to Bambu Lab printers through Bambu Connect, Bambu Lab&amp;rsquo;s official app, or Bambu Studio.&lt;/td&gt;
					&lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;skills/bambu-labs/SKILL.md&#34; &gt;skills/bambu-labs&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;-installation&#34;&gt;💻 Installation
&lt;/h2&gt;&lt;p&gt;Install or clone from &lt;code&gt;main&lt;/code&gt;: it is the source tree, and every skill&amp;rsquo;s
&lt;code&gt;requirements.txt&lt;/code&gt; pins the &lt;code&gt;cadgen&lt;/code&gt; release it was published with. (&lt;code&gt;models/&lt;/code&gt;,
the fixture corpus, is not needed to use the skills.)&lt;/p&gt;
&lt;h3 id=&#34;skills&#34;&gt;Skills
&lt;/h3&gt;&lt;p&gt;Install text-to-cad with the Skills CLI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add earthtojake/text-to-cad
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This is the preferred installation path. It installs the individual skills
directly for supported agents.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Use the same command to update.&lt;/strong&gt; &lt;code&gt;add&lt;/code&gt; re-fetches the package and overwrites
what is already installed, so it both refreshes existing skills and installs any
skill added in a newer release. &lt;code&gt;npx skills update&lt;/code&gt; only refreshes skills already
in your lockfile, so it silently misses new ones — which matters here, because
releases do add skills.&lt;/p&gt;
&lt;p&gt;Neither command removes a skill that was retired upstream; drop one with
&lt;code&gt;npx skills remove &amp;lt;skill&amp;gt;&lt;/code&gt; if you need to. The retired &lt;code&gt;cad-viewer&lt;/code&gt; skill is
now covered by the CAD, DXF and robot-description skills; remove old standalone
installs with &lt;code&gt;npx skills remove cad-viewer&lt;/code&gt;. For local development symlinks,
remove the old &lt;code&gt;cad-viewer&lt;/code&gt; link manually: the install/uninstall scripts discover
only skills still present in the checkout.&lt;/p&gt;
&lt;p&gt;(&lt;code&gt;npx skills install …&lt;/code&gt; still works — it is an undocumented alias for &lt;code&gt;add&lt;/code&gt;.)&lt;/p&gt;
&lt;h3 id=&#34;plugins&#34;&gt;Plugins
&lt;/h3&gt;&lt;p&gt;Provider-native plugin installs are also available for Codex, Claude Code,
Cursor and Grok Build. Each installs from &lt;code&gt;main&lt;/code&gt;, whose root carries every
host&amp;rsquo;s manifest. The &lt;code&gt;plugin&lt;/code&gt; branch is the same plugin without the rest of the
repository, updated on each release; the plugin directories follow it.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Codex (requires Codex 0.142.0 or newer)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex plugin marketplace add earthtojake/text-to-cad
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex plugin add text-to-cad@earthtojake
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Codex resolves this repository-root plugin only from 0.142.0 onward. On older
versions the plugin is skipped silently and never appears in &lt;code&gt;codex plugin list&lt;/code&gt;;
upgrade with &lt;code&gt;npm install -g @openai/codex@latest&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In the Codex app the plugin also brings the CAD viewer: &lt;strong&gt;CAD&lt;/strong&gt; in the sidebar
(recent models, and Open), a &lt;strong&gt;CAD&lt;/strong&gt; tab beside each thread that the agent
drives, and &lt;em&gt;Open with CAD&lt;/em&gt; for model files. It runs locally through
&lt;a class=&#34;link&#34; href=&#34;https://docs.astral.sh/uv/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;uv&lt;/a&gt;, which must be installed: after installing the plugin,
restart the app, and its first start downloads the pinned runtime. The plugin&amp;rsquo;s
&lt;code&gt;$cad-mcp-setup&lt;/code&gt; skill checks for uv and points you to its installer. To update, upgrade the &lt;code&gt;earthtojake&lt;/code&gt; marketplace
(Plugins › Manage › Marketplace, or &lt;code&gt;codex plugin marketplace upgrade earthtojake&lt;/code&gt;)
and restart the app: its first start downloads the new runtime. The marketplace was renamed from &lt;code&gt;text-to-cad&lt;/code&gt;
to &lt;code&gt;earthtojake&lt;/code&gt;; if you added it before, remove the old one first
(&lt;code&gt;codex plugin marketplace remove text-to-cad&lt;/code&gt;).&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Claude Code&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude plugin marketplace add earthtojake/text-to-cad
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude plugin install text-to-cad@earthtojake
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;In Claude Code, the plugin also starts CAD&amp;rsquo;s server. Where Claude Code can show
app views, CAD shows models as viewer cards in the conversation; otherwise, as
in a terminal, asking it to show a model gives you a link that opens the model
in the CAD Viewer in your browser.&lt;/p&gt;
&lt;p&gt;In Claude Desktop, CAD shows models in the chat: ask Claude to show one and it
appears as a viewer card you can orbit, add to your prompt, and open full size;
Claude can read what you selected and see what you see. It runs locally through
&lt;a class=&#34;link&#34; href=&#34;https://docs.astral.sh/uv/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;uv&lt;/a&gt;: add the server to Claude Desktop&amp;rsquo;s config
(Settings &amp;gt; Developer &amp;gt; Edit Config), then restart the app. If Claude Desktop
cannot find &lt;code&gt;uvx&lt;/code&gt;, give its full path (&lt;code&gt;which uvx&lt;/code&gt;). The config pins a cadgen
release, and uvx keeps the version it first downloads: to update, change it to
the &lt;a class=&#34;link&#34; href=&#34;https://pypi.org/project/cadgen/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;latest release&lt;/a&gt; and restart the app.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;cad&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;uvx&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;--no-config&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;--from&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;cadgen==0.7.11&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;cadgen&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;mcp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Cursor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone --depth &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; https://github.com/earthtojake/text-to-cad ~/.cursor/plugins/local/text-to-cad
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cursor reads &lt;code&gt;.cursor-plugin/plugin.json&lt;/code&gt;: restart Cursor after cloning, and
&lt;code&gt;git pull&lt;/code&gt; in that folder to update. Add &lt;code&gt;--branch plugin&lt;/code&gt; to clone only the
plugin. Teams can instead import the repository under &lt;strong&gt;Dashboard → Plugins &amp;amp;
MCPs → Team Marketplaces&lt;/strong&gt;. Like the other plugins it starts CAD&amp;rsquo;s server, which
runs locally through &lt;a class=&#34;link&#34; href=&#34;https://docs.astral.sh/uv/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;uv&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Grok Build reads the Claude plugin manifest; there is no separate Grok plugin
manifest. Append &lt;code&gt;@plugin&lt;/code&gt; to the source to install only the plugin.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Grok Build&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;grok plugin install earthtojake/text-to-cad --trust
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;grok plugin &lt;span class=&#34;nb&#34;&gt;enable&lt;/span&gt; text-to-cad
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Restart your agent if newly installed skills do not appear. For local
development, branch from &lt;code&gt;main&lt;/code&gt;, open PRs against &lt;code&gt;main&lt;/code&gt;, and follow
&lt;a class=&#34;link&#34; href=&#34;CONTRIBUTING.md&#34; &gt;CONTRIBUTING.md&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;usage-analytics&#34;&gt;Usage analytics
&lt;/h3&gt;&lt;p&gt;The CAD app (the plugin&amp;rsquo;s &lt;code&gt;cad&lt;/code&gt; server) and the browser viewer (&lt;code&gt;cadgen viewer&lt;/code&gt;) can send anonymous usage counts: a
random install ID, versions, your OS and agent app, how often each CAD tool was
called and views were used, and a one-way code and the format of each distinct
file shown (to count files, not identify them). Our server also counts installs
per country, from each request&amp;rsquo;s IP address, as weekly and monthly totals only.
Never file names, paths, contents or prompts. It is off until you allow it
in either app&amp;rsquo;s one-time prompt (one answer counts for both); change it later with
&lt;strong&gt;Share anonymous usage data&lt;/strong&gt; in either app&amp;rsquo;s Settings, &lt;code&gt;uvx cadgen analytics on|off&lt;/code&gt;, or by asking your agent to
turn it off. &lt;code&gt;DO_NOT_TRACK=1&lt;/code&gt; keeps it off. See the
&lt;a class=&#34;link&#34; href=&#34;https://www.texttocad.dev/privacy-policy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;privacy policy&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;windows-11-smart-app-control&#34;&gt;Windows 11: Smart App Control
&lt;/h3&gt;&lt;p&gt;The CAD kernel behind the &lt;code&gt;cad&lt;/code&gt;, &lt;code&gt;dxf&lt;/code&gt;, &lt;code&gt;urdf&lt;/code&gt;, &lt;code&gt;srdf&lt;/code&gt; and &lt;code&gt;sdf&lt;/code&gt;
skills is &lt;code&gt;OCP&lt;/code&gt;, OpenCascade&amp;rsquo;s Python binding, and its wheel ships an unsigned
native module. Windows 11&amp;rsquo;s Smart App Control blocks unsigned native code, so
on a machine where it is on (the default on a fresh install) every &lt;code&gt;cadgen&lt;/code&gt;
command and &lt;code&gt;import build123d&lt;/code&gt; fails with
&lt;code&gt;ImportError: DLL load failed while importing OCP&lt;/code&gt;, and Event Viewer records
the refusal as Event ID 3077 under CodeIntegrity › Operational. &lt;code&gt;cadgen doctor&lt;/code&gt;
names this when it sees it.&lt;/p&gt;
&lt;p&gt;Smart App Control has no per-app exception. Either turn it off (Settings ›
Privacy &amp;amp; security › Windows Security › App &amp;amp; browser control › Smart App
Control settings; once off it can only be turned back on by reinstalling
Windows) or run the CAD skills under WSL, where it does not apply. The wheel
is built by the cadquery-ocp project, so signing it is not something this
repository can do.&lt;/p&gt;
&lt;h2 id=&#34;-contributing&#34;&gt;🛠️ Contributing
&lt;/h2&gt;&lt;p&gt;Branch from &lt;code&gt;main&lt;/code&gt; and open PRs against &lt;code&gt;main&lt;/code&gt;.
For local contribution workflow, skill linking, and validation guidance, see
&lt;a class=&#34;link&#34; href=&#34;CONTRIBUTING.md&#34; &gt;CONTRIBUTING.md&lt;/a&gt;.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
