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
羽毛球分组比赛记分
小程序二维码

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

小夜