dshbase

插件目录 / Developer / dsh-reveal-files

dsh-reveal-files

未验证 yumm007

✓ 持续维护 基于 1 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

0Stars
0Forks
0未关闭 issue
语言
2026-08-24最近推送
跨平台平台

功能简介

A dual-face DeepSeek Harness plugin that adds a folder icon next to the "Produces" row

我们的评价
未验证 — 尚未实测

A dual-face DeepSeek Harness plugin that adds a folder icon next to the "Produces" row 尚未验证——请自行安装测试。

「未验证」表示我们的自动化 CI 尚未安装过该插件。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

你是插件作者? 想拿到「已验证」标签——提交你自己的验证证据(截图、日志或短视频),我们审核通过后即改为「已验证」。

提交验证证据 ↗

README

dsh-reveal-files

English | 简体中文

A dual-face DeepSeek Harness plugin that makes each produced-file chip in the
「产物」/ "Produces" row (the row of file chips under assistant messages)
open a small dropdown menu with per-file actions: open the file, copy its
path, reveal it in your native file browser, or open a terminal cd'ed into
the file's directory.

Features

  • Each produced file chip opens a compact dropdown menu on click — no
    accidental direct opens, one menu per file:
    • 📂 Open — open with the default application (the original behavior).
    • 📋 Copy file path — copy the absolute path to the system clipboard.
    • 📁 Show in file browser — macOS Finder (open -R, selects the file),
      Linux file manager (xdg-open on the parent folder), Windows Explorer
      (explorer /select,).
    • ⌨️ Open the file's directory in terminal — opens a native terminal
      frontmost, cd'ed into the file's parent directory for further work:
      Terminal.app on macOS, x-terminal-emulator / gnome-terminal /
      konsole on Linux, or cmd on Windows. Every trigger opens a fresh
      window (each action gets its own terminal, no extra permissions needed).
  • Menu labels follow the UI locale (Simplified Chinese / English); the menu
    items carry role="menuitem" and the chips expose aria-haspopup /
    aria-expanded.
  • Relative paths are resolved against the session working directory.
  • Errors (e.g. sandbox denial, unsupported platform) surface inside the open
    menu, which stays open while an action is in flight (items disabled).
  • Zero runtime dependencies beyond the harness itself — Host uses only
    node:child_process; the client uses only the platform's react seed.

Requirements

  • DeepSeek Harness Web (profile web), i.e. dsh web.
  • Node.js >= 22.6.0.
  • A desktop environment the native opener can reach (macOS and Windows always;
    Linux needs a display server or WSL).

Installation

# Install from GitHub (pnpm git spec; #main pins the default branch):
dsh plugin --profile web add github:yumm007/dsh-reveal-files#main

Building from source. GitHub installs build the package during
install; pnpm asks once for an allowBuilds grant, then proceeds. If it
does (or if the build is blocked), add the package to
allowBuilds in your profile's pnpm-workspace.yaml and re-run the
command. A prebuilt npm release skips this step entirely.

dsh plugin forwards the arguments to pnpm inside the profile directory and
then reconciles dsh.profile.bundles. Because the package declares
dsh.bundle.patch, it joins the profile layer stack automatically — no manual
editing of cordis.yml is required.

After installation, restart the web profile:

dsh web

The plugin loads as a bundle on boot: the Host half registers the
POST /api/reveal-files and POST /api/show-in-terminal routes and the
client half mounts the drop-down menu in the produced-files row.

Usage

  1. Let the assistant produce one or more files (any write / edit /
    mutation tool result in a turn).
  2. Under that message, find the produced-files row (「产物」 in Chinese, "Produces" in English) with the file chips.
  3. Click a file chip — a small menu opens with Open / Copy file
    path
    / Show in file browser / Open the file's directory in
    terminal
    ; pick one. The menu closes on selection or on an outside click.
  4. If an action fails, the error appears inside the menu in red; the items
    stay disabled while the action is running.

Configuration

The plugin row in cordis.patch.yml accepts:

- insert:
    - id: dsh-reveal-files
      name: 'dsh-reveal-files'
      config:
        enabled: true          # register the reveal route (default true)
        revealTimeoutMs: 10000 # per-command timeout, ms (default 10000)

Override these in the profile's own cordis.patch.yml if you need to.

How it works

Layer File Responsibility
Host lib/index.js Cordis plugin row dsh-reveal-files (injects webServer and sessions) and registers POST /api/reveal-files (reveal) and POST /api/show-in-terminal (frontmost terminal cd). Runs open -R / xdg-open / explorer /select, and osascript / terminal emulators per platform, resolves relative paths against the session cwd, and returns JSON results.
Client client/client.js Web module (window.__ModuleLoader__.load), registered by the harness client module system. Claims the conversation.chat.turnTail chain with priority: -1 and a select that reads the turn's deliverables data (the same vocabulary the built-in row uses), then renders the chips row plus the two icon buttons.

Why priority: -1?

The turn-tail slot is a chain: entries are tried in ascending priority order
and the first non-null select result wins. The built-in produced-files row
registers at priority 0. Registering at -1 places this plugin's entry
first, so the reveal icon is rendered while keeping identical file-detection
behavior. Without the explicit priority, the two entries would tie at 0 and
the built-in row would silently win.

Uninstall

dsh plugin --profile web remove dsh-reveal-files

The reconcile step also drops the package from dsh.profile.bundles; restart
the web profile afterwards.

Development

For local development against a checkout, install it from disk and re-run
the add after each edit — the profile's dependency is a hard link, so the
installed code follows your working tree:

dsh plugin --profile web add file:/absolute/path/to/dsh-reveal-files
# after editing:        dsh plugin --profile web add file:/absolute/path/to/dsh-reveal-files
# or force a reinstall: pnpm --dir ~/.dsh/profiles/web install --force

The web server serves the client bundle from disk with a rev-hashed URL, so a
refresh picks up client changes; Host route changes require a restart.

Changelog

See CHANGELOG.md.

License

MIT

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-reveal-files」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:yumm007/dsh-reveal-files

Headless(CLI)profile:

dsh plugin --profile headless add github:yumm007/dsh-reveal-files

实测报告

尚未 L3 验证——若已跑过,见下方失败备注。

状态:pending · 最近测试 2026-08-27 · 标记 webonly
备注:验证: web-only;待 L4 web CDP;L4 web CDP runtime-fail on dsh 0.1.0-rc.8. 浏览全部待验证失败 →
安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7795 个插件 →