npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-pathlink

v0.1.3

Published

Ctrl+click file paths and links in DeepSeek Harness chat: paths open their folder in the OS file manager, links open in a new browser tab.

Downloads

830

Readme

dsh-pathlink

中文 · English

在 DeepSeek Harness 对话里,Ctrl+点击文件路径与链接。

自动识别聊天消息(助手回复、用户气泡、代码块、工具卡片)中的文件路径和 URL,用淡淡的虚线下划线标记,Ctrl+点击(macOS 为 ⌘)即可打开:

  • 路径 → 打开所在文件夹——在系统文件管理器中打开该文件所在的文件夹并 选中它(Windows explorer /select、macOS open -R、Linux 用 xdg-open 打开父目录);如果路径本身是目录,则直接打开目录。
  • 链接 → 浏览器新标签页打开——覆盖渲染器未自动转成链接的裸 URL (比如用户消息气泡里的);markdown 链接本身已在新标签页打开。

普通点击不触发任何行为,不会干扰选中、复制等操作。路径不存在时会弹出 toast 提示原因,而不是静默失败。

Ctrl+点击提示

消息中的路径识别

① 悬停路径显示 Ctrl+点击提示,点击后在文件夹中定位该文件 · ② 真实对话中被识别的路径(虚线下划线)。

安装

dsh plugin --profile web add dsh-pathlink

或从 GitHub 安装:

dsh plugin --profile web add github:penguin-oo/dsh-pathlink

安装后重启 Web 界面生效。仅支持 web 配置档(点击面是浏览器)。

使用

  1. 等消息渲染完成后,被识别的路径/链接会带虚线下划线
  2. 按住 Ctrl(macOS 为 )点击。
    • 路径 → 资源管理器/Finder 打开所在文件夹并选中该文件。
    • 链接 → 浏览器新标签页打开。
  3. 相对路径先按该会话的工作目录解析,再按 Harness 进程目录解析; 路径不存在时弹出 toast 提示。

配置

| 键 | 默认值 | 含义 | | --- | --- | --- | | maxPathChars | 1024 | 接受的路径文本最大字符数 |

实现原理

  • 客户端dsh.client,platform web):MutationObserver 驱动的扫描器 监视已渲染的对话容器(data-chat-flow / data-conversation-scroll), 在文本节点中识别路径与 URL,包成惰性行内 span,并用一个捕获阶段委托的 click 监听统一处理。刻意不使用官方 chatFileMentions 缝,避免与内置 deliverables 提供方冲突,同时保证所有表面(正文、行内代码、代码块、 用户消息、工具卡片)行为一致。
  • 宿主端pathlink Remote 服务):只读的 open 方法——按所指向会话的 工作目录解析相对路径、校验存在性、拉起平台文件管理器。无持久状态,不 创建/恢复任何 Agent 或 Session。

开发

npm install
npm run build   # 打包 src/client → lib/client.js
npm run smoke   # Remote 标记 + Typert 清单校验
node scripts/e2e-synthetic.mjs   # 浏览器 E2E,目标 http://127.0.0.1:3738

docs/demo.htmlnode scripts/build-demo.mjs 构建(复用生产识别器), 截图用 node scripts/e2e-screenshot.mjs 生成。

限制

  • 仅 Web 界面(点击面是浏览器);宿主打开器覆盖 Windows / macOS / Linux。
  • 路径识别基于启发式:中文目录名可正常保留;若路径末段是裸英文单词 (无扩展名)且紧接英文正文,偶有过匹配——存在性校验会把这类误判挡在 「路径不存在」toast 里,不会打开错误的东西。

许可证

MIT

致谢

为 DeepSeek Harness 插件生态而作——感谢 LINUX DO 社区的反馈与测试。