← text-to-cad

Privacy Policy

Last updated October 8, 2026

This policy describes how Thompson Labs LLC (“we”, “us”) handles personal data for text-to-cad: the text-to-cad plugin and its skills, the cadgen software they run, the step.parts part library they search, and this website, texttocad.dev. text-to-cad runs on your computer. Your prompts, models, drawings and files stay there, and we do not collect them.

1. Personal data we collect

  • The plugin and cadgen: your prompts, models, drawings, file names and paths never leave your computer. There are no accounts. Your agent and the local runtime process your work on your computer and do not send it to us.
  • Telemetry: usage counts and crash reports, when it is on. cadgen’s long-running parts -- the CAD app that shows models in your agent app (the plugin’s cad server), the CAD viewer in your browser (cadgen viewer) and the build daemon that builds models for them and for every cadgen command -- send to api.texttocad.dev, at most once every five minutes while you use them and once as each stops:
    • a random install ID created on your computer, and a random ID for each time one of them starts;
    • which of them sent it, the cadgen version, where it was installed from (a plugin directory, the Cursor Marketplace, GitHub, or a development install), your operating system and processor type, and the name and version of your agent app and how it shows CAD (or that it is the browser viewer);
    • counts, added up over those five minutes: how many times each CAD tool was called and failed, and why each failure happened, as one of a fixed set of words cadgen chooses (such as no file at the path the agent gave, no view open, a view that did not answer in time, or a bug in cadgen) -- never the error’s message or the path; how many times you touched a CAD view; how many different files of each format (such as STEP or STL) a CAD view showed for the first time that day, told apart on your computer and sent only as a number; how many models were built, of which format, whether a model script or a cadgen command asked, how they ended (finished, failed, crashed or stopped), how many came from cadgen’s cache, and how long they took; how many snapshots were rendered, of which format, how many failed and how long they took; how many times assemblies, mesh exports, posed joints, animations, engineering drawings and Quick Edit were used; and how many of the build daemon’s workers started, crashed or were replaced, and how many builds it turned away for want of memory;
    • crash reports, when cadgen’s own code fails unexpectedly: the error’s type (such as “KeyError”), whether the program carried on, and where in code it failed -- file paths inside cadgen, Python’s standard library, cadgen’s own open-source dependencies or the CAD app’s and viewer’s page scripts, with function names and line numbers -- or, for a build worker that crashed, its exit status. Any part of the failure in your own code is replaced by a placeholder, and a crash report never includes the error’s message, any values, your files, or file or folder names.
    We record the time each batch arrives, and our server adds the country each request comes from, which it works out from your IP address; it keeps neither the address nor anything finer than the country. Nothing is sent while cadgen sits unused. Telemetry never includes your files, models, file or folder names, prompts, tool arguments or anything you type. A cadgen command sends nothing itself: it hands what it counted (a snapshot, a drawing, a crash) to the build daemon if one is running, which sends it with its own. Like any request over the internet, each one also reaches our host with your IP address, the time and a user agent (for cadgen, just “cadgen”); see section 4 for what happens to them. Section 5 says when telemetry is on and how to turn it off.
  • The version check: at most once a day, cadgen (the CAD app or the CAD viewer) asks api.texttocad.dev which text-to-cad release is the newest, so it can tell you when there is an update. The request carries no ID and nothing about you or your work; like any request, it reaches our host with your IP address, the time and a user agent (“cadgen”). It is never made in CI or for a copy that a plugin directory, the Cursor Marketplace or Gemini updates, and section 5 says how to turn it off.
  • step.parts searches: when you ask your agent to find a part, the step-parts skill sends your search terms and the parts you request to step.parts. Each request includes standard metadata: your IP address, the time and the user agent.
  • This website: page views, with the referring page, browser, device type and country, through Vercel Web Analytics, which sets no cookies. Each request also includes standard metadata: your IP address, the time and the user agent.

We do not collect payment card data, health information, government identifiers, passwords, API keys or other credentials, or any sensitive category of personal data.

2. How we use it

  • Search terms and part requests: only to return the parts and files you asked for.
  • Request metadata: only to deliver, secure and troubleshoot step.parts, api.texttocad.dev and this website.
  • Page-view statistics: only to understand, in aggregate, how this website is used.
  • Version checks: only to answer them; we keep nothing from them beyond our host’s request logs.
  • Telemetry: only to understand, in aggregate, how many people use text-to-cad and how often, how many files they work on and in which formats, what they build and how long it takes, where in the world it is used, which features are used, which agent apps and operating systems to support, and how often tools, builds and snapshots fail; and, from crash reports, to find and fix the bugs behind them.

We do not sell personal data, use it for advertising, or build profiles of you, and we do not track you across other sites or services.

3. Who receives it

  • Vercel Inc., which hosts step.parts, this website and api.texttocad.dev and processes their requests for us, and PostHog, Inc., which stores and analyzes telemetry for us. PostHog never sees your IP address: only our server sends it telemetry, with the country it worked out and PostHog’s own location lookup turned off.
  • Services the software contacts directly, under their own privacy policies. The agent app installs the pinned cadgen runtime from the Python Package Index (PyPI) the first time it starts after an install or an update. Skills reach the services you ask your agent to use, such as a fabrication service’s public specifications or your own printer on your local network. These requests send no personal data of ours; each service sees the request’s IP address, time and user agent.

We share personal data with no one else, except where the law requires it.

4. How long we keep it

  • Vercel, our host, records each request to step.parts, api.texttocad.dev and this website in its request logs, with the IP address, time and user agent it arrived with. We use those logs only to run and secure the services, and they are deleted within 30 days. step.parts searches are kept only there.
  • Website analytics are kept as aggregate page-view statistics. The visitor identifier Vercel derives from a request is discarded after 24 hours.
  • Telemetry is kept by PostHog for as long as our plan with it keeps events, currently one year, then deleted. We do not store IP addresses with it. Your install ID travels in the body of each request, which our host’s request logs do not record, and we never combine telemetry with those logs. The one exception is a batch our server refuses as malformed: its logs then keep the name of the rule it broke and the cadgen version that sent it, never your install ID or any other value from it. Turning telemetry off deletes everything stored under your install ID; PostHog carries the deletion out in the background, which can take some days. If our server cannot be reached at that moment, cadgen asks again until it can.
  • Everything text-to-cad stores locally stays on your computer until you delete it.

5. Your choices and controls

  • The plugin works without contacting us, apart from the daily version check. step.parts receives a request only when you ask your agent to search for or download a part.
  • Telemetry is on once cadgen has told you. The first cadgen command you or your agent run says, once, in its output, that cadgen sends usage stats and crash reports and how to turn them off, and nothing is sent before that. If we ever send more than this policy describes, cadgen says so again before it does. Nothing is sent by default in CI or from a development install. Your choice is kept on your computer, as the telemetry setting in cadgen’s settings file, through restarts and updates, and one choice counts for every part of cadgen; a no stays a no. Turning telemetry off also turns off analytics in an earlier version still installed, and deletes what it sent. Nothing waits to send: what a command counts without cadgen’s build daemon, and what any part of cadgen counted since its last send when it exits, wait in small files beside that setting until the next part of cadgen sends them; turning telemetry off deletes those files too.
  • To turn telemetry off, run uvx cadgen telemetry off, use Share usage stats in the menu of the CAD app or the CAD viewer (the logo at the top left, over any open model), or ask your agent to turn off CAD telemetry. Turning it off deletes the install ID on your computer and asks our server to delete everything stored under it. Turning it on again starts a new install ID, so nothing links the two. uvx cadgen telemetry on turns it on, and uvx cadgen telemetry status shows the setting and your install ID.
  • Setting DO_NOT_TRACK=1 or CADGEN_TELEMETRY=0 where cadgen runs (your agent app’s environment, or the shell that runs a cadgen command) turns telemetry off for that process and the models it asks cadgen’s build daemon to build, whatever your setting says; CADGEN_TELEMETRY=1 turns it on for that process the same way. Neither changes your setting, and the parts of cadgen that process starts to run on their own, the build daemon and a viewer started in the background, go by your setting.
  • Setting CADGEN_UPDATE_CHECK=0 where cadgen runs turns the daily version check off; CAD then never says when there is an update.
  • You can uninstall the plugin at any time. Deleting cadgen’s cache and state folders removes everything it stored on your computer, including its recent-files list.
  • You can block this website’s analytics with your browser’s settings or a content blocker.
  • You can ask us what personal data we hold about you, or ask us to delete it, using the contact below.

6. Children

text-to-cad is not directed to children under 13, and we do not knowingly collect their personal data.

7. Changes

We will post any change to this policy on this page and update the date above.

8. Contact

Thompson Labs LLC. For privacy questions and requests, open an issue at github.com/earthtojake/text-to-cad/issues.