前言¶
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