DSH Plugin MarketA community catalog for DeepSeek Harness plugins

dsh-carryon

Unconfirmed Memory & context ★ 5 0.1.1

CarryOn context folding (arXiv:2610.18784) as a compaction plugin for DeepSeek Harness (experimental)

What it is

CarryOn context folding (arXiv:2610.18784) as a compaction plugin for DeepSeek Harness (experimental)

How to install

Run this in the DSH web profile, then refresh the page.

$ dsh plugin --profile web add dsh-carryon@0.1.1

DSH versions accepted

0.2.2-alpha.3

Author and traction

xuan-tu-ai · ★ 5 · Updated 2026-11-06

About this plugin

dsh-carryon

CarryOn context folding for DeepSeek Harness: long agent sessions keep what they established, not the whole transcript.

English · 简体中文

When a [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (dsh) session grows long, dsh compacts it

by summarizing old turns into free text. dsh-carryon replaces that step with CarryOn from

[Pack Light, CarryOn](https://arxiv.org/abs/2610.18784). Old turns are folded into small, versioned records of

what the agent has established ("carriers") and an execution context: the task, open obligations and the next step.

Each fold is validated before it is committed, and a rejected fold changes nothing.

https://github.com/user-attachments/assets/5f4a6889-5cf6-41a4-aff1-327a9d5d6b7b

CarryOn demo by the paper's authors. Also on the project page.

The CarryOn runtime, from the paper. In dsh-carryon, dsh decides when to fold and keeps the recent turns; the Grounder is not ported yet (details).

[Configuration](https://github.com/xuan-tu-ai/dsh-carryon/blob/main/docs/configuration.md) · [How it works](https://github.com/xuan-tu-ai/dsh-carryon/blob/main/docs/how-it-works.md) · [Development](https://github.com/xuan-tu-ai/dsh-carryon/blob/main/docs/development.md) · [Benchmark](https://github.com/xuan-tu-ai/dsh-carryon/blob/main/bench/README.md) · [Troubleshooting](https://github.com/xuan-tu-ai/dsh-carryon/blob/main/docs/troubleshooting.md) · [Releasing](https://github.com/xuan-tu-ai/dsh-carryon/blob/main/docs/release.md) · [Changelog](https://github.com/xuan-tu-ai/dsh-carryon/blob/main/CHANGELOG.md)

Highlights

  • Drop-in backend. dsh-carryon replaces dsh's compaction in the terminal, headless, SDK and ACP profiles. dsh

keeps its trigger, its verbatim tail and its safety checks, and /compact works as before.

  • CarryOn mode in the Web UI. The plugin adds a mode next to Standard mode, so you can compare both in the same

app.

  • Validated folds. A fold that fails validation leaves the session untouched. Rescans then back off as in the

paper. Close to the context limit, a failed fold falls back to dsh's own summary, so the session can go on.

  • Resumable. Fold state is stored as readable JSON in the session log and restored on resume.
  • Ported, not reinvented. The runtime is a TypeScript port of [carrycode](https://github.com/xuan-tu-ai/carrycode),

checked case by case against its parity fixtures.

How it works

flowchart LR
    A["Session reachesdsh's compaction threshold"] --> B["Trackerupdates candidates"]
    B -->|compile request| C["Compilercarrier edits +execution context"]
    B -->|nothing to compile| R
    C --> D{"Validator"}
    D -->|valid| E["Commit: checkpointreplaces old turns"]
    D -->|invalid| R["Rejected: session unchanged,next scan backs off"]
    R -.->|context near the limit| F["Fallback:dsh's summary"]

The checkpoint holds every carrier and the execution context. dsh keeps the most recent turns verbatim after it.

A fold costs one Tracker call, plus one Compiler call when the Tracker asks for compilation; dsh's own compaction

makes one summary call. The engine, the state format and how this port differs from the paper are described in

[How it works](https://github.com/xuan-tu-ai/dsh-carryon/blob/main/docs/how-it-works.md).

Results reported in the paper

These results come from the paper (Lu, McAuley, Zhang, 2026), with Claude Opus 4.7 as the agent. dsh-carryon has not

been benchmarked against them.

OSWorld 2.0. CarryOn improves both binary and partial scores of the same Claude Opus 4.7 agent

while cutting cost per task by 35.9%. Figure from the paper's authors.

Context and cost over agent turns on OSWorld 2.0. The baseline's input context keeps growing past

200K tokens, while CarryOn's stays near 65K. Figure from the paper's authors.

On BrowseComp-Plus, the paper reports accuracy rising from 49.0% to 56.0% with 22.9% fewer tokens per task.

Quick start

You need [dsh](https://github.com/deepseek-ai/deepseek-harness) 0.2.2-alpha.3 (each dsh-carryon release supports

exactly one dsh release), Node.js 24.9 or later (dsh's own requirement), and pnpm on your PATH

(npm install -g pnpm), which dsh plugin calls.

Install the plugin into the profile you use. For the terminal UI:

npx @deepseek-ai/dsh@0.2.2-alpha.3 plugin --profile tui add dsh-carryon

For the Web UI:

npx @deepseek-ai/dsh@0.2.2-alpha.3 plugin --profile web add dsh-carryon

If dsh 0.2.2-alpha.3 is already installed globally, drop the npx @deepseek-ai/dsh@0.2.2-alpha.3 prefix, for example

dsh plugin --profile tui add dsh-carryon. The same goes for the commands below.

Restart dsh: npx @deepseek-ai/dsh@0.2.2-alpha.3 opens the terminal UI, and

npx @deepseek-ai/dsh@0.2.2-alpha.3 web serves the Web UI and prints its address. In the terminal UI, every compaction is now a CarryOn fold. In the Web UI, new sessions start in

Compare in this category

The five most-starred plugins in the same category.

PluginAuthor StarsVersionUpdated
EverOS EverMind-AI 13.9K 0.0.0 2026-11-10
billion-context ranxianglei 5.9K 0.1.213 2026-11-10
dsh-context bowenliang123 4.8K 0.83.1 2026-11-10
memsearch zilliztech 2.9K 0.0.0 2026-11-10
dsh-mnemon omdsh-dev 957 0.5.43 2026-11-08