Wire Harness Designer
Public Made by Adomby adom
Design wire harnesses in the browser and export a professional, print-ready PDF assembly drawing. Pick connectors, wire gauge, colour and stripe, sleeving, and connector-to-connector lengths; get a live fishbone diagram with a wire schedule and title block. Click any wire or connector in the drawing to edit it. Save and reload the whole harness as JSON.
| Name | Last updated |
|---|---|
| bin | 2mo ago |
| public | 2mo ago |
| samples | 2mo ago |
| screenshots | 2mo ago |
| install.sh | 2mo ago |
| LICENSE | 2mo ago |
| package.json | 2mo ago |
| page.json | 2mo ago |
| README.md | 2mo ago |
| server.js | 2mo ago |
| SKILL.md | 2mo ago |
| uninstall.sh | 2mo ago |
Wire Harness Designer
Design a wire harness in the browser and export a professional, print-ready PDF assembly drawing. Pick connectors, wire gauge, colour and stripe, sleeving, and connector-to-connector lengths; get a live fishbone diagram with a wire schedule and a title block. Click any wire or connector in the drawing to edit it. Save and reload the whole harness as JSON.

Install
adom-wiki pkg install adom/wire-harness-designer
wire-harness-designer open # starts the server and opens the webview
What it does
- Connectors: type (Deutsch, Molex, JST, M12, D-Sub, ring terminals, flying leads, …), pin count, and where each sits: auto, an end, or a branch up/down.
- Wires: From/To connector + pin, AWG gauge (drives strand thickness), colour with an optional stripe, and a signal/notes label.
- Lengths are per connector pair. Set
J1 ↔ J2once and every wire on that pair uses it (the Segment Lengths section). Older files with per-wire lengths migrate automatically. - Wire wrap / sleeving: braided, spiral, convoluted tube, harness tape, or heat shrink over a span of the trunk, each drawn with a distinct hatch and a callout.
- Live diagram: connector face views with numbered pins, a colourful wire ribbon along the trunk, sleeves, length dimensions, a wire schedule, and a standard title block.
- Click-to-edit: click any wire or connector in the drawing to change its colour, gauge, signal, length, type, pins, and more, inline.
- Export PDF: a real vector PDF (crisp at any zoom), multi-page when the schedule overflows. Sheet sizes: Tabloid, A3, Letter.
- Save / Load JSON: the whole harness is one
adom.wire-harness/v1document, so a drawing can be regenerated, diffed, or version-controlled.
The drawing

Everything you see (connectors, the wire ribbon, sleeves, the schedule, and the title block) comes from one layout engine, so the on-screen preview matches the exported PDF exactly.
Click any wire or connector to edit it

CLI
wire-harness-designer open # start the server (if needed) and open the webview [default]
wire-harness-designer serve # run the static server in the foreground
wire-harness-designer health # is the server running?
wire-harness-designer --version
Default port is 8830 (override with PORT). Everything (preview, PDF, JSON) runs
client-side; the Node server only serves static files so the webview has a URL to load.
How it is built
One layout engine emits a renderer-agnostic draw list that feeds both outputs:
public/harness-layout.js model JSON -> draw list (PDF points, y-down)
public/render-svg.js draw list -> SVG (live preview + click targets)
public/render-pdf.js draw list -> jsPDF (vector PDF export)
public/app.js state, editors, click-to-edit, tooltips, toasts, save/load
server.js static file server (no app logic)
Harness JSON
{
"schema": "adom.wire-harness/v1",
"meta": { "name": "Sensor Harness", "partNumber": "WH-1042", "revision": "A" },
"connectors": [ { "id": "J1", "type": "Deutsch DT06-4S", "pins": 4, "side": "left" } ],
"wires": [ { "id": "W1", "from": { "conn": "J1", "pin": 1 },
"to": { "conn": "TB1", "pin": 1 }, "gauge": "16", "color": "RD",
"signal": "+12V" } ],
"segments": [ { "a": "J1", "b": "TB1", "length": 780 } ],
"wraps": [ { "type": "Braided sleeve", "start": 40, "end": 300 } ]
}
samples/sensor-harness.json is the built-in starter (also the Sample button).
Drive API
For AI/CLI testing the app exposes window.harnessApp:
getModel(), setModel(m), exportPDF(), saveJSON(), pdfDataUrl(), toast(msg, type).
License
MIT.