Introduction

In tools like DSH (DeepSeek Harness) that extend session capabilities through plugins, developers often need to inject domain-specific rules into the model context. This is especially prominent in embedded C/C++ firmware development: constraints like FreeRTOS, interrupts, NVM storage, Keil MDK (AC5/AC6), ARMCLANG, HardFault analysis, state machines, LVGL, cannot rely solely on general code generation.

Below is an introduction to AmethystLuna/embedded-workbench. This is a plugin repository for embedded firmware development and provides a native cordis bundle for DeepSeek Harness (DSH).

What is this

AmethystLuna/embedded-workbench is an embedded C/C++ firmware development toolkit. A single sentence from the documentation defines it as: covering FreeRTOS, interrupts, NVM storage, Keil MDK (AC5/AC6), ARMCLANG, HardFault analysis, state machines, architectural principles, and LVGL pitfalls.

The repository is maintained by AmethystLuna with an MIT license. Collected data confirms the npm package name is dsh-embedded-workbench version 0.8.4; it requires Node engine >=20, DSH engine dsh >=0.1.0-rc.7, and compatible profiles are headless. peerDependencies confirms the presence of @deepseek-ai/cordis, though the full version constraints were not provided in the verified data.

Core Components

Skills

The README/package.json description mentions “8 skills,” but the scraped README skills table only lists the 7 skills below; logicprobe has been split into a separate plugin.

Skill Description in docs
embedded-workbench Guidance skill: workflow, strategy, sub-agent mapping, proactive suggestions, cross-platform tool mapping, documentation templates
debug-methodology 8 debugging rules, fix criteria, iterative debugging case studies
embedded-firmware-dev FreeRTOS, interrupts, NVM storage, async lifecycle, boundary analysis, architectural principles, LVGL pitfalls
keil-mdk-build UV4 CLI, ARM Compiler 5/6, .map analysis, bundle merging, build diagnostics
c-cpp-dev C/C++ code generation, style, memory layout, refactoring
state-machine-design State models, retries, timeouts, transition gating, implementation patterns
hardfault-triage Processor exception classification: fault registers, stack frames, PC source code location, root cause classification

Agents

The documentation lists 4 agents:

Agent Description
architecture-steward Read-only planning: design packages, module boundaries, slicing
design-reviewer Design document fact-checking: verifying claims against codebase facts one by one
execution-worker Plan → Approval → Implementation loop, including compilation verification
quality-coordinator Implementation review: bug finding, compliance checks, end-to-end integrity

In the DSH native bundle section, the documentation states that these 4 custom agents were intentionally not ported, as DSH native subagent tools already cover parallel multi-agent work.

DSH First Step Gate

This plugin provides a native cordis bundle for DSH and registers a model-visible directory entry cordis_inspect. The bundle injects 1% Rule, Red Flags, and Plan Verification Gate gate text on the first model step of each agent session.

The README states that Plan Verification Gate depends on logicprobe; logicprobe has been split into a separate plugin.

Installation and Activation

DSH

The DSH native bundle installation command given in the README troubleshooting is:

dsh plugin add "github:AmethystLuna/embedded-workbench"

If using the web profile, note that the npm package name is non-scope dsh-embedded-workbench. The dependency keys in package.json and dsh.profile.bundles must both be dsh-embedded-workbench; otherwise, the DSH loader will fail to start because it cannot find node_modules/dsh-embedded-workbench.

Other Platforms

The documentation also provides installation methods for the following platforms.

Claude Code

First, modify ~/.claude/settings.json and add the marketplace to extraKnownMarketplaces:

{
  "extraKnownMarketplaces": {
    "embedded-workbench": {
      "source": {
        "source": "github",
        "repo": "AmethystLuna/embedded-workbench"
      }
    }
  }
}

Then execute the CLI installation:

claude plugin install embedded-workbench@embedded-workbench

You can also manually clone it to the Claude plugin directory:

git clone https://github.com/AmethystLuna/embedded-workbench.git ~/.claude/plugins/dev/embedded-workbench

Then enable it in ~/.claude/settings.json:

{
  "enabledPlugins": {
    "embedded-workbench@dev": true
  }
}

Codex CLI

Add the marketplace then install:

codex plugin marketplace add AmethystLuna/embedded-workbench
codex plugin install embedded-workbench

You can also manually clone:

git clone https://github.com/AmethystLuna/embedded-workbench.git ~/.codex/plugins/embedded-workbench

Skills can be invoked via $debug-methodology etc.

Cursor

Clone to the Cursor plugin directory:

git clone https://github.com/AmethystLuna/embedded-workbench.git ~/.cursor/plugins/embedded-workbench

Or execute via the plugin market UI:

/add-plugin AmethystLuna/embedded-workbench

Kimi CLI

Install via the Kimi plugin manager:

/plugins install https://github.com/AmethystLuna/embedded-workbench.git

Or manually clone:

git clone https://github.com/AmethystLuna/embedded-workbench.git ~/.kimi/plugins/embedded-workbench

Skills can be invoked via /skill:debug-methodology etc.

OpenCode

Add to the plugin array in opencode.json:

{
  "plugin": [
    "embedded-workbench@git+https://github.com/AmethystLuna/embedded-workbench.git"
  ]
}

ZCode

ZCode has no plugin store; the documentation provides a manual copy method:

git clone https://github.com/AmethystLuna/embedded-workbench.git
cp -r embedded-workbench/skills/* .zcode/skills/

Skills can be invoked via $skill-name.

DSH Configuration

The DSH bundle supports the following configuration items:

Key Type Default Description
enabled boolean true Set to false to disable first step Gate injection
gateContent string Built-in gate text Override text injected into the initial model context

It can be overridden in the profile’s cordis.patch.yml by id: embedded-workbench:

- insert:
    - id: embedded-workbench
      name: 'dsh-embedded-workbench'
      config:
        enabled: true
        gateContent: |
          ...

You need to restart DSH after modifying the configuration.

Typical Usage

  • In a DSH session, you can say “Use Multi-Agent Workflow,” or call Skill("embedded-workbench") to load the complete workflow system.
  • Domain skills will activate automatically when a task matches its Use when description. The README mentions that NOT clauses are used to prevent misfires, for example, pure formatting will not load c-cpp-dev.
  • In Codex CLI, skills can be invoked via $debug-methodology etc.
  • In Kimi CLI, skills can be invoked via /skill:debug-methodology etc.
  • In ZCode, skills can be invoked via $skill-name.

Use Cases and Notes

Suitable for developers who need to load embedded C/C++ domain skills in DSH, Claude Code, Codex CLI, Cursor, Kimi CLI, OpenCode, or ZCode. Especially suitable for scenarios where you want to incorporate debugging methods, firmware constraints, Keil builds, state machine design, HardFault analysis, and other rules into the session context.

The plugin runs with the current DSH process permissions. Before installing, you should check the source code, the MIT license, and the profile configuration. The DSH permission boundaries given in the documentation are:

  • Runtime only reads the skills/ directory within the package to register skills via the DSH standard filesystem skill provider.
  • Injects configured gate text into the model context in the first round of the session.
  • Does not read credentials, does not initiate network connections, and does not access user data outside the DSH session context.
  • When actually using skills, the model reads project files just like other coding skills, following user instructions.

Other notes:

  • If DSH skills are not visible, confirm that the DSH version supports ctx.skills / Agent Skills discovery, and restart the profile after installation.
  • If the Gate is not injected, check if enabled is false and if the line id: embedded-workbench exists in cordis.patch.yml.
  • If the plugin manager refuses to install, confirm that @deepseek-ai/* packages are declared in peerDependencies rather than dependencies.
  • If DSH still does not see skills after manual copying, use the native bundle install command:
  dsh plugin add "github:AmethystLuna/embedded-workbench"
  • Do not publicly create issues for security vulnerabilities. The documentation suggests using the GitHub Security Advisory or the contact method in SECURITY.md to report privately.
  • logicprobe has been split into a separate plugin; the README states that Plan Verification Gate depends on logicprobe.

Conclusion

The value of AmethystLuna/embedded-workbench is packaging common domain rules, debugging methods, and the DSH first step gate from embedded firmware development into an installable plugin. The verified documentation does not provide a directory link; the GitHub repository address is:

https://github.com/AmethystLuna/embedded-workbench