DSH Workbench turns file operations in DeepSeek Harness into a focused, Codex-like file workspace.
Click a file path in a DSH Web session and inspect it in a persistent right-side panel—without losing the conversation context.
If this project is helpful to you, please consider giving it a star.
The demo shows a real DSH Web session with the conversation on the left and the Workbench showing a captured package.json diff, multiple tabs, file search, and a workspace tree on the right. Read-only files stay readable as source; captured writes and edits open as focused diffs.
read → read-only source view
write/edit → captured DSH diff
- Keep the conversation and the file you are inspecting visible together.
- See real DSH write/edit changes, with the captured before/after content.
- Read files as normal source code—no fake Git HEAD diff and no noisy activity timeline.
- Open several files, switch between tabs, refresh them, copy content or paths, and resize the panel. A tree or Quick Open click uses one italic preview tab (like VS Code); double-click the file or tab to keep it. Conversation writes still open a kept tab.
- Use desktop-style shortcuts:
⌥⌘B(or the Session header Workbench control next to Session log) to toggle the panel,⌘⇧E(or the tab-bar control) to show or hide the file tree,⌘Pto open a file, tree search to locate a file without opening it,⌘F/⌘Lto find or jump in the preview,⌘Wto close a file, and⌘1–⌘9to switch tabs. Collapse every folder from the tree toolbar, or drag / right-click a file to insert its path into the chat input. - UI copy follows the DSH language setting (中文 / English).
Install the released plugin into the web profile, then restart DSH Web:
dsh plugin --profile web add dsh-workbench
dsh webIf the dsh command is not available yet, use the package-manager fallback:
pnpm dlx @deepseek-ai/dsh plugin --profile web add dsh-workbench
pnpm dlx @deepseek-ai/dsh webTo run the version currently checked out from GitHub:
git clone https://github.com/lee259/dsh-workbench.git
cd dsh-workbench
pnpm install
pnpm run build
dsh plugin --profile web add "$(pwd)"
dsh webAfter changing the plugin, run pnpm run build again and restart dsh web.
For local development or a quick test:
pnpm start -- /absolute/path/to/your/projectThis builds the plugin, registers the local bundle in the target project, and starts DSH Web. Without a path, it uses the current directory.
| DSH operation | Workbench view |
|---|---|
read |
Read-only CodeMirror source view |
write |
Diff against the captured write baseline |
edit |
Diff against the captured edit baseline |
| Workspace file mention | Read-only source view |
The host listens to official session events (tool/call, tool/result, and tool/code-dispatch). When dsh-tool-fs provides meta.diffs, those diffs are preferred. The plugin never invents a Git HEAD diff when no DSH write was captured.
pnpm install
pnpm test
pnpm start -- /absolute/path/to/your/projectThe plugin follows the standard Cordis contract:
- Host:
name,inject,apply(ctx)fromsrc/index.ts - Client:
dsh.client,exports["./client"], andwindow.__ModuleLoader__.load - Styles:
src/client/styles.css - UI strings:
src/shared/i18n.ts
The target is a Codex-class file workspace beside the DSH conversation: inspect, navigate, and review what the agent touched. It stays a workspace, not an IDE, and it never invents a Git HEAD diff when no DSH write was captured.
- Read-only previews for
readand file mentions - Captured DSH diffs for
write/edit - Persistent, resizable right-side workspace aligned with the host conversation chrome
- Multi-file tabs with a VS Code-style italic preview tab, refresh, copy, and desktop shortcuts
- In-file find / go-to-line, plus conversation
:line/#Llinetargets - Chinese / English UI following DSH locale
- Quick Open (
⌘/Ctrl+P) and tree search that locates without opening - Workspace file tree with breadcrumbs, hide/show, keyboard navigation, collapse-all, and path insert into the composer
- Syntax highlighting, folding, and live refresh when the workspace changes on disk
- Image previews and rendered Markdown previews, including relative Markdown images
- Last-turn / session change review: a file list of captured DSH writes with
+/−, jump between them (Codex Review’s “Last turn”, from session events rather than Git) - Diff hunk navigation and a short change summary on each captured write
- Follow the agent: auto-open or reveal files as DSH writes them, and keep the tree in sync
- Workspace content search (
⌘/Ctrl+⇧+F) in addition to filename Quick Open - Attach a file or folder from the tree as composer context, not only insert a path
- Detect and associate the Git worktree for the current workspace, showing worktree metadata without inventing a Git
HEADdiff
- Open-in-editor and reveal-in-folder
- Inline comments on a diff line that send guidance back to the composer
- Native DSH panel controls and layout slots, if the host exposes a usable one
- Pluggable workspace panels (Files / Review, and later DSH tools)
