All plugins

DSH / BUNDLE / CLIENT-UI

dsh-kicad

v0.6.0LuYanFCP / dsh-kicad33fe5dafcc

InstallableBundlesUI & client pluginsCommunity · Topic auto-analysisWeb UI

Overview

dsh-kicad

KiCad for DeepSeek Harness: schematic and PCB tools (sync, placement, autorouting), ERC/DRC, SPICE simulation, MCU wiring checks and firmware simulation (ATtiny, ESP32), fab output, approval policy, skills, commands, sidebar viewer (2D and 3D) and an EDA agent preset

README / EN

Package documentation

Registry summary

KiCad for DeepSeek Harness: schematic and PCB tools (sync, placement, autorouting), ERC/DRC, SPICE simulation, MCU wiring checks and firmware simulation (ATtiny, ESP32), fab output, approval policy, skills, commands, sidebar viewer (2D and 3D) and an EDA agent preset

dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.

Read the full README on GitHub

LIMITATIONS

Known limitations

- Boards are created and kept in sync from the schematic (`kicad_update_pcb`), placed (`auto_place`), edited, routed (`kicad_autoroute`), checked and exported (`kicad_export_fab`). Autorouting needs Java 25+ and Freerouting, which are installed separately (see [Routing](#routing)); dense boards may keep a few unrouted connections for the agent to finish by hand. - Simulation covers analog behaviour with ngspice; parts without a SPICE model are left out, and firmware, signal integrity, EMC and thermal behaviour are not simulated. Plain Device:LED / Device:D symbols need `Sim.Device` set (see [Simulation](#simulation)). - Firmware simulation covers the ATtiny25/45/85 and the classic ESP32 (on Espressif's QEMU, a separate install); it refuses what it does not model (see [Firmware against the board](#firmware-against-the-board); on the ESP32 among others deep sleep, pads driven by I2C, SPI or RMT, WiFi and Bluetooth). MCU checks are otherwise static and only cover families with a provider (classic ESP32, the 8-pin ATtiny25/45/85, the ATmega48/88/168/328 and the Arduino Nano/UNO today; the ATmega328P's firmware simulation is in progress); other MCUs are tracked in #31. An ESP32 pin table is only as good as its transcription: verify it against the datasheet of the exact module. - Fab presets were read from JLCPCB's and PCBWay's capability pages on 2026-10-21 and may drift. The JLC CPL keeps KiCad's rotations; JLCPCB's preview may need per-part rotation fixes. - Edits cover symbols, properties, wires, labels, power symbols, junctions and no-connects; hierarchical sheet creation, buses and graphic items are not edited. - New sub-sheet symbols get their instance path from the root sheet one level up; deeper hierarchies may need KiCad's annotation. - Images reach the model only when the model route declares image input and an attachment store is mounted; otherwise the render tool returns SVG paths. - Approval needs an interactive approval channel; headless runs without one deny design edits unless `approval: allow`. - The 3D view needs WebGL (otherwise it shows KiCad renders). Its colours follow KiCad's GLB export, which writes sRGB colours as glTF's linear colour factors; the view reads them as sRGB to match KiCad, so other glTF viewers show the same file lighter. - The interactive viewer is KiCanvas, vendored at a pinned commit by `scripts/vendor-kicanvas.mjs` (see `packages/client-ui-kicad/vendor/kicanvas/README.md` for the offline/icon/theme patches). It parses KiCad 10 files but ignores tokens it does not know yet; the SVG mode is the kicad-cli ground truth. It needs WebGL2. - The IPC channel is a status probe plus the KiCad-side launcher; live editing through IPC is not implemented (KiCad's IPC API is PCB-centric). - The Flatpak path runs kicad-cli as `flatpak run --filesystem=host --filesystem=/tmp --command=kicad-cli org.kicad.KiCad`; this was tested with a stand-in `flatpak`, not a real Flatpak KiCad. The install commands for apt/pacman/zypper/brew/winget are documented but were only exercised on Fedora. - Checks started from the settings page append `/kicad-doctor` entries to the log of the session they borrow (dsh logs every command).