DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

File Explorer — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

@jaxzhou/dsh-file-explorer

File Explorer

DeepSeek Harness plugin: a workspace file browser with a per-format preview (rendered Markdown, a JSON tree, 24 syntax grammars, images), shown as a Conversation View tab beside Chat and Trajectory

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add @jaxzhou/dsh-file-explorer@0.1.5
READMECompatibilityVersions

Compatibility and provenance

File Explorer is published as @jaxzhou/dsh-file-explorer and currently resolves to version 0.1.5. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
9/17/2026

Versions

0.1.5stable
9/17/2026
0.1.4stable
9/13/2026
0.1.3stable
9/13/2026
Show 1 more versionCollapse versions
0.1.2stable
9/12/2026

Related plugins

Loading related plugins…

Latest
0.1.5
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
636.2 kB
Files
9
Surface
web
License
MIT
Source
npm
GitHub
★ 0
Weekly downloads
0
Last push
9/17/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in developer-tools.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Sdk Minimal@deepseek-ai/dsh-sdk-minimalThe standalone minimal SDK profile bundle: JSON-RPC, one DeepSeek adapter, persistent shell, and JSONL sessionsSdk App@deepseek-ai/dsh-sdk-appThe dsh SDK profile bundle: stdio JSON-RPC serving and process lifecycle over dsh-baseSubagent Codex@deepseek-ai/dsh-subagent-codexOne-shot Codex subagent provider over the official app-server protocol

README

dsh-file-explorer

English | 中文

Published on npm as @jaxzhou/dsh-file-explorer — the unscoped name dsh-file-explorer belongs to a different author's plugin.

A Files tab for DeepSeek Harness, beside Chat and Trajectory: the session workspace as a tree, and a preview that adapts to what the file is — rendered Markdown, a JSON tree, highlighted source, an image, or plain text. Read-only, no configuration, nothing stored.

dsh plugin --profile web add @jaxzhou/dsh-file-explorer
dsh --profile web

Demo

The Files tab beside Chat and Trajectory: a workspace tree on the left, and a rendered Markdown document on the right whose toolbar carries Copy, Source and Export PDF

15 seconds — click for the full-quality MP4. A primary-school maths workspace: a lesson document rendered with its tables, the Source toggle showing the Markdown behind it, a second document open beside it in its own tab, and Export PDF, which hands the page to the browser's print dialog.

What you get

The left pane is the session's working directory, listed one level at a time, directories first. An expanded level stays expanded while you move between preview tabs.

Clicking a file opens it in a tab, so several files stay open at once — each with its own body and its own wrap setting. A file that is already open is focused rather than reopened, tabs whose names collide show their directory, and the tab's × or a middle click closes one.

The right pane picks each tab's body from the file:

CategoryPreview
MarkdownRendered GFM — headings, tables, task lists, quotes, math, footnotes, images referenced beside the file, highlighted code fences — with a Source toggle and an Export menu
HTMLDrawn as a page in a sandboxed frame: the file's own CSS applies, and its scripts run in an opaque origin that cannot reach this application. With a Source toggle and an Export menu
JSONA collapsible tree with per-value copy, and the same toggle
Source codeSyntax highlighting, line numbers, and a copy button for 24 grammars: TypeScript/JavaScript, shell, Python, Ruby, Go, Rust, Java, C, C++, C#, Kotlin, Swift, PHP, YAML, TOML, INI, HTML, CSS, SCSS, Less, SQL, XML, Lua, MDX
ImagesPNG, JPEG, GIF, WebP, AVIF, BMP, ICO and SVG, drawn to the pane. An SVG goes through <img>, so its scripts never run
Anything elseNumbered plain text — an unmapped suffix (.vue, .proto, .txt) stays plain rather than guessing a wrong grammar

Text previews wrap at their spaces and keep every word whole; an image reads its complete bytes. Every text body carries a Copy control in the pane's toolbar, which copies the file's own text — a rendered Markdown document copies its Markdown source.

A rendered Markdown or HTML document also carries Export, which downloads a file directly — no print dialog — in either of two formats:

FormatWhat it is
PDFA picture of the page, laid out as A4 and sliced to fit. The text in it is not selectable. That is deliberate: a text-mode PDF of a Chinese document would need a CJK font embedded in the plugin, which is megabytes for a preview tool
Word (.docx)A real Word document: headings, lists, tables, code and images, with the text still text — editable, searchable, and rendered with Word's own fonts. Chinese included

A document's own local assets come with it: the images a Markdown file references beside it, and the images and stylesheets an HTML file links to.

Requirements

DeepSeek Harness 0.1.5-rc.2 on the Web surface — dsh web, or a profile composed from @deepseek-ai/dsh-base + @deepseek-ai/dsh-web-app. A headless or SDK profile has no browser and gets no tab. The plugin declares no configuration, so nothing in cordis.yml needs setting.

Install

dsh plugin --profile web add @jaxzhou/dsh-file-explorer
dsh --profile web                 # bundle membership is read at startup

A custom profile needs the Web composition first:

dsh --profile myprofile --from-default-profile web
dsh plugin --profile myprofile add @jaxzhou/dsh-file-explorer
dsh --profile myprofile

Prefer a checkout or a git ref? Nothing needs building — the runtime artifacts are committed:

dsh plugin --profile web add /path/to/dsh-file-explorer
dsh plugin --profile web add github:jaxzhou/dsh-file-explorer

Then open a session that has a workspace and click Files. To confirm the layer landed:

dsh --profile web --dump-config | grep -A 2 jaxzhou-file-explorer

Disable or uninstall

Disable the tab without uninstalling by adding an override to the profile's cordis.patch.yml — it is applied after every bundle layer, and a patchReload: live profile picks it up without a restart:

- id: jaxzhou-file-explorer
  disabled: true

Uninstall with dsh plugin --profile web remove @jaxzhou/dsh-file-explorer, then restart the profile.

Privacy

  • Read-only. Reads go through the harness's own workspaceFiles Remote namespace; the Host's filesystem decides what is readable. The plugin holds no file access, no path resolution, and no credentials of its own.
  • Nothing stored. No disk writes and nothing added to the session log; view state lives in memory and is discarded with the session.
  • Inert Host half. The package's Node side registers no service, tool, prompt section, or event.
  • HTML runs sandboxed. A previewed page's scripts execute in an opaque origin, which cannot read this application's DOM, storage, or session; an exported page is printed with its scripts removed. An SVG draws through <img>, so its scripts never run at all.

Known limitations

  • Preview only — no editing, saving, or diffing.
  • Strict JSON. Comments or a trailing comma make a file JSONC, which JSON.parse rejects — tsconfig.json is the common case. The pane says so and shows the highlighted source instead of guessing at a tree.
  • Text previews stop at 2 000 lines, with a truncation note and no "load more"; binary files report why they cannot be shown.
  • Fixed grammar set. A suffix the shared highlighter does not carry is plain text, never an approximation.
  • Listing only — no search, rename, context menu, or file watching; a level refreshes through Reload.
  • Loaded previews are bounded. A working set of five tabs keeps its content; an older tab stays open and reads again when you return to it.
  • One root. The tree is rooted at the session's working directory, and the Host refuses directory listings outside the workspace root.
  • Markdown pulls in the images beside it. A destination relative to the document is read through the same workspace reader the file itself came from — up to 24 images per document and 8 MiB each. A file mention in inline code, a remote URL, and an absolute path are left to the renderer's own rules: the first stays inert, the second loads directly, and the third is not fetched.
  • HTML previews do not resolve relative assets. A page drawn from a Blob document has no base to resolve its own style.css or images against, so only absolute URLs load there. An export does resolve them — the file it writes is read from a copy that has been made to stand alone — so a document can export with pictures it does not show in the preview.
  • A PDF's text is a picture. Nothing in it can be selected or searched. Export Word instead when the text has to stay text.
  • Long documents are cut at 60 PDF pages, and an image past 8 MiB is left out; both are stated here because a silent cut reads as a complete export.

Contributing

Build, checks, the artifact model, and how the client bundle reaches the browser: CONTRIBUTING.md.

License

MIT — see LICENSE.