agentcad / incorporating agentcad
Incorporating agentcad into your project.
What to know before you put agentcad inside a commercial product, an internal tool, or a hosted service. Written for engineering and product teams, not licensing specialists.
At a glance
- agentcad is Apache-2.0. You can use it in commercial and closed-source projects.
- The default install is build123d plus OpenCascade. It does not include CadQuery, CasADi, or the COIN-OR and METIS solver libraries.
- Running agentcad on your own servers is the simplest case. Shipping it to customers adds notice and attribution work.
agentcad is Apache-2.0
Apache-2.0 is a permissive license. It allows commercial use, modification, private use, and distribution, and it does not require you to open-source your own code. Its obligations are light: keep the license and copyright notices, and state that you changed the code if you did.
That covers agentcad itself. The rest of this page is about the libraries agentcad installs alongside it, because those are what a license review usually asks about.
Using it versus shipping it
The obligations depend on whether agentcad leaves your infrastructure.
Internal tool or hosted service
You run agentcad on your own machines and your customers only see the results, for example through a web app. Nothing is distributed to them. The weak-copyleft libraries in the default stack (see the table below) attach their source-availability terms to distribution, so hosted use does not trigger them. The CAD files agentcad produces are your output; dependency licenses do not attach to them.
Software delivered to customers
An installer, a container image, a desktop app, or a bundled Python environment that contains agentcad also contains its dependencies. You are redistributing them, whether or not you charge for the product, and the checklist further down applies. Telling users to run pip install agentcad themselves is different: PyPI delivers the dependencies directly, and you distribute only your own code.
What the default install contains
pip install agentcad # build123d runtime only pip install 'agentcad[mcp]' # plus the MCP server
Since agentcad 0.6.0 the default install is build123d only. The main components:
| Package | License | Role |
|---|---|---|
| agentcad | Apache-2.0 | The CLI and MCP server. |
| build123d | Apache-2.0 | The default CAD authoring runtime. |
| cadquery-ocp (OpenCascade) | LGPL-2.1 with the OCCT exception | The geometry kernel. Despite the name, this is only the OpenCascade Python binding; it does not include the CadQuery package. |
| click | BSD-3-Clause | Command-line parsing. |
The remaining dependencies are the small Python libraries build123d uses, almost all under MIT, BSD, or Apache licenses. The mcp extra adds the MCP SDK and its HTTP client libraries; one of them, certifi, is MPL-2.0, a file-level copyleft that does not reach your code.
What the default install does not contain: the CadQuery package, CasADi, and the COIN-OR solver libraries (Ipopt, MUMPS, METIS) that CasADi bundles. Those only arrive with the optional profile described next.
Dependency versions are not locked, so the exact list depends on when and where you install. Generate it from a fresh environment on your platform:
pip install pip-licenses pip-licenses --with-urls --with-license-file --format=markdown
The optional CadQuery profile
CadQuery support exists for teams with existing CadQuery scripts. New projects do not need it. It is an explicit extra:
pip install 'agentcad[cadquery]' agentcad daemon restart
This profile installs the CadQuery package (Apache-2.0) and its dependency CasADi (LGPL-3.0). CasADi's binary wheels bundle the COIN-OR solver stack: Ipopt (EPL), MUMPS (CeCILL-C), and a METIS 4.0.3 build whose bundled license text restricts commercial organizations to evaluation use without separate approval. The METIS author has given a softer public clarification, but the COIN-OR project says users are responsible for determining their own entitlement.
Practical guidance: do not install this profile unless you need to run CadQuery scripts. If you do need it, have your legal review cover CasADi and its bundled solvers explicitly. The default build123d profile has none of this surface.
Selecting the CadQuery runtime without the extra installed returns a structured error naming the install command, so a missing extra never fails silently.
If you redistribute agentcad
When agentcad ships inside something you deliver to customers, plan for the following.
- Ship the Apache-2.0 LICENSE and NOTICE text for agentcad and build123d, and note any changes you made to agentcad itself.
- Include the OpenCascade license and attribution. Keep the OpenCascade binding as a separately replaceable package (a normal pip wheel does this) rather than compiling it into your own binary, so the LGPL relink requirement stays easy to meet.
- Include notices for every other LGPL, MPL, or EPL component in your resolved dependency list, and be able to point to their source.
- If you ship the browser viewer, note that it loads three.js and gif.js from a CDN. Both are MIT; include their copyright notices.
- Generate the dependency list from a fresh install on each platform you support. Upgrading an existing environment does not remove packages that an older agentcad release installed.
Not legal advice
This page is practical product guidance from the agentcad maintainers. It is not legal advice, and it does not certify any third-party dependency for your use. License terms and dependency versions change; adopters remain responsible for their own review. If you find something here that is out of date, open an issue on GitHub.