Preface

In the DSH plugin ecosystem, if workflows only execute inside the engine, developers often cannot see nodes, edges, branches, and failure points. asakumizy/dsh-graph-monitor solves this problem: it converts LangGraph-style GRAPH workflow definitions into editable, runnable objects and lights up nodes and edges in real-time during execution.

Below is an introduction to its positioning, core capabilities, enabling methods, and typical usage.

What is it

dsh-graph-monitor is a DSH (DeepSeek Harness) plugin maintained by asakumizy, licensed under MIT.

Its main goals are:

  • Define and run GRAPH workflows;
  • Real-time display of node and edge status during workflow execution;
  • Allow developers to view, edit, and run workflows in the chat, tabs, and settings editor.

Names appearing in the documentation include the repository name asakumizy/dsh-graph-monitor and the name value graph-monitor in package.json.

Core Capabilities

GRAPH Visualization

The plugin provides GRAPH visualization capabilities:

  • Hierarchical topology graph: START → Node → END;
  • SVG rendering;
  • The displayed topology is consistent with the actual execution topology of the engine.

This helps confirm the workflow structure before running and observe the execution path during runtime.

Real-time Node and Edge Status

During execution, the plugin uses colors and animations to distinguish states:

  • Current node: purple pulsing;
  • Completed node: green;
  • Failed node: red;
  • Traversed edge: amber highlight.

These states help developers quickly determine where the process has gone and which node failed.

Custom Workflow

The plugin supports editing workflow JSON via the settings editor, including:

  • Nodes;
  • Edges;
  • Conditional routing;
  • fn processors.

After editing, you can validate and save it to:

~/.dsh/graph-monitor/workflows/*.json

The saved workflow can be used for subsequent runs and viewing.

View Execution Details by Clicking a Node

After clicking a node, you can view:

  • Status;
  • Duration;
  • Input;
  • Output;
  • Error.

This is more direct for debugging failed nodes than just looking at the final output.

Dialogue Integration

The plugin supports dialogue integration:

/workflow
/workflow <workflow-id> <input...>

Where:

  • /workflow: Lists existing workflows;
  • /workflow <workflow-id> <input...>: Runs a specified workflow and displays a card in real-time.

The plugin also provides the graph_monitor_run tool, which can trigger workflow runs in a dialogue.

Run History

The plugin supports reviewing run history and viewing final output. It is suitable for comparing results of multiple runs.

Execution Backend

The plugin supports two nodeExecutor execution backends:

simulated
real

simulated is the default backend, using fixed delays and template outputs.

real mode binds to DSH’s actual capabilities; if required capabilities are missing, it automatically falls back to simulated mode.

Control Flow Primitives

The documentation lists the following control flow primitives:

gate
switch
subgraph
loop
retry
timeout

These primitives are used to define workflow control structures such as conditional branches, subgraphs, loops, retries, and timeouts.

Model-driven Orchestration

The documentation explains that workflows can generate graph editing instructions via emitOps. Supported operations include:

addNode
addEdge
rewire
setEntry
skip

This indicates that orchestration is not just fixed paths, but can also involve the model in modifying graph structures through structured instructions.

Inline Predicate Execution Note

The documentation explicitly states that inline JavaScript predicates are executed by DSH’s codeRuntime, and explicitly states “never eval”.

Installation and Enabling

The documentation does not provide a single official plugin installation command. Below is the enabling process described in two ways based on the documentation.

Dependencies

The plugin depends on:

Node.js >= 18 (ESM)

And declares the following peerDependencies:

@deepseek-ai/cordis ^4.0.1
@deepseek-ai/dsh-home-paths ^0.1.0-rc.6
@deepseek-ai/dsh-session ^0.1.0-rc.6

Method 1: Manual Deployment of Desktop Profile

First, confirm that the plugin has been deployed to the plugins directory of the desktop profile. The target directory in the documentation is:

~/.dsh/profiles/desktop/node_modules/graph-monitor

Then, register the plugin in the desktop profile’s cordis.patch.yml. The documentation example uses an insert list to append entries:

    - id: graph-monitor
      name: 'graph-monitor'
      config:
        nodeExecutor: real

Where nodeExecutor is optional:

simulated
real

simulated is the default backend, suitable for observing process animations; real mode binds to DSH’s actual capabilities and automatically falls back to simulation when capabilities are missing.

Method 2: Bundle Reference

Another way is to add graph-monitor to the bundle list in the profile’s package.json. The documentation example is:

"dsh": { "profile": { "bundles": ["graph-monitor"] } }

This method depends on graph-monitor already existing in the shared layer.

Restart and Create New Session

After installation, DSH Desktop must be restarted.

The toolbars of old sessions are fixed when the session is created, so new toolbars only take effect after creating a new session.

Typical Usage

1. List Workflows

Type in the chat input box:

/workflow

This lists existing available workflows.

2. Run a Specified Workflow

Type in the chat input box:

/workflow text-pipeline hello world

This runs the text-pipeline workflow and displays node and edge status in real-time card form.

3. Run in Graph Monitor Tab

After switching to the Graph Monitor tab on the right side of any session, you can:

  1. Select workflow;
  2. Fill in input;
  3. Run;
  4. Click on a node to view status, duration, input, output, and errors;
  5. View run history and final output.

4. Edit Workflow in Settings

Go to:

Settings → Graph Monitor

Then you can:

  1. Create or edit workflow JSON;
  2. Edit nodes, edges, conditional routing, and fn processors;
  3. Validate;
  4. Save.

The save path is:

~/.dsh/graph-monitor/workflows/*.json

Applicable Scenarios and Notes

Suitable for the following use cases:

  • Need to observe the execution process of GRAPH workflows in DSH;
  • Need to view node input, output, duration, and errors;
  • Need to edit workflow JSON and preserve run history;
  • Need to trigger workflows in chat via /workflow or graph_monitor_run;
  • Need to compare the differences between simulated and real execution backends.

Please note:

  • The documentation does not provide a copyable single official installation command;
  • After installation, DSH Desktop must be restarted;
  • Old session toolbars are fixed at session creation, so new toolbars only take effect after creating a new session;
  • real mode binds to DSH’s actual capabilities and automatically falls back to simulation when capabilities are missing;
  • Inline JavaScript predicates are executed by DSH’s codeRuntime, and the documentation explicitly states “never eval”;
  • The plugin runs with the permissions of the current DSH process, so you should check the source code and license before installing.

Conclusion

The value of asakumizy/dsh-graph-monitor lies in turning DSH’s GRAPH workflows from “only runnable” to “definable, runnable, observable, and editable”. It is suitable for workflow debugging, state observation, and orchestration experimentation in DSH plugin development.

GitHub:

https://github.com/asakumizy/dsh-graph-monitor