DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
S

dsh-session-takeout

Session Takeout

将一段对话打包成 ZIP,以便在另一台电脑上打开并恢复

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:northstacker/dsh-session-takeout#778f21f43bd348938316f12f153b895f2e294853
README兼容性版本

兼容性与来源证明

Session Takeout 以 dsh-session-takeout 发布,当前版本为 1.0.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/28

版本

1.0.0stable
2026/10/28

相关插件

正在加载相关插件…

最新版
1.0.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/28
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 memory-context 分类下经过校验的插件。

Experimental Session Search@deepseek-ai/dsh-experimental-session-search为 Agents 提供搜索和读取当前工作区早期会话的工具。Hindsight Coding Agents@vectorize-io/hindsight-coding-agents面向编程代理的仅反思式 Hindsight 长期记忆(可插拔支持多种运行框架:opencode、……),自动在后台导入(无需设置 CLI)。Contextdsh-context用于上下文洞察和管理的 DeepSeek Harness 插件,提供上下文仪表板和上下文命令,帮助了解上下文的构成及其演变过程。Memory Plugin@openviking/dsh-memory-plugin适用于 DeepSeek Harness 的 OpenViking 记忆与上下文套件

README

dsh-session-takeout

English · 简体中文

Packs one DeepSeek Harness conversation into a single ZIP, so you can carry it to another computer and keep talking there.

plugin_manager → install_bundle → target: <this directory>

Below the message box there are two small buttons:

  • 导出会话 / Export session — packs the current conversation into one ZIP in ~/Downloads, then reveals it in Finder.
  • 导入会话包 / Import bundle — restores such a ZIP on this computer, opens it, and continues the conversation.

Why the Host does the work

A conversation is not just text in the browser. The durable event log, the attachment object store and the workspace registry live on the machine running the Host, so the Client half only presses two routes:

RoutePurpose
POST /session-takeout/export{ sessionId } → writes and reveals a ZIP, returns its path
POST /session-takeout/importraw ZIP bytes → restores the session, returns its new id
POST /session-takeout/reveal{ path } → reveals a path in Finder

What is inside a bundle

manifest.json          format tag, session summary, counts, checksums
session/header.json    SessionHeader + inheritedEventCount
session/events.jsonl   the full event log, one JSON object per line
attachments/<id>       raw bytes of every image or file the conversation used
plugin/<file>          this plugin's own sources, so the archive can install it
README.md              plain instructions for a human

The container is an ordinary ZIP (deflate, UTF-8 names, no ZIP64), written with node:zlib and a local CRC-32 table so no dependency is pulled in. It opens in Finder, Explorer and unzip; the conversation itself stays readable without this plugin.

The format tag inside manifest.json stays dsh-session-bundle on purpose: the archive format is versioned separately from the project name, so bundles written by earlier builds keep importing after a rename.

Export is durable, import is careful

  • Export first flushes the live session through the sessions service, because a conversation that is still being written would otherwise be short of events. It then reads the durable log and copies only attachments the events actually reference.
  • Import never touches this machine's store until the archive has been fully parsed and every entry CRC-verified. It then:
    • restores attachments into the content-addressed object store (existing objects win),
    • writes the log under the local session format version,
    • points the restored session's cwd at a fresh directory,
    • mints a new session id when the source id already exists here,
    • registers that directory as a workspace and attaches the session to it.

A restored conversation therefore lands in ~/Documents/DeepSeek Harness/<title>-<shortid>/, which becomes its workspace — the exporter's absolute paths are never reused.

Carrying it to a computer that has never seen this plugin

Every exported ZIP carries this plugin's sources under plugin/, so a fresh machine needs nothing but the archive:

  1. Copy the ZIP over and unzip it.
  2. Install plugin/ as a bundle (plugin_manager → install_bundle → <unzipped>/plugin). On a machine that has never run this plugin, ask its agent to do this step — it can also post the ZIP to the route itself, without opening any dialog: curl -X POST http://127.0.0.1:<port>/session-takeout/import --data-binary @bundle.zip
  3. Click 导入会话包 / Import bundle and pick the ZIP (or let the agent's request do the same thing), then the restored conversation opens ready to continue.

Limits worth knowing

  • Attachments whose object file is missing on the exporting machine are listed in manifest.json under missingAttachments and simply do not travel.
  • A session that was forked from another conversation keeps its inheritedEventCount; the parent's prefix is not part of the bundle, so only the part stored in this log arrives.
  • agentPreset travels as an id. If that preset is not installed on the target, the session opens with the default agent.

Install

plugin_manager → install_bundle → target: <this directory>

The bundle patch inserts one row; nothing else in the profile needs editing. Restart the Web UI (or let the client plugin hot-reload) and the two buttons appear under the message box.

Test

node test/bundle.test.mjs   # 48 checks against fake services and a throwaway HOME

License

MIT