DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
S

dsh-session-takeout

Session Takeout

Packs one conversation into a ZIP you can open on another computer, and restores it there

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:northstacker/dsh-session-takeout#778f21f43bd348938316f12f153b895f2e294853
READMECompatibilityVersions

Compatibility and provenance

Session Takeout is published as dsh-session-takeout and currently resolves to version 1.0.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/28/2026

Versions

1.0.0stable
10/28/2026

Related plugins

Loading related plugins…

Latest
1.0.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/28/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in memory-context.

Experimental Session Search@deepseek-ai/dsh-experimental-session-searchGive Agents tools to search and read earlier sessions from the current workspace.Hindsight Coding Agents@vectorize-io/hindsight-coding-agentsReflect-only Hindsight long-term memory for coding agents (harness-pluggable: opencode, …), with automatic background ingestion (no setup CLI).Contextdsh-contextA DeepSeek Harness plugin for context insight and management, with context dashboard and context command, for understanding how the context is made of, and how it evolves.Memory Plugin@openviking/dsh-memory-pluginOpenViking memory and context bundle for DeepSeek Harness

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