🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

会话搬运工 mswinandmc/dsh-session-port

DeepSeek Harness
mswinandmc12 天前有提交已提供中文文档扫描:含敏感能力

把会话连同附件导出成压缩包,或导入为新会话继续用

30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add mswinandmc/dsh-session-port
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · other
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 12 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 9 处,展示前 9 条)
  • 发起网络请求
    client.js:391
    const response = await fetch(hostUrl(`/export?sessionId=${encodeURIComponent(String(sessionId ?? ''))}`), {
  • 发起网络请求
    client.js:790
    const response = await fetch(hostUrl(`/import?${params.toString()}`), {
  • 读取本地文件
    lib/host.js:293
    return (await stat(path)).isDirectory();
  • 读取本地文件
    lib/host.js:602
    info = await stat(resolved);
  • 读取本地文件
    lib/host.js:610
    const buffer = await readFile(resolved);
  • 写入本地文件
    lib/host.js:624
    await mkdir(directory, { recursive: true });
  • 写入本地文件
    lib/host.js:626
    await writeFile(path, exported.data);
  • 读取本地文件
    lib/attachments.js:31
    if (typeof hostPath === 'string' && hostPath !== '') return new Uint8Array(await readFile(hostPath));
  • 读取本地文件
    lib/attachments.js:45
    if (typeof hostPath === 'string' && hostPath !== '') return new Uint8Array(await readFile(hostPath));
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

会话导入导出:把 DSH 会话连同附件导出为压缩包,或导入为当前工作区里的新会话。

README

由 DeepSeek 最新模型翻译生成
dsh-session-port · 会话导入导出 DeepSeek Harness 插件:把会话导出成 ZIP 压缩包(含附件),或把导出的会话导入成新会话继续用。 压缩包结构与 DSH 自带的「下载会话日志」导出逐字节兼容。 把 DSH 的会话导出成压缩包带在身边,或把导出的会话导入成新会话继续用。 附件(截图、文件)随会话一起搬运。 安装 已发布到 npm 与 GitHub。安装方式取决于部署形态: 桌面版(DeepSeek Harness Desktop)——图形界面 桌面版不提供 dsh 命令行,插件在设置里安装: 1. 打开「设置 → 插件」,在插件列表或插件市场里找到 dsh-session-port 并安装(bundle 名同为 dsh-session-port;已收录到 dshmarket 后可直接在市场里搜到); 2. 安装后重启桌面版应用(或刷新已打开的页面)。 Web / CLI 部署——命令行 自建 dsh web、CLI 或其它非桌面部署才有 dsh 命令;--profile 换成实际 profile 名(常见 web)。桌面版用户请用上面的图形界面方式,这一段不适用。
展开完整文档(README 剩余 1 节)
dsh-session-port · 会话导入导出

DeepSeek Harness 插件:把会话导出成 ZIP 压缩包(含附件),或把导出的会话导入成新会话继续用。
压缩包结构与 DSH 自带的「下载会话日志」导出逐字节兼容。

把 DSH 的会话导出成压缩包带在身边,或把导出的会话导入成新会话继续用。
附件(截图、文件)随会话一起搬运。

安装

已发布到 npm 与 GitHub。安装方式取决于部署形态:

桌面版(DeepSeek Harness Desktop)——图形界面

桌面版不提供 dsh 命令行,插件在设置里安装:

1. 打开「设置 → 插件」,在插件列表或插件市场里找到 dsh-session-port 并安装(bundle 名同为 dsh-session-port;已收录到 dshmarket 后可直接在市场里搜到);
2. 安装后重启桌面版应用(或刷新已打开的页面)。

Web / CLI 部署——命令行

自建 dsh web、CLI 或其它非桌面部署才有 dsh 命令;--profile 换成实际 profile 名(常见 web)。桌面版用户请用上面的图形界面方式,这一段不适用。

从 npm 安装(官方源;会自动写进 profile 的 bundles 列表)
dsh plugin --profile web add dsh-session-port

没装 dsh CLI 时用完整包名(npm 上那个 dsh 是同名旧包,不能用)
npx @deepseek-ai/dsh plugin --profile web add dsh-session-port

从 GitHub 仓库安装
dsh plugin --profile web add github:mswinandmc/dsh-session-port

从本地打包安装(在仓库目录 npm pack 后,把生成的 .tgz 装进 profile)
npm pack
dsh plugin --profile web add '<repo>/dsh-session-port-<version>.tgz'

装好后用这些命令查看/升级/卸载:

dsh plugin --profile web list --depth 0 # 确认 dsh-session-port 在列表里
dsh plugin --profile web update dsh-session-port # 升级到 npm 最新版
dsh plugin --profile web remove dsh-session-port # 卸载

装好后重启 dsh 服务(或刷新已打开的页面),标题栏右侧出现导出按钮、侧边栏底部出现导入按钮。

用起来

首次安装后需要刷新一次页面(F5 / Ctrl+R),页面才会加载插件的浏览器半边。

| 想做的事 | 操作 |
| 导出正在看的会话 | 打开会话 → 标题栏右侧的「导出」图标(↓)→ 浏览器下载 <标题>-<会话 id>.zip |
| 导入一个会话 | 左侧栏底部的「导入会话」图标(↑)→ 选择 .zip 或 .jsonl → 自动导入并打开新会话 |

导入的会话:

- 新建,绝不覆盖或删除已有会话;
- 落在当前会话所在的工作区(空闲时落在最近的工作区);
- 从原会话继承标题、完整对话与工具历史、模型/预设(预设在本机不存在时自动退回默认);
- 日志里指向原会话的内部标记(投递水位等)会自动改写成新会话,否则 DSH 会拒绝加载该会话的历史;
- 子会话(subagents/)不随导入恢复,导入的是主会话本身。

也可以用自然语言让本鲸帮忙,例如「把当前会话导出到 D 盘备份」——插件注册了 session_port 工具。

文件格式

导出格式与 DSH 自带的「下载会话日志」完全一致,两种来源的压缩包都能互相导入:

<标题>-<会话 id>.zip ├── session.v4.jsonl # 第一行会话头,随后每行一条会话事件 ├── media/<attachmentId>.<ext> # 会话引用的图片 └── files/<前缀>/<摘要>/<文件名> # 会话引用的文件

会话日志(.jsonl)本身就是合法的导入输入,便于人工检查或跨版本处理。

边界与已知限制

- 导入要求格式版本一致:v4 的压缩包导入当前 DSH;跨大版本请先用对应版本 DSH 打开再重新导出。
- 单次导入默认上限 512 MiB,可在插件配置里用 maxImportBytes 调整。
- 导入只恢复主会话;子会话、会话收藏/置顶/归档等列表状态不迁移。
- 会话的 cwd 以当前工作区为准;原目录在本机不存在时不会被记录。

配置(cordis.patch.yml 的插件行)

- id: session-port
name: dsh-session-port
config:
maxImportBytes: 536870912 # 单次导入上限,默认 512 MiB includeAttachments: true # 导出时是否打包附件 sessionFormatVersion: 4 # 仅在会话库为空、无法自动探测时使用 exportDirectory: '' # agent 工具导出目录,默认 <DSH_HOME>/session-port/exports

实现

- 宿主端 index.js:/session-port/{info,export,import} 认证路由 + session_port 工具;两个入口调用 lib/host.js 里的同一组实现,所以格式与失败语义不会分叉。
- lib/host.js:导出走 sessionQuery.readSession(与自带导出同一份已校验视图),导入通过 sessionPersistence.create → append → flush → close 落盘,再挂到工作区。
- lib/format.js:纯函数(JSONL 序列化/解析、附件引用收集与改写、文件名清洗),有单测。
- lib/zip.js:无依赖 ZIP 读写(基于 node:zlib),有单测。
- client.js:客户端半边,不依赖 @deepseek-ai/* 运行时,只用 react 与宿主主题变量。

验证

cd dsh-session-port
node --test test/format.test.mjs # 13 项:JSONL 序列化/解析、附件引用、投递标记、文件名
node --test test/host.test.mjs # 19 项:导出→导入往返、真实 zip 工具产物、投递标记改写、失败路径
node --test test/client.test.mjs # 6 项:浏览器半边注册与渲染路径(无浏览器沙箱)
node --test test/zip.test.mjs # 34 项:ZIP 读写、data descriptor 流式 zip、损坏输入

已在本机完成的端到端验证:

- 用插件工具导出当前会话(948 条事件)→ 独立 Python zipfile 校验压缩包结构、JSONL 头与事件连续性;
- 用插件工具把该压缩包导入回当前工作区 → 新会话落盘(sessions/--D-hyw--/<新 id>/session.v4.jsonl.zstd,948 条事件、序号连续),并自动加入 D:\hyw 工作区的会话列表;
- 浏览器路由已注册并通过 Connection 信任栅栏(未认证请求全部 401);
- 界面按钮的渲染与点击需刷新页面后点击验证(本会话无浏览器控制能力,未做视觉验收)。
预览分享卡片长什么样 ↓mswinandmc/dsh-session-port
分享 · DeepSeek Harness Hub
mswinandmc/dsh-session-port

把会话连同附件导出成压缩包,或导入为新会话继续用

这是你的仓库?认领条目

回到顶部