Introduction¶
When collaborating with agents in DeepSeek Harness (DSH), file paths often appear in replies: relative paths, absolute paths, or tilde (~) home directory notations. The official renderer automatically converts URLs into clickable links, but local paths are usually plain text, requiring an extra step to copy and then open them in a file manager or terminal.
Here we introduce the community plugin dsh-file-mentions (maintained by a903067276-rgb). It turns backtick-wrapped paths into clickable inline links and appends a “mentioned files” chip list at the end of each turn, offering an interaction style similar to Codex. This plugin is implemented with zero dependencies, categorized as a DSH client-side plugin, and currently has 11 GitHub stars, 3 forks, and is licensed under MIT.
What It Is¶
dsh-file-mentions is a DSH web plugin (bundle + client, see package.json in the repository root). Its core capabilities include three main aspects:
- Inline path clicking: Opens the file or its containing directory using the system’s default application.
- Folder button next to paths: Locates (reveals) the path in the file manager.
- “Mentioned files” chip list at turn end: Clicking a file name previews its content within DSH; the folder icon in the list also triggers reveal.
URLs are still handled by the official renderer; this plugin does not alter URL behavior. The project is independently maintained by community members and is not an official DeepSeek product.
Core Features¶
The plugin recognizes backtick-wrapped paths as interactive objects, supporting ~/ expansion, relative paths (resolved relative to the current session’s working directory), and absolute paths in macOS/Linux/Windows formats. Non-existent paths are silently ignored without throwing errors that interrupt reading.
| Interaction Location | Action | Effect |
|---|---|---|
| Inline path text | Click | Opens the file with the default app, or opens the directory |
| Folder icon next to inline path | Click | Reveals the path in the file manager |
| “Mentioned files” chip | Click name | Previews file content within DSH |
| Folder icon in chip list | Click | Reveals the path in the file manager |
| Inline URL | Click | Opens in the browser via official autolink |
Path Visibility Scope: Local files under the user’s home directory are clickable by default without configuration. External drives or network volumes (e.g., /Volumes/USB on macOS) must have their root paths registered in the external drive whitelist, one per line. System disk protection automatically rejects whitelist root paths containing protected directories like /System, /etc, or \Windows on Windows.
Platform Support: Fully tested on macOS (including paths with Chinese characters). Linux and Windows are not yet fully validated in the repository, but corresponding command branches and path parsing have been implemented.
Relation to Official Capabilities: Inline clicking relies on the agent wrapping paths in backticks (consistent with Codex output conventions). Bare paths in the body text without backticks will not become clickable. The official “produced files” list can coexist with this plugin: when an official list is output, it is displayed preferentially; otherwise, the plugin shows the mentioned files list.
Installation and Enabling¶
The plugin is installed via the official DSH profile manager. The repository is a bundle plugin (dsh.bundle + dsh.client). Ensure pnpm is in your PATH before installation (dsh plugin forwards to pnpm).
dsh plugin --profile web add "github:a903067276-rgb/dsh-file-mentions#main"
After installation, restart dsh web. The bundle layer is assembled at startup, and Hot Module Replacement (HMR) does not apply.
Version Compatibility (per README, maintained on a best-effort basis, not guaranteed for all DSH versions):
- Requires DSH web >= 0.1.0-rc.6 (e.g.,
npx @deepseek-ai/dsh web). - DSH 0.1.0-rc.6 and newer (including 0.1.1-rc.1/rc.2): defaults to the
mainbranch. - Conservative fallback: DSH 0.1.0-rc.7/rc.8 can install
#v1.0.8; DSH 0.1.0-rc.6 can use the frozen tagrc6-compat(no longer maintained).
dsh plugin add github:a903067276-rgb/dsh-file-mentions#v1.0.8
Manual mounting instructions are in docs/install.md. Note: Official bundle installation and manual mounting are mutually exclusive; manual mounting requires only one entry in ~/.dsh/cordis.patch.yml—duplicate registrations cause routing conflicts.
Community directory page: SkillHub — dsh-file-mentions. SkillHub is an independent community site with no official affiliation to DeepSeek / High-Flyer.
Typical Usage¶
Have the agent wrap paths in backticks in its replies. They become clickable inline, and the chip list appears automatically at the end without extra configuration.
Example (agent output):
Please check `~/docs/plan.md` and `./src/index.js`.
Clicking `~/docs/plan.md` opens the file with the system’s default application; clicking the folder icon next to the path reveals it in the file manager.
External Drive Paths: If a path is outside the home directory (e.g., /Volumes/USB/project/readme.txt), open DSH Settings → Plugins → file-mentions, add /Volumes/USB to the external drive whitelist. Changes take effect immediately after saving—no restart required.
Use Cases and Notes¶
Who It’s For: Developers who frequently read agent replies containing local paths in DSH web and want to reduce copy-paste steps. macOS users can use it directly as per the README. Linux/Windows users can try it first; if issues arise, submit an issue or PR to the repository.
Runtime Permissions: Operations like opening files or revealing directories are performed via plugin host routes (e.g., /api/file-mentions/open), executing system commands with the current dsh process’s user permissions. Before installation, it’s recommended to read the source code and MIT license to ensure the behavior aligns with your security expectations. Path probing and whitelist validation occur under same-origin guards, using Node standard library and execFile to avoid shell injection.
Implementation Overview (for troubleshooting): The host lib/index.js provides APIs for existence checks, open/reveal, and whitelist read/write. The client lib/client.js collects paths from conversation events, handles inline clicks via document-level delegation, and uses MutationObserver to restore folder buttons after React re-renders. Details are in docs/architecture.md.
Conclusion¶
dsh-file-mentions turns backtick-wrapped paths in DSH replies into clickable inline links and provides an “mentioned files” chip list as a fallback summary. It’s ideal for DSH web users who need frequent jumps to local files. Current version is 1.0.11.
- Community Directory: https://www.skillhub.cn/plugins/a903067276-rgb/dsh-file-mentions
- GitHub Repository: https://github.com/a903067276-rgb/dsh-file-mentions