Introduction¶
DeepSeek Harness (DSH) traces usually present semantic interactions, but the underlying HTTP exchanges remain a black box for debugging. dsh-trace adds a “Request Tracing” tab to DSH Web, turning model requests from “black-box calls” into complete, inspectable HTTP exchange records.
Plugin Positioning¶
dsh-trace is a Web plugin for DeepSeek Harness, maintained by weekitmo. It is currently located in the weekitmo/oh-my-dsh-plugins monorepo and uses the @weekit/dsh-trace package.
Installation and Enablement¶
Before installing, ensure the environment meets the following requirements:
- Node.js ^22.19.0 or >=24.0.0
- pnpm 11.7.0
- DeepSeek Harness 0.1.2-alpha.2
Run the following commands in the plugin source directory:
pnpm install --frozen-lockfile
pnpm run build
dsh plugin --profile web add .
After installation, restart DSH Web:
dsh web
Core Features¶
The plugin adds a “Request Tracing” tab next to the DSH trace and filters requests by the current session. It records the actual outbound HTTP method, URL, request headers, request body, response status, response headers, response body, duration, and retry count.
In the details view, data can be viewed through two modes:
- Conversation View: Reconstructs requests and responses into a readable conversation structure, showing request context, model response, thinking process, tool definitions, tool calls, and tool results.
- API Data: View the request overview, request headers, response headers, and formatted or raw request/response body.
The plugin supports the following formats:
- Model protocols: OpenAI Chat Completions, OpenAI Responses, Anthropic, and common Gemini-compatible request and response formats.
- Data content: plain JSON, SSE streaming responses, reasoning content, tool calls, tool results, and attachment markers.
The request list supports automatic refresh, manual refresh, cursor pagination, copying URLs, displaying the retention deadline for each record, and clearing trace records for the current session.
For UI adaptation:
- Desktop: the list and details use independent scroll areas, and no request is automatically selected by default.
- Mobile: preserves the flow from list to details and back, without requiring horizontal scrolling.
Retention and Settings¶
By default, only the last 24 hours are retained. Configure this in DSH Settings > General > Request Tracing Retention:
- Last 24 hours
- Last 3 days
- Last 7 days
- Custom value, with hours or days as the unit
Data is stored in the plugin’s own SQLite database:
$DSH_HOME/dsh-trace/requests.sqlite
Usage¶
- Open a DSH session that already has content.
- Switch to “Request Tracing” at the top of the session.
- Select a model HTTP request from the request list on the left.
- Switch between “Conversation View” and “API Data” at the top of the details.
Limitations and Notes¶
- Capture scope: Only model requests issued by DSH in the
llm/streamcontext throughglobalThis.fetchare captured. Browser RPC, tool calls, and HTTP requests from other plugins do not enter this list. - Data ownership: Request tracing is an enhanced view of the official trace, not a Session event, and does not enter Session exports or fork history.
- Privacy and redaction: A generic redaction step is applied before data is written to disk, including common credential request headers and credentials in URL query parameters. However, prompts, tool definitions, model output, custom request headers, and business payloads may still contain private or sensitive business data.
- Configuration effect: Changes to the retention time take effect directly from the settings page. Changes to the capture byte limit or count limit require restarting the DSH Web instance where the plugin is installed.
Summary¶
dsh-trace turns previously invisible HTTP exchange records into visible debugging data. Combined with its redaction mechanism, it is suitable for developers who need to inspect model call details. For the related directory and source code, refer to: weekitmo/dsh-trace