Skip to content

HR2AY/DSH-Plan-Graph

31Last commit Aug 16, 2026

DSH-Plan-Graph DSH plugin

The plugin adds a "Plan Graph" tab to the DSH session view ring. It provides a pan/zoom canvas with status-colored node cards, node details, hide-tool-calls and group-by-turn toggles, follow latest, and a "Merge into conversation" feature. It also includes favorites, a node context menu, and locate-in-conversation functionality.

How to install the DSH-Plan-Graph DSH plugin

dsh plugin --profile demo add ./plan-graph-bundle

Copying does not run this command. Review the repository and version before installing the DSH-Plan-Graph DSH plugin.

DSH-Plan-Graph DSH plugin data source

DSH-Plan-Graph DSH plugin snapshot date: Aug 16, 2026

discovered

What the DSH-Plan-Graph DSH plugin can do

  • Renders an interactive flow graph of tool calls and messages from the conversation snapshot.
  • Provides favorites panel persisted in localStorage per session, up to 100 entries, with add via drag or context menu.
  • Node context menu with add/remove favorite, locate in conversation, copy node info, and view details.
  • Locate in conversation maps any node to its chat row using callId, seq, or finalNode.seq, with MutationObserver and 10s timeout fallback.
  • Hide tool calls toggle (requires optional chatNodeVisibility service for chat page filtering).
  • Group by turn toggle, follow latest, and merge into conversation sidebar.

Where the DSH-Plan-Graph DSH plugin fits

  • Debugging a complex agent session by visualizing the order and status of tool calls and messages.
  • Quickly locating a specific tool call in the conversation chat from the graph.
  • Saving favorite nodes (e.g., important steps) for quick reference within a session.
  • Understanding the flow of a multi-step reasoning process with user inputs, assistant outputs, and tool calls.
  • Presenting a session's execution graph to colleagues or during analysis.

Who the DSH-Plan-Graph DSH plugin is for

  • DSH users who need to analyze or debug agent sessions with tool calls.
  • Developers building or testing DSH-based agents who want a visual timeline of interactions.

DSH-Plan-Graph DSH plugin limitations

  • Only works within the DSH web surface (client-side plugin).
  • Hide tool calls on the chat page requires an unpatched ui-conversation that consumes the optional chatNodeVisibility service; otherwise it only affects the graph.
  • Favorites are persisted per session in localStorage, capped at 100 entries, and not shared across sessions.
  • Locate in conversation relies on a `data-chat-flow-key` anchor; if a future DSH renames it, the feature silently falls back to in-graph locate.
  • The plugin is built from source (client.body.js) and requires a build step (prepare script) which must be allowed in pnpm-workspace.yaml when installing from GitHub.

DSH-Plan-Graph DSH plugin: from the repository README

Quoted from the HR2AY/DSH-Plan-Graph README, the upstream source of the DSH-Plan-Graph DSH plugin. Copyright remains with the original authors.

An out-of-tree [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) plugin bundle: an interactive flow graph of a session's tool calls and messages, rendered client-side from the conversation snapshot. The plugin adds a "Plan Graph" tab to the session view ring (pan/zoom canvas, status-colored node cards, node details, hide-tool-calls and group-by-turn toggles, follow latest, and "Merge into conversation" into the real right sidebar). pkg-3 adds three features on top of the graph: - **Favorites** — a panel centered at the bottom of the view, opened from the toolbar button (colored kind tiles + summary + time). Per-session, persisted as JSON in `localStorage` under `dsh.plan-graph.fav.<sessionId>`, deduped by node id, capped at 100. Add via the node context menu or by dragging a node onto the toolbar favorites button. Click an entry to center the graph on that node with a flash highlight; if the node has left the current window (partial finished, node paged out), the click falls back to the matching chat row by seq/callId. Removal goes through the node context menu. - **Node context menu** — right-click a node for: add/remove favorite, locate in conversation (tool-c

Read the full READMERepository license: MIT

DSH-Plan-Graph DSH plugin questions

How do I install the DSH Plan Graph plugin?

You can install it from a local directory, GitHub source, tarball, or npm. For example, run `dsh plugin --profile demo add ./plan-graph-bundle` from the directory containing the package. If installing from GitHub sources, you need to allow the build script in your profile's `pnpm-workspace.yaml` by adding `dsh-plan-graph: true` under `allowBuilds`.

What does the 'Hide tool calls' toggle do?

The toggle hides tool-call nodes from the graph. However, it also provides an optional `chatNodeVisibility` service. If your DSH deployment's ui-conversation does not consume this service, the toggle will only hide nodes on the graph, not in the chat view. To get live chat filtering, you need a patched ui-conversation that uses the service.

Can I save favorite nodes across sessions?

No, favorites are stored per session in localStorage under the key `dsh.plan-graph.fav.<sessionId>`. They are not shared between different sessions. You can add up to 100 favorites per session via the node context menu or by dragging a node onto the toolbar favorites button.

How does 'Locate in conversation' work?

It maps any graph node to its corresponding chat row. Tool-call nodes use `callId`, assistant output nodes use `data.finalNode.seq`, and other nodes (user input, steering, context) use `data.seq`. It then waits for the `data-chat-flow-key` anchor via MutationObserver, scrolls it into view, and flashes it. If the node has left the current window, it falls back to in-graph locate after a 10-second timeout.

What are the limitations of this plugin?

The plugin only works within the DSH web surface. The hide tool calls feature on the chat page requires an optional service that may not be available in all deployments. Favorites are limited to 100 per session and stored in localStorage. The locate-in-conversation feature relies on a specific HTML anchor that could change in future DSH versions, causing a silent fallback. Additionally, when installing from GitHub, you must allow the build script in pnpm-workspace.yaml.