deepseek-harness-channel-imessage
Verified@anarkhgatsby/deepseek-harness-channel-imessage · v0.1.8 · MIT
Channel plugin for DeepSeek Harness: local-only iMessage transport through Messages.app and chat.db. Thin facade on @anarkhgatsby/deepseek-harness-core.
Install
dsh plugin add @anarkhgatsby/deepseek-harness-channel-imessage Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Readme
@anarkhgatsby/deepseek-harness-channel-imessage
DeepSeek Harness 的 macOS 本地原生 iMessage 通道插件(100% 本地隐私安全、直连 Messages.app 与 SQLite 数据库,零云端中继)。
⚠️ 非官方声明:本项目由开源社区独立开发与维护,不是 DeepSeek 或 Apple 官方产品,未经官方赞助或背书。
🌟 隐私优先设计与核心特性
- 🔒 100% 本地安全,零云端中继:所有对话数据完全在本地处理,绝不经过任何第三方云服务或外网转发中继;
- 📖 原生 SQLite 只读入站读取:入站消息直接从本地
~/Library/Messages/chat.db只读轮询; - ✉️ 原生 AppleScript 出站调度:出站回复通过 macOS 系统自带的
/usr/bin/osascript驱动Messages.app极速发送; - 🛡️ 依托
GatewayCore消息总线:自带会话管理、自动回复与智能防重机制; - 🧰 免装任何第三方 CLI:无需安装
imsgCLI 或 Photon,纯原生能力实现。
🆕 0.1.5 更新内容
- iMessage 出站回复会先转换为更适合 Messages.app 的纯文本;
**加粗**、*斜体*、反引号和删除线等常见 Markdown 标记不再直接显示;- 标题、列表、链接和代码块会按照纯文本通道的特点重新排版。
📥 快速安装
dsh plugin add @anarkhgatsby/deepseek-harness-channel-imessage
(强烈建议同时安装可视化配置中心:dsh plugin add @anarkhgatsby/deepseek-harness-channel-config)。
🔐 必需的 macOS 系统权限配置
由于 macOS 系统对 iMessage 隐私数据有严格的系统沙盒保护,初次使用必须开启以下两项系统权限:
- 完全磁盘访问权限 (Full Disk Access):
- 打开 系统设置 ➔ 隐私与安全性 ➔ 完全磁盘访问权限;
- 点击
+号添加并开启 DeepSeek Harness(如果通过终端命令行运行,请添加 终端 / iTerm2); - (此权限用于读取本地
~/Library/Messages/chat.db消息数据库)。
- 自动化权限 (Automation):
- 打开 系统设置 ➔ 隐私与安全性 ➔ 自动化;
- 在 DeepSeek Harness 或终端下方,勾选允许控制 「信息 (Messages)」;
- (此权限用于通过 AppleScript 发送出站回复)。
⚙️ 接入与配置
方式 1:通过可视化渠道配置面板(推荐)
启动 DeepSeek Harness 后,打开 设置 ➔ 渠道配置 页面,在 iMessage 卡片中开启自动回复并配置默认工作区即可。
方式 2:配置文件方式 (~/.dsh/settings.yaml)
imessage:
mode: "local" # 当前唯一支持的模式
chatDb: "/Users/你的用户名/Library/Messages/chat.db"
defaultWorkspace: "/Users/you/dsh/default" # 默认工作区
autoReply: true
streamReplies: true
toolCallReplies: true
allowlist: []
routes: {}
本地开发时可使用 IMSG_CHAT_DB 和 IMSG_DEFAULT_WORKSPACE 环境变量覆盖默认值。覆盖 chatDb 时建议使用绝对路径。
📝 回复格式优化
由于 macOS Messages.app 发送的是纯文本,插件会在 iMessage 出站前进行轻量 Markdown 转换,避免将 **加粗**、*斜体*、反引号等格式标记直接显示给收件人:
- 标题转换为普通文本;
- 无序列表转换为
•项目符号; - Markdown 链接保留标题与 URL;
- 代码块显示为“代码:”段落,并保留缩进;
- 加粗、斜体、删除线、下划线和行内代码标记会被移除。
该转换仅作用于 iMessage 出站消息。网页端以及飞书、钉钉等支持富文本的渠道继续使用原有渲染方式。
🔐 审批与 Agent 提问
对于从 iMessage 会话创建的 Agent,沙箱或工具权限请求会发送回同一个“信息”会话:
- 回复
1:批准本次操作; - 回复
2或其他非批准文本:拒绝操作; - 对于
userQuestions,回复显示的选项编号,多选时用逗号分隔。
桌面 GUI 会话仍然使用 Harness 原生 GUI 审批弹窗。如果在超时时间内没有回复,审批或提问会自动失败。
🛠️ 全局主动推送工具 (message_imessage)
插件注册了 message_imessage 工具,AI Agent 在执行完后台任务后可主动向指定手机号或 Apple ID 发送 iMessage:
{
"action": "send",
"channel": "imessage",
"target": "+8613800000000",
"message": "构建与测试已全部完成 🚀"
}
❓ 常见问题与排错
| 现象 | 排查方向 |
|---|---|
无法读取 chat.db |
为 DeepSeek Harness 开启“完全磁盘访问”;如果通过终端启动,则为终端 / iTerm2 授权。 |
| 能收消息但无法回复 | 在“系统设置 → 隐私与安全性 → 自动化”中允许 DeepSeek Harness 控制“信息”。 |
| 没有显示会话 | 检查数据库路径、Messages 登录账号,以及运行环境是否为 macOS。 |
| 审批弹出 GUI | 当前会话没有识别为 iMessage 渠道会话,检查 Core 状态映射和运行时日志。 |
| 回复重复 | 确认同一个 chat.db 没有启动多个 iMessage 运行时实例。 |
兼容性
0.1.8 已与 DeepSeek Harness 0.1.5-rc.1、0.1.5-rc.2 与 0.1.6-alpha.2、@deepseek-ai/cordis@^4.0.2 以及对应协议与工具 peer 依赖完成验证;共享路由依赖 @anarkhgatsby/[email protected]。本插件仅支持 macOS。
📄 开源协议
遵循 MIT License 开源协议。