dsh plugin · developer preview

Model while you watch.

An embedded 3D/2D CAD viewer and a native parametric modeling tool family (OCCT kernel) for DeepSeek Harness — the agent builds exact BRep geometry step by step, live in the conversation.

L-bracket modeled live in the dsh-cad viewer card
An L-bracket modeled live in the chat: profile extrusion, through holes and all-edge fillet — exact OCCT BRep, 2,030 triangles, volume verified to 76,678.69 mm³.
quick-start.sh
# clone & build (Node ≥ 22)
git clone https://github.com/LAU-MARS/dsh-cad.git
cd dsh-cad && npm install && npm run build && npm test

# register as a dsh web plugin
npm i -g @deepseek-ai/dsh pnpm
dsh plugin --profile web add /path/to/dsh-cad
dsh web   # then just ask:
# "model a 100×70 L-bracket, two ⌀9 holes,
#  one ⌀12 mounting hole, fillet R2"
Capabilities

A full CAD workbench, in the conversation.

View, measure, model and export — every step stays exact BRep on the OCCT kernel, never a mesh approximation.

🔍

3D viewing

STL / OBJ / STEP / IGES / BREP — interactive orbit / zoom / wireframe cards right inside the chat.

🏗️

Parametric modeling

Primitives, profile extrusion, booleans (fuse / cut / common), all-edge fillets and transforms — mm, Z-up, exact axis-angle placement.

🖥️

Resident “3D” tab

A permanent tab beside the chat: XYZ axes + grid when empty, then tracking the latest model in real time as the agent works.

Zero-copy pipeline

Worker meshes → in-memory binary → three.js typed arrays. No base64, no intermediate files, no per-step disk writes; documents persist and replay on restart.

Installation

Try it in two minutes.

1 · Build the plugin

terminal
git clone https://github.com/LAU-MARS/dsh-cad.git
cd dsh-cad
npm install && npm run build && npm test

2 · Register & launch

terminal
npm i -g @deepseek-ai/dsh pnpm  # Node ≥ 22
dsh web                            # init profile, Ctrl-C
dsh plugin --profile web add /path/to/dsh-cad
dsh web   # set DEEPSEEK_API_KEY, then chat
The tool family

Ten tools the agent can call.

Every modeling step refreshes the same viewer card in place — stable viewId, versioned URL — while the 3D tab keeps tracking.

cad_viewopen a CAD file, render an interactive card
cad_inforead-only geometry metadata
cad_create_primbox / cylinder / sphere / cone / torus
cad_extrude_profileclosed XY polygon → solid along +Z
cad_booleanfuse / cut / common
cad_filletconstant-radius fillet on all sharp edges
cad_transformtranslate / Euler rotate / mirror
cad_volumeexact BRep volume (mm³)
cad_exportSTEP / STL to a workspace path
cad_deletedelete a body
Get started

Try it in two minutes.

1 · Build the plugin

terminal
git clone https://github.com/LAU-MARS/dsh-cad.git
cd dsh-cad
npm install && npm run build && npm test

2 · Register & launch

terminal
npm i -g @deepseek-ai/dsh pnpm  # Node ≥ 22
dsh web                            # init profile, Ctrl-C
dsh plugin --profile web add /path/to/dsh-cad
dsh web   # set DEEPSEEK_API_KEY, then chat