VibeCAD is an AI-native parametric CAD platform for designing real 3D parts through conversation, focused modeling tools, and editable geometry history.
You need a ChatGPT subscription, a Grok / X (xAI) login, or an API key for the provider you select. VibeCAD runs ChatGPT-subscription, Grok OAuth, and OpenAI-API-key requests through its bundled Codex runtime, connects directly to Anthropic and Google Gemini, and can still route Codex through OpenAI-compatible endpoints such as an xAI API key, Ollama, and other local model servers.
Store the key in one of these places:
- OS keyring (recommended): paste the key in VibeCAD Preferences, click Save Key, and then click Validate.
- A selected
.envfile: create the file yourself, select it in VibeCAD Preferences, and click Validate. VibeCAD does not search for.envfiles automatically.
API keys are not stored in ordinary application preferences. ChatGPT OAuth credentials are owned and refreshed by the bundled Codex app-server; VibeCAD does not read or copy those tokens. Grok / X OAuth tokens are stored in a private VibeCAD Grok credential directory and refreshed by VibeCAD; they are never written to ordinary user.cfg.
Download the latest build from VibeCAD Releases.
chmod +x VibeCAD*.AppImage
./VibeCAD*.AppImageRun this command from the directory containing the downloaded package:
sudo apt install ./vibecad_*_amd64.debThe leading ./ is required when installing a local package with apt.
Download the Windows installer, run it, and launch VibeCAD from the Start menu.
Download the Apple Silicon (arm64) or Intel (x86_64) DMG from VibeCAD Releases. Open the DMG and drag VibeCAD.app to Applications.
Current release DMGs are not Apple-notarized, so the first launch may show “VibeCAD.app” Not Opened. Use one of these paths, then open VibeCAD from Applications as usual:
- Without Terminal: Apple menu → System Settings → Privacy & Security → scroll to the VibeCAD message → Open Anyway, then confirm.
- With Terminal (after the app is in Applications):
xattr -dr com.apple.quarantine /Applications/VibeCAD.appSHA256 files are published beside release artifacts so downloads can be verified before installation.
Open Preferences, then select VibeCAD > VibeCAD.
- Enable Use online provider.
- Select ChatGPT subscription, Grok (X / xAI), OpenAI API key (Codex), Anthropic, or Google Gemini under Provider.
- For ChatGPT or Grok, use the account sign-in controls described below. For an API provider, configure its key and leave the base URL blank unless you use a compatible or local endpoint.
- Configure the selected provider's authentication.
- Click Fetch models, then select a returned model.
- Choose a supported Reasoning effort. Use
nonewhen a model does not support thinking or reasoning parameters. - Click Apply or OK to save the provider, model, endpoint, and
.envpath settings.
- Select ChatGPT subscription as the provider.
- Click Sign in with ChatGPT and complete the browser flow. Use Use device code when the browser callback cannot reach VibeCAD.
- Click Fetch models and select a subscription model, or leave Use account default selected.
- Choose a reasoning effort offered by that model, then click Apply or OK.
ChatGPT credentials are stored in a private VibeCAD Codex credential directory and refreshed by the bundled, version-pinned app-server. Logout asks that runtime to remove the account. VibeCAD never imports credentials from another Codex installation and never falls back to an ambient API key.
- Select Grok (X / xAI) as the provider.
- Click Sign in with X / Grok and complete the xAI browser flow at
accounts.x.ai. Use Use device code when the local callback cannot reach VibeCAD (SSH, containers, or a blocked loopback port). - Click Fetch models and select a Grok model, or keep the default
grok-4.6. - Choose a reasoning effort offered by that model, then click Apply or OK.
This is real xAI OAuth against the documented issuer https://auth.x.ai (authorization, device-code, and token endpoints from xAI's OpenID configuration). VibeCAD reuses the official public Grok CLI OAuth client shipped by xAI in xai-org/grok-build; xAI does not publish a separate VibeCAD app registration. You need an active SuperGrok subscription or an X Premium+ account that xAI has linked to your xAI session.
Grok OAuth tokens are stored only under the private VibeCAD Grok credential directory and are refreshed automatically. Logout revokes and deletes that store. Inference uses the xAI Responses-compatible API at https://api.x.ai/v1 through the bundled Codex runtime.
If OAuth login succeeds but model calls return HTTP 403, xAI may be gating the OAuth API surface by subscription tier. Use the API-key fallback below in that case.
- Obtain a Gemini API key from Google AI Studio.
- Select Google Gemini as the provider.
- Paste the key into API key, click Save Key, and then click Validate.
- Click Fetch models and select a compatible Gemini model, or keep the default
gemini-flash-latestalias. - Choose a reasoning effort supported by the model, then click Apply or OK.
Gemini requests use Google's OpenAI-compatible Chat Completions endpoint at https://generativelanguage.googleapis.com/v1beta/openai/. This endpoint is fixed for the Gemini provider; VibeCAD does not reuse the OpenAI base-URL override. Gemini supports VibeCAD tool calls, reference images, Design Review, and Intent Memory. Web research is hidden while Gemini is selected because Google Search grounding is not enabled by this integration.
ChatGPT subscription, Grok OAuth, OpenAI-compatible, Anthropic, Gemini, and offline/debug turns all use the same frozen authoring-surface resolver. The human chooses either VibeScript or Native in the Assistant header. VibeScript exposes the active workbench's exact source-backed API. Native exposes only the complete tool families belonging to the human-selected VibeCAD ribbon. A provider can never select or switch a workbench, ribbon, or authoring mode for itself.
- Select the provider first. Keys are stored separately for OpenAI, Anthropic, and Gemini.
- Paste the provider key into API key.
- Click Save Key. The field clears after VibeCAD hands the key to the operating system's credential store.
- Click Validate. A successful check reports
verifiedin Auth status. - Click Fetch models and choose the model to use.
Logout removes only the selected provider's keyring entry. It does not remove a process environment variable or edit a selected .env file.
Create a text file containing the variable for the selected provider:
# OpenAI and OpenAI-compatible providers, including xAI
OPENAI_API_KEY=your-key-here
# Anthropic
ANTHROPIC_API_KEY=your-key-here
# Google Gemini
GEMINI_API_KEY=your-key-hereIn VibeCAD Preferences:
- Click Browse beside .env path and select that exact file.
- Leave the API key field empty; Save Key is only for the OS keyring.
- Click Validate, then Fetch models.
- Click Apply or OK so the selected path is used by future sessions.
Do not commit a .env file containing a real key to source control.
VibeCAD resolves a key in this order:
- The provider's process environment variable.
- The
.envfile explicitly selected in Preferences. - The OS keyring.
This order matters when a valid key appears to be ignored. For example, an old OPENAI_API_KEY exported by the shell overrides both the selected .env file and a newer key saved in the keyring.
Prefer Sign in with X / Grok when you have SuperGrok or X Premium+. The API-key path remains available when OAuth is gated or you already have a console key:
- Obtain an API key from xAI.
- Select OpenAI API key (Codex) as the provider.
- Set OpenAI base URL to
https://api.x.ai/v1. - Paste the xAI key, click Save Key, and then click Validate.
- Click Fetch models and select the Grok model returned by xAI.
- Choose a reasoning effort supported by that model, then click Apply or OK.
When using a .env file for this fallback, use OPENAI_API_KEY; VibeCAD resolves that key normally and supplies it only to the bundled Codex process.
- Create or open a CAD document and save it. VibeCAD keeps the assistant disabled for unsaved documents so the conversation, design record, references, and generated source have a durable project location.
- Select the VibeCAD ribbon that matches the work you are doing, then choose VibeScript or Native in the Assistant header. Only the human can change the authoring system. Native may change CAD work between provider turns when the requested design requires another ribbon.
- Open View > Panels > VibeCAD Assistant if the assistant is not visible.
- Describe the intended result, including the dimensions, interfaces, material, manufacturing process, and constraints that matter.
- Use Attach Image for a reference design, or paste an image into the message box with
Ctrl+V. Use Attach View to include the current viewport in the next model request only; it is consumed after that delivery. - Click Send. Ask for a plan when you want one, revise it in the same conversation, then say Build it when you are ready. While work is running, the same input becomes Steer, so corrections stay in that conversation. Stop ends the run after the current provider or CAD step returns.
- Save the CAD document normally. Reopening it restores the associated VibeCAD conversations and project records.
Be explicit about functional intent, not only appearance. For an existing model, identify what should be preserved and what should change. For a new part, provide mating geometry and critical dimensions whenever they are known.
The conversation selector at the top of the assistant opens prior conversations for the current CAD document. The new-conversation button starts a clean thread without deleting earlier work. This makes it possible to separate a redesign, manufacturing discussion, or analysis task while retaining the project's history.
Saved conversations remain available to the human in this selector, but VibeCAD does not replay the project transcript or persisted tool traces into a model request. The model receives the current message exactly once. Intent Memory remains available as an explicit human project record, but it is not compiled after every turn or injected automatically.
Turn-start CAD context is deliberately small: the frozen authoring surface, document identity, current edit object, exact selection, and one concise active domain state. In VibeScript mode it also includes the editable source targets owned by the active workbench. Each source target carries its stable ID, revision, affected outputs, and exact read/edit calls. In Native mode the tool declarations come only from the current VibeCAD ribbon and every mutation is revalidated against the live document and frozen ribbon before execution. Newly attached reference images and Attach View are delivered at the start of each later turn until the human removes or replaces them.
Native is for direct, parametric editing with the same command families the current VibeCAD ribbon exposes to a human. Tool surfaces are replaced only between turns after a human or Native work transition. Calls use exact object and subelement identities, structural revisions, transactions, concise receipts, and domain-state refreshes. Native changes do not rewrite or regenerate a VibeScript program.
VibeScript is for source-backed, fully automated designs. The active workbench selects one dedicated VibeScript domain. Tools from different workbenches are never combined, and accepted source remains the authority for its published outputs. Direct Native mutation is therefore unavailable for a VibeScript-owned document until the human explicitly takes manual control.
See VibeCAD authoring modes for the complete authority boundary and migration from the retired direct-tool surface. For products that require several verified turns and ribbons, see the Native complex-design workflow.
VibeScript keeps source, inputs, diagnostics, revisions, and accepted outputs with the project. It runs in an isolated windowless worker and publishes only validated results. The Model Code Editor lists programs for the active workbench domain and opens with no program selected.
All 16 supported user-workbench VibeScript interfaces are production-ready:
Part Design, Sketcher, Draft, Surface, Assembly, Spreadsheet, Material, Mesh,
MeshPart, Points, Reverse Engineering, Inspection, Robot, FEM, CAM, and
TechDraw. Every domain exposes the same provider-facing
vibescript.read_source, vibescript.read_api, and vibescript.edit_source
tools for ordinary source changes, plus domain-qualified create, input-only,
contract-reconfiguration, and delete operations. Program source is addressed
by its stable per-program ID, and API inspection contains only the active
workbench's canonical runtime operations and typed outputs.
Geometry, solver, mesh, reconstruction, projection, and toolpath work runs in the isolated worker. The live document receives only independently validated, precomputed native state under stable program/output identities. This includes native sketches and Draft proxies, Assembly links and joints, sheets and material assignments, meshes and point clouds, reconstruction and inspection records, Robot trajectories, FEM analyses/results, Path jobs/toolpaths, and TechDraw pages/views/dimensions. Failed candidates remain inspectable without replacing the accepted revision, and publication/deletion paths explicitly restore accepted state when FreeCAD transaction rollback is incomplete.
Part, MeshPart, Points, CAM, and TechDraw deliberately collapse equivalent variants behind selectors or one ordered pipeline instead of advertising redundant operations. There are no forwarding wrappers for removed Part operations. Startup, test, unknown, or future unimplemented workbenches resolve to an exact unavailable surface; VibeCAD never substitutes another workbench's tools.
For Ollama or another local OpenAI-compatible server, select OpenAI API key (Codex) and configure its endpoint. A common Ollama setup is:
OpenAI base URL: http://localhost:11434/v1
Model: select a model returned by Fetch models
API key: any non-empty value accepted by the local server
Reasoning effort: none
The local server must already be running and expose an OpenAI-compatible API. Some local models reject reasoning parameters even when the server supports the endpoint; use none for those models.
VibeCAD's CAD instructions, tool schemas, document state, and reference images
need more context than an ordinary chat. Use at least 64K tokens for agentic CAD
work when the model and available memory support it. Larger context consumes
more RAM or VRAM. VibeCAD cannot set num_ctx through Ollama's
OpenAI-compatible endpoint, so configure Ollama before selecting the model in
VibeCAD.
When starting Ollama directly:
OLLAMA_CONTEXT_LENGTH=65536 ollama serveFor the standard Linux systemd service, run sudo systemctl edit ollama.service and add:
[Service]
Environment="OLLAMA_CONTEXT_LENGTH=65536"Then apply the override:
sudo systemctl daemon-reload
sudo systemctl restart ollamaThe Ollama desktop application also provides a context-length setting. To give
only one derived model a larger context, create it from a Modelfile:
FROM qwen3.5:9b
PARAMETER num_ctx 65536ollama create qwen3.5:9b-vibecad -f ModelfileSelect the resulting model in VibeCAD after clicking Fetch models. Run
ollama ps during a request to verify the allocated context and whether the
model is fully on GPU or partly offloaded to CPU. See Ollama's official
context-length guide and
OpenAI-compatibility notes
for current platform-specific details.
not_configured: VibeCAD could not find the selected provider's environment variable, a valid key in the selected.envfile, or a keyring entry.- No ChatGPT subscription is signed in: open Preferences, select ChatGPT subscription, and complete browser or device-code sign-in.
- No Grok / X account is signed in: open Preferences, select Grok (X / xAI), and complete Sign in with X / Grok or Use device code.
- No CAD authoring tools are shown: select a supported modeling workbench.
configured_unverified: a key was found but has not been checked against the configured endpoint. Click Validate.invalid: the endpoint rejected the key. Confirm the selected provider, base URL, credential precedence, and account access.offline: the key could not be verified because the configured endpoint could not be reached.- No models are listed: validate authentication first, then click Fetch models.
- The model does not support thinking: set Reasoning effort to
none. - The assistant input is disabled: save the active CAD document.
- The assistant panel was closed: reopen it from View > Panels > VibeCAD Assistant.
On Windows, double-click RUN-VIBECAD-DEV.cmd to build and launch the exact
current checkout in its repo-local Pixi environment. The visible development
identity, checkout-scoped authenticated control channel, native file
round-trip commands, screenshots, and plain-cyan independent-cursor tour are
documented in
docs/developer-launch-windows.md. The tour
does not move or click the user's physical mouse.
Run the standalone Aero and 3D-printing component suites with one command:
python3 tools/run_vibecad_component_tests.pyThe runner uses a separate pytest process for each component so their installed
tests packages cannot collide. Use --suite aero or --suite print to run
one component, and put additional pytest arguments after --.
VibeCAD is under active development. The current focus is reliable, readable AI-assisted part design with explicit human control over the document, workbench, and design direction.
A local desktop agent (for example Grok Bot on Windows) can open documents, run Python or VibeScript, show Preferences, and read auth status without clicking menus. That loopback CLI / HTTP channel is documented in docs/vibecad-agent-control.md. It does not disable the in-app Assistant and it is not MCP.
Release packaging details are documented in docs/vibecad-release-packaging.md.
The single-workbench Part and Part Design model, compatibility boundary, and Body/tree behavior are documented in docs/part-design-consolidation.md.
The human and Native manufacturing workflow, multi-setup model, simulation, verification, and current CAM scope are documented in CAM-README.md.
The removed BIM and architectural surface, existing-document behavior, and rollback path are documented in docs/bim-architecture-removal.md.
- The VibeLight and VibeDark themes are based on OpenTheme by Obelisk79.
- VibeCAD is built on the work of the FreeCAD project. Thank you to the contributors and the wider FreeCAD community whose CAD engine, workbenches, documentation, and support made this project possible.

