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 whendescription. The README mentions thatNOTclauses are used to prevent misfires, for example, pure formatting will not loadc-cpp-dev. - In Codex CLI, skills can be invoked via
$debug-methodologyetc. - In Kimi CLI, skills can be invoked via
/skill:debug-methodologyetc. - 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
enabledisfalseand if the lineid: embedded-workbenchexists incordis.patch.yml. - If the plugin manager refuses to install, confirm that
@deepseek-ai/*packages are declared inpeerDependenciesrather thandependencies. - 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.mdto report privately. logicprobehas been split into a separate plugin; the README states thatPlan Verification Gatedepends onlogicprobe.
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: