Sessions & Messages

dsh-peer-link

czm15053/dsh-peer-link · ★ 9

czm15053Curated

Let dsh and Claude Code sessions message each other directly; comes with a clickable peer list card (sort/search/send/refresh).

README body is shown in Chinese.

License
MIT
Added
2026-08-14
Maintenance
active
Install kind
github
Manifest status
Declared
Manifest path
package.json#dsh
Manifest checked
2026-08-19
Lifecycle scripts
None found

Static manifest checks report declarations only; they are not compatibility or security review.

安装

dsh plugin --profile web add github:czm15053/dsh-peer-link

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: zh · Read Chinese README

Table of contents
  1. 特性
  2. 演示
  3. 截图
  4. 架构
  5. 安装
  6. 工具
  7. 配置
  8. dsh 侧(插件配置)
  9. Claude Code 侧(官方跨 session 配置)
  10. 构建与测试
  11. 目录结构
  12. 通信礼仪
  13. 友链
  14. License

点对点消息工具:让 DeepSeek Harness(dsh)会话与其他本机 agent 会话(如 Claude Code)通过 unix socket 互发消息。

特性

  • 单 peer 注册:dsh 进程注册为一个 peer(dsh-<pid>),Claude Code 的 ListAgents/SendMessage 可直接发现并回复
  • 会话标识 + 内部转发:dsh 的每个会话有独立短 id,消息带 @dsh-<pid>:<session> 标识,Claude 回复时带标识,dsh 内部转发到对应会话
  • 收消息:收到 peer 消息 → 以用户消息气泡注入对应 dsh 会话(web 可见)
  • 发消息:peer_send 工具把消息写回对方 socket
  • 列 peer:peer_list 工具列出活跃 peer(按目录筛选、按创建时间排序)
  • 交互式 peer_list:前端 toolview 渲染成可点击卡片(排序/搜索/弹窗发送/刷新)
  • 会话上下文:每个 peer 显示首句(会话主题),一眼看懂在做什么

演示

Claude 会话间通信

Claude 会话通信

截图

交互式 peer_list:列出活跃 peer,支持排序/搜索/刷新

peer_list

点击 peer 弹窗直接发送消息

发送消息弹窗

两个会话轮流报数(连通性测试)

轮流报数

两个会话玩成语接龙

成语接龙

架构

┌──────────────┐          ┌───────────────────────────────┐
│  Claude Code │          │  dsh (单 peer: dsh-<pid>)      │
│              │          │  ┌─ 会话 A (短id: abc12345)    │
│  ListAgents  │          │  └─ 会话 B (短id: def67890)    │
│  SendMessage │◀────────▶│  收到回复 → 按标识转发到对应会话 │
└──────────────┘          └───────────────────────────────┘

安装

# 从 GitHub
dsh plugin --profile web add "github:czm15053/dsh-peer-link"

# 或从本地仓库
dsh plugin --profile web add link:<repo路径>

dsh --profile web

工具

工具 作用
peer_send 向 peer 发消息。target 传入站消息编号 / peer 名 / socket 路径
peer_list 列出活跃 peer。可选 cwd 按目录筛选

配置

dsh 侧(插件配置)

- insert:
    - id: peer-link
      name: '@deepseek-ai/dsh-peer-link'
      config:
        targetSessionId: active   # 'active'=最近活跃 / 具体sessionId / 'all'
        name: my-dsh              # 注册名,默认 dsh-<pid>
        injectInbound: true       # 收消息注入会话
        registerTool: true        # 注册 peer_send/peer_list

Claude Code 侧(官方跨 session 配置)

Claude Code 2.1.224+ 原生支持跨 session 消息。需在 ~/.claude/settings.json 里配置:

  1. 升级:claude update 升级到 2.1.224+
  2. 启用开关:在 env 块加 "CLAUDE_CODE_HARBOR_KITE": "1"(绕过 feature flag)
  3. 免审批(推荐):加 "crossSessionInbound": "accept"(不加则消息先 hold 等待确认)
{
  "env": {
    "CLAUDE_CODE_HARBOR_KITE": "1"
  },
  "crossSessionInbound": "accept"
}

配置后,每个 Claude 会话会在 /tmp/cc-socks/ 生成一个 socket 文件(0600 权限)。

与 dsh 会话通信
  • 发现:Claude Code 里用 ListAgents 列出所有 peer 会话(含 dsh-<pid>)
  • 回复 dsh:用 SendMessage 发给 to: "dsh-<pid> [ref]",消息开头带上会话标识 @dsh-<pid>:<session短id>,dsh 会转发到对应会话
  • 收 dsh 消息:dsh 发来的消息会作为用户消息出现在 Claude 会话(带 📨 [peer] 标记)

构建与测试

cd dsh-peer-link
npm install
npm run build   # tsc → lib/ + tsdown → lib/client.js
npm test        # vitest

目录结构

dsh-peer-link/
├── src/
│   ├── index.ts              # host 插件:注册单 peer + 会话转发 + 工具
│   ├── protocol.ts           # socket 消息协议(NDJSON 解析/构造)
│   ├── peer-registry.ts      # peer 注册表(注册 + 发现 + 存活探测)
│   └── client/               # 前端半区
│       ├── index.ts          # toolview slot 注册 + onSend/onRefresh
│       └── PeerListTool.tsx  # 交互式 peer_list toolview
└── LICENSE                   # MIT

通信礼仪

  • 收到 peer 消息时,注入格式附带提示:寒暄/确认类消息无需回复,有实际协作需求再回复
  • 多 dsh 会话并发向同一 peer 发消息时,醒目的会话标识让 Claude 能区分各会话

友链

  • LinuxDo — 一个开放、分享的社区

License

MIT