dsh-plugin-macos:21 個本地工具,把 macOS 操作交給 DSH 智能體

前言

DSH 的智能體已經能跑 bash,但讓它“在 Mac 上發個通知”“截個屏”“切回深色模式”“讀一下 Safari 當前這個標籤頁”,過去要麼手寫 AppleScript,要麼照舊用一堆 shell 拼出來的命令。智能體能寫代碼,卻沒摸到 Mac。

下面介紹的 wu04186767/dsh-plugin-macos 就是用來補這一層的:它把 21 個日常 Mac 操作打包成帶類型、面向模型的工具,全部在本地通過 child_process 和 osascript 執行,零運行時依賴。

這是什麼

一句話:DSH 插件,把 macOS 原生操作暴露成 21 個模型可調用的工具,分類屬於「工作流」。

  • 維護者:wu04186767
  • 許可證:MIT
  • 版本:package.json 中爲 0.1.0,README 標註兼容性爲 DeepSeek Harness 0.2.x
  • 平臺要求:macOS 13 或更新,README 說明在 macOS 27.2(Apple silicon)上開發與測試
  • 依賴:無,純 ESM,dependencies 爲 0,無構建步驟

它解決的問題很具體:智能體原有的 bash 能力夠不到原生 macOS 操作(通知、截屏、Spotlight、Safari 自動化這類),而每次臨時手寫 AppleScript 既慢又容易出錯。這個插件把這些事提前做成了帶 JSON schema 的工具。

核心功能

README 對設計意圖說得比較明確:覆蓋面要“廣但無聊”,覆蓋日常 Mac 瑣事而不是單一技巧;所有命令都用 argv 數組而非 shell 字符串,避免頁面文本、文件名這類輸入注入 shell 語法;不做破壞性操作。

21 個工具按 README 的分法是三組。

系統讀取

工具 做什麼
macos_info 系統版本、芯片、主機名、運行時長、電池來源、磁盤、內存,只讀
macos_network 主機名、主網卡、IPv4、當前 Wi-Fi SSID,只讀
macos_processes 按 CPU 或內存排序的進程列表,只讀
macos_spotlight 用 Spotlight(mdfind)搜文件,只讀
macos_finder_path 前置 Finder 窗口的 POSIX 路徑,只讀
macos_frontmost_app 最前臺應用的名稱,只讀
macos_screenshot 截屏或截取區域爲 PNG 並返回路徑,需要 Screen Recording 權限

日常操作

工具 做什麼
macos_notify 原生通知橫幅,可帶提示音
macos_say 用系統語音讀出文本
macos_clipboard_read 讀取剪貼板文本,只讀
macos_clipboard_write 覆蓋剪貼板文本
macos_volume 讀取或設置輸出音量 0–100
macos_dark_mode 讀取或切換深色模式
macos_keep_awake 用 caffeinate 保持喚醒,或停止、查看狀態
macos_shortcuts 列出快捷指令,或按名稱執行
macos_open 打開 URL、文件、目錄或應用
macos_applescript 執行 AppleScript 或 JXA 片段並返回 stdout,能力最強

Safari

工具 做什麼
safari_tabs 列出所有 Safari 窗口和標籤頁及當前活動標籤
safari_open 在新標籤或當前標籤打開 URL
safari_page_text 讀取前置頁面的可見文本
safari_javascript 在前置標籤執行 JavaScript 並返回結果,需一項 Safari 設置

README 特別強調這套 Safari 工具驅動的是本機真實登錄的 Safari,沒有擴展、沒有云端瀏覽器、沒有 API key。

安裝與啓用

前置要求:macOS 13+、DeepSeek Harness 0.2.x、dsh 自帶的 Node 運行時。

從 GitHub 安裝(README 推薦方式):

dsh plugin --profile web add github:wu04186767/dsh-plugin-macos

如果你跑的是 DeepSeek Harness 桌面端,改用:

dsh plugin --profile desktop add github:wu04186767/dsh-plugin-macos

安裝後重啓應用(命令行場景則是重新運行 dsh --profile web),插件纔會被加載。

開發者想從源碼加載,README 給的命令是:

git clone https://github.com/wu04186767/dsh-plugin-macos.git
dsh plugin --profile web add ./dsh-plugin-macos

驗證是否生效:

dsh --profile web --dump-config | grep dsh-plugin-macos

配置裏應能看到該插件行,Web UI 的 Settings → Plugins 下也會出現它。

權限與驗證

部分工具首次調用會觸發 macOS 的一次性授權彈窗,需要給承載 dsh 的應用(DeepSeek Harness,或從終端啓動時的終端)授權:

權限 涉及工具 授權位置
Automation → Safari safari_* 系統設置 → 隱私與安全性 → 自動化
Automation → System Events macos_dark_mode、macos_frontmost_app 同上
Automation → Finder macos_finder_path 同上
Screen Recording macos_screenshot 系統設置 → 隱私與安全性 → 屏幕錄製
Safari 開發者設置 safari_javascript Safari → 設置 → 開發者 → Allow JavaScript from Apple Events

想一次性確認當前哪些權限可用,可以在 checkout 目錄裏跑:

node scripts/doctor.mjs

它會逐個觸發依賴權限的工具並顯示 macOS 當前放行了哪些。插件聲明自身不做網絡請求、不存遙測。

典型用法

README 給出的示例提示詞可以直接復現:

  • “構建結束時通知我,並大聲說完成。”——對應 macos_notify + macos_say
  • “讀取我現在看的 Safari 標籤並總結。”——safari_page_text 或 safari_tabs
  • “啓動 keep-awake,跑完 40 分鐘測試,再停掉。”——macos_keep_awake
  • “截屏並告訴我看到了什麼。”(需要帶視覺能力的模型)——macos_screenshot
  • “在 Mac 上搜 Q3-report.pdf 並給我路徑。”——macos_spotlight
  • “切到深色模式,音量設爲 20。”——macos_dark_mode + macos_volume
  • “運行我的快捷指令 Start Focus。”——macos_shortcuts

適用場景與注意

適合在 macOS 上常駐 DSH、希望智能體能直接操作本機(通知、剪貼板、Safari、快捷指令)的人,尤其是不想反覆手寫 AppleScript 的場景。

需要注意幾點:

  • 這些工具以當前 dsh 進程的權限在 Mac 上操作,跟內置 bash 工具同級。批准工具調用前,先看一眼智能體實際要調用什麼。
  • macos_clipboard_read 可能讀取到此前複製過的密碼或 token。
  • macos_applescript 屬於任意本地自動化,能驅動的幾乎是任何 Mac 應用,按能力上限來管理。
  • 插件沒有提供刪除、關機、提權類的工具。
  • Stars:目錄頁與倉庫當前信息顯示星標爲 0,社區規模還小;插件包屬於開發者預覽,API 可能在版本間變化。安裝前建議通讀源碼與 MIT 許可證,確認沒有超出你預期的 macOS 權限。
  • 這個插件來自社區目錄 SkillHub,目錄站是獨立站點,與 DeepSeek 無官方從屬關係。

結語

dsh-plugin-macos 的價值不在單一技巧,而在把 21 個 Mac 日常操作做成類型化的本地工具,零依賴、無構建、無雲端依賴,Safari 部分直接複用本機登錄會話。如果你的智能體任務經常落在 Mac 本機操作上,值得裝一個試。

  • 目錄頁:https://www.skillhub.cn/plugins/wu04186767/dsh-plugin-macos
  • GitHub:https://github.com/wu04186767/dsh-plugin-macos
羽毛球分组比赛记分
小程序二维码

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

小夜