dsh-typora-links:在 DSH 对话里用 Typora 打开 Markdown 链接

前言

在 DeepSeek Harness(DSH)里和智能体协作时,对话里经常出现本地 .md 或 .markdown 文件链接。默认行为是在客户端右侧边栏做应用内预览。如果你习惯用 Typora 编辑和阅读 Markdown,每次在预览里看一遍再切到外部编辑器,会多一步切换。

dsh-typora-links 是社区插件,由 Mengnan578 维护,归类为客户端插件。它把「普通单击」对话里的本地 Markdown 链接改成在 Typora 中打开,同时保留修饰键点击走 DSH 自带预览的退路,失败时也会回退到预览,避免点击无响应。

这是什么

插件全名 dsh-typora-links,当前 npm 版本为 0.1.1,许可证 MIT。一句话定位:在 DSH 对话中,用 Typora 打开 Markdown 文件链接,替代默认的右侧预览(plain click);修饰键点击仍可使用自带预览。

运行环境要求(来自 README):

  • DeepSeek Harness Desktop(Web 客户端)>= 0.2.1-rc.2
  • macOS(实践中会查找 macOS Typora 应用包)
  • 已安装 Typora(/Applications/Typora.app,bundle id abnerworks.Typora)

插件不修改系统默认应用,不新增宿主 HTTP 路由,不执行 shell,也不自行读写文件;通过 DSH 已认证的 Session Remote 发起原生打开。

核心功能

下面介绍已文档说明的行为,均可在项目 README 中核对。

  1. 普通单击本地 .md / .markdown 链接 → Typora 打开对应文件。
  2. ⌘ / Ctrl / Shift / Alt + 单击 → 仍使用 DSH 自带的右侧预览(逃生通道)。
  3. 任意失败(文件不存在、宿主拒绝、Typora 不可用)→ 自动回退到自带预览,单击不会丢失。
  4. HTTP 链接、非 Markdown 文件、文件树、投递卡片等保持 DSH 原有行为。
  5. 工具行路径与 @file 提及走同一套导航入口,也会在 Typora 中打开;文件树与投递卡片不受影响。

安装与启用

推荐从 npm 安装(命令须与官方 README 一致):

dsh plugin --profile desktop add dsh-typora-links

从 GitHub 添加:

dsh plugin --profile desktop add github:Mengnan578/dsh-typora-links

本地开发检出时使用 file: 路径:

dsh plugin --profile desktop add file:/path/to/dsh-typora-links

若系统 PATH 中没有 dsh 命令,可通过应用内 Settings → Plugins 安装,或手动编辑 ~/.dsh/profiles/desktop/package.json,在 dependencies 与 dsh.profile.bundles 中加入 dsh-typora-links,在 ~/.dsh/profiles/desktop 下执行 pnpm install 后重启 DSH。

卸载:

dsh plugin --profile desktop remove dsh-typora-links

或从 profile 中移除 bundle 并重启,行为恢复为原版 DSH。

典型用法

安装并重启 DSH 后,在对话中单击智能体刚写入的 Markdown 文件链接即可:Typora 会前置并打开该文件。

需要继续在 DSH 内预览时,按住 ⌘(macOS)或 Ctrl / Shift / Alt 再点击链接。

可选配置

在 ~/.dsh/profiles/desktop/cordis.patch.yml 中对应 bundle 行可写:

- id: typora-links
  config:
    appName: Typora
    bundleId: abnerworks.Typora
    extensions: [".md", ".markdown"]
    gestureWindowMs: 900
    requireExplicitApp: false
字段 默认值 含义
appName Typora 在 macOS 文件处理器中匹配的应用显示名。
bundleId abnerworks.Typora Bundle id,优先于显示名。
extensions [".md", ".markdown"] 从预览中接管的扩展名;可省略前导点。
gestureWindowMs 900 单击后多长时间内仍算作该次点击触发的打开。
requireExplicitApp false 为 true 时,若无匹配的 Typora 处理器则回退预览,不用系统默认应用。

若 appName 与 bundleId 都匹配不到处理器,插件会请 DSH 用默认应用打开(常见环境下默认即为 Typora)。默认配置通常可直接使用。

工作机制(简述)

README 给出的调用链大意如下:在对话点击时拦截 openResource,将 dsh-resource://file/session/... 解析为绝对路径,查询 Typora 处理器,经 session.openWorkspacePath 打开;成功则结束,失败则走原来的预览打开。标签页级导航(openResourceIn)不受影响,故文件树、标签条、投递卡片行为不变。

适用场景与注意

适合谁:在 macOS 上使用 DSH Desktop,且希望对话里的 Markdown 链接默认在 Typora 中打开、偶尔仍用 DSH 预览的开发者。

权限与安全:插件以当前 DSH 进程权限运行,安装前建议阅读源码与 LICENSE。README 说明其无宿主路由、无命令执行、无自行文件读写;原生打开经 Session Remote,由 Host 校验路径映射与应用 id。

限制(来自 README):

  • 仅 Host 文件系统能映射的路径可打开;工作区外的绝对路径可能被拒绝并回退预览。
  • dsh-resource://file/absolute/...(无 session)类地址会被忽略。
  • 依赖 DSH 内部接口 sidebarRight.openResource、workspaceFiles.stat、session.openWorkspacePath 等;DSH 升级若变更这些接口,插件行为可能失效,但预览仍可用。
  • 无 Windows 专用启动逻辑;文档写明仅在 macOS 验证。

验证:项目内可执行 npm test;浏览器控制台中原生打开失败会输出 [typora-links] ... 及原因。插件无设置页、无注册命令。

DSH 生态采用「一切皆插件」思路;社区目录站点 SkillHub 为独立收录,与 DeepSeek / 幻方无官方从属关系。本插件在目录页分类为客户端,GitHub 星标数以各站点当时显示为准(抓取时为 0)。

结尾

若你的主编辑器是 Typora,dsh-typora-links 用最小改动把 DSH 对话里的 Markdown 链接接到外部应用,并保留修饰键预览与失败回退,减少「点了却在侧边栏看」与「点了没反应」两类摩擦。

  • 目录页:https://www.skillhub.cn/plugins/Mengnan578/dsh-typora-links
  • 源码与文档:https://github.com/Mengnan578/dsh-typora-links
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye