DeepSHPlugins
dsh-reveal-files 專案預覽
GITHUB / COMMUNITY PROJECT

dsh-reveal-files

UI 增強JavaScriptMIT

把每個產物檔案卡片變成按檔案操作的下拉選單:開啟檔案、複製路徑、在系統檔案瀏覽器中定位,或開啟終端並進入其目錄。

1 Starsyumm007 更新時間 2026-08-24
訪問 GitHub 倉庫
dsh-reveal-files 專案預覽

專案介紹

中文

把每個產物檔案卡片變成按檔案操作的下拉選單:開啟檔案、複製路徑、在系統檔案瀏覽器中定位,或開啟終端並進入其目錄。

English

Turns each produced-file chip into a per-file menu: open the file, copy its path, reveal it in the native file browser, or open a terminal cd-ed into its directory.

專案資訊與收錄訊號

快照 2026-09-11
作者 / 組織
yumm007
倉庫
yumm007/dsh-reveal-files
GitHub Stars
1
Forks
0
開發語言
JavaScript
許可證
MIT
最近推送
2026-08-24
Manifest
資料中檢測到宣告

公開倉庫不自動等於可商用;許可證與當前相容性以原專案文件為準。Manifest 和資料評分不構成安裝安全認證。

資料評分

54/ 100
維護活躍
88
文件與實用資訊
100
生態關注度
9
安裝便捷訊號
100
專案宣告訊號
100

近 18 天仍在更新;README 含完整安裝與使用說明;關注度尚低(1)。

評分來自已有資料快照的五維模型,僅作瀏覽參考,不是實際使用評測或安全檢測結論。

安裝與使用

所有專案資料與許可均以對應 GitHub 倉庫為準。

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

複製命令不會自動執行。請先閱讀倉庫文件,確認環境要求與許可證。

專案截圖

倉庫 README

GitHub 原文

已儲存的倉庫文件快照;文件抓取時間未記錄,可能與上方目錄介紹處於不同版本。安裝前請核對當前倉庫說明。

儲存庫檔案保留原文,指令與授權文字不作自動改寫。

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).

  1. Under that message, find the produced-files row (「产物」 in Chinese, "Produces" in English) with the file chips.
  2. 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.

  1. 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

LayerFileResponsibility
Hostlib/index.jsCordis 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.
Clientclient/client.jsWeb 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

使用前核對

安裝步驟、相容版本與授權範圍以原專案當前文件為準。Stars 和評分是快照中的導航訊號。

安裝與排錯 · 專案問題反饋

同類專案