Electrical and electronics calculation plugin for DeepSeek Harness: every computation runs through dedicated tools on self-describing complex value objects in SI base units, with an isolated calculation agent preset and a records panel that archives every solve on disk.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-electro-lab
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:curtainsmall/dsh-electro-lab
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
An electrical & electronics calculation plugin for the DeepSeek Harness.
Contents
- Install
- ElectroLab Mode
- Records
- Article generation
- External solvers
- Configuration
- Documentation
- License
Install
dsh plugin --profile web add dsh-electro-lab
ElectroLab Mode
The plugin works as an agent preset: pick ElectroLab Mode when starting a session and ask any electrical or electronics question in plain language. The session is isolated to the plugin's tools, with no shell, file system or network, so every number in the answer comes from the engine, and the agent stops and asks when the conditions are insufficient.
All calculation happens inside a deterministic engine. The agent writes typed values into slots, calls one of 38 built-in solvers, and reads the result back; the engine converts units at the calculation boundary and records every step into a readable record.
| primitive | effect |
|---|---|
set |
writes one typed value into a slot |
get |
reads one slot back |
call |
runs a registered solver and stores its result |
solver_info |
returns a solver's signature before it is called |
record_question / record_analyse / record_answer |
bracket a solve into a record |
The catalog covers expression algebra, series, transfer functions, DSP and DFT, signal quality, circuits, electronics, RF and Smith chart, transmission lines, noise and filter design.
Records
Settled records are listed in the client panel's Records tab, refreshed every 5 s, and a record that was never sealed is marked incomplete. Opening one shows its timeline: a collapsible card per write, read, call and failure, values as JSON trees, the toolbar and title fixed while the timeline scrolls. The list supports multi-select and delete.
A record is the process of one solve: every step reads on its own, and a solve that was interrupted continues from its record after a host restart.
Article generation
Each record can be written up as a standalone solution article. The host LLM writes it from the trace — question, conditions, analysis, solver steps with their arguments and results, and the final answer — in the model's own voice, never mentioning the plugin.
| format | output |
|---|---|
| Markdown | a flat .md file, never compiled |
| LaTeX | a XeLaTeX document, compiled to PDF by a LaTeX driver |
The setup dialog remembers the article language, the output directory and the file name. Compilation needs latexmk or MiKTeX's texify together with the xelatex engine, and the dialog checks the toolchain once per host start: without a usable driver Generate is disabled with the reason shown. A run is cancellable, and its progress dialog minimizes to a corner pill that survives navigation. The article or its folder can be opened from that dialog.
External solvers
Beyond the built-in catalog you can register solvers of your own, reached over http. A declaration lives in ~/.dsh-electro-lab/external-solvers.jsonl and is compiled into the solver registry at engine start, so solver_info and call treat it like a built-in.
| way to declare | how |
|---|---|
| the panel | External solvers tab: list, add, edit, enable, disable, delete |
| the agent | external_solver_add, external_solver_update, external_solver_delete |
| the file | edit the archive directly |
A declaration carries a name, a description, the parameters, an explicit returns shape and the endpoint, and it may be written in the panel's guided form. Changes apply after a host restart, and the panel shows a pending-restart notice until then.
The peer answers a POST of { "requestId": …, "args": … } with { "requestId": …, "result": … }, or with { "requestId": …, "error": "…" } to report a failure. Arguments and results are typed values, so units travel as SI numbers rather than as symbols or unit words.
Engine manual §6 holds the full contract, and external-solvers-example/ is a runnable peer with a field-by-field register guide.
Configuration
| setting | meaning |
|---|---|
DSH_ELECTRO_LAB_HOME |
the plugin home, ~/.dsh-electro-lab by default |
DSH_ELECTRO_LAB_LOG_LEVEL |
debug, info, warn, error or off; default info |
The home holds the records, the declaration archive, the plugin state and one log file per host run. Both are described in the engine manual: storage and logs.
Documentation
| document | content |
|---|---|
| Engine manual · 简体中文 | typed values, primitives, the solver catalog, external solvers, storage, logs |
| external-solvers-example · 简体中文 | a runnable echo peer and the field-by-field register guide |
| Contributing · 简体中文 | setup, commit conventions, release process |
License
MIT © 2026 curtainsmall
Links
More in this category
Tencent/WeKnora#dsh-weknora★ 33047
Four read-only tools over a WeKnora knowledge base: list knowledge bases, hybrid passage search, reassemble one document's chunks in order, and WeKnora's own cited RAG or ReAct-agent answer with a resumable session id.
superdesigndev/treg★ 4972
Tool catalog for agents: search ~2,600 external endpoints (SEO and SERP, backlinks, social, people and company enrichment, ad libraries, scraping) by the task you want done, read each one's parameters and per-call price, then call it with the credential injected server-side. Ships the skill plus an MCP row that stays disabled until TREG_TOKEN is set.
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1136
Tencent CloudBase backend for DeepSeek Harness — scaffold and deploy full-stack apps from chat, render query results as table cards with paging, sorting and CSV export, preview a deployment on its domain, and call the CloudBase MCP toolset (`mcp__cloudbase__*`) with device-code login.
gitroomhq/postiz-agent#dsh-postiz★ 509
Connects DeepSeek Harness to Postiz over MCP: list connected social media channels, fetch per-platform posting rules, and schedule, draft, or publish posts to X, LinkedIn, Instagram, Facebook, Threads, TikTok, YouTube, Reddit, Bluesky, Mastodon, Discord, Slack, Telegram and more; adds a postiz workflow skill.
EthanYoQ/Invoice-Downloader#dsh-invoice-downloader★ 502
Local IMAP invoice download, OCR, archive, and Excel reimbursement summaries for DeepSeek Harness.
anysearch-team/anysearch-dsh★ 457
AnySearch-powered real-time web and vertical search provider for DeepSeek Harness.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.