DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-session-title-summary

x

dsh-session-title-summary

Manifest valid1

DSH plugin: rolling session summary + current-task title (@xiaochaz)

hasBundlePatch

dsh-session-title-summary — Rolling session summary + task title

English | 中文

GitHub stars License DSH

A host-only plugin for DeepSeek Harness (DSH): after every completed turn it summarizes the session's work in a rolling "major topic - minor topic" outline and renames the session to a title that names the session GOAL and the specific item being handled right now. Implemented entirely through the official NPM SDK — no DSH source changes.

How it works

  • The plugin listens for agent/turn-stopping (the same event dsh-auto-memory uses) on every live top-level agent.
  • After the turn settles, it spawns a subagent with the live agent as the parent, so the child inherits the same model route and workspace and the main conversation is never blocked or polluted.
  • The subagent receives the previous rolling summary plus a digest of the new events (user prompts, assistant replies, tool calls with names/arguments/ results) and returns an updated summary and a new title as a structured object.
  • The summary is stored atomically per session under $DSH_HOME/dsh-session-title-summary/<sessionId>.json and the session is renamed via the official sessionTitle service.

Summary format: "major topic - minor topic"

The summary covers the WHOLE session as a terse outline. A major topic is the session-level GOAL the user is working toward (e.g. "开发标题自动总结功能"); a minor topic is one specific item under it (e.g. "修复子代理输出token上限"). Each line reads "major topic - minor topic", lines of the same major topic stay together, and different major topics are separated by a blank line. The current major topic gets the most bullets; older topics keep one short bullet each.

Title follows the current work

The title uses the same form, e.g. "开发标题自动总结功能 - 修复子代理输出token上限". It is based on the newest work at the end of the digest, never on how the session started, so it tracks the current task as the session evolves.

Cache safety

The session/title event is log-only: it never enters deriveMessages(), the system prompt, tool schemas, or the request prefix, so renaming does not touch the input cache hit rate or the KV cache. Summarization runs in a detached subagent with its own prompt — it shares no prefix with the main conversation.

Install

### From npm (when published)
dsh plugin --profile <name> add @xiaochaz/dsh-session-title-summary@latest

### From the repository (development)
git clone <this repo>
cd xiaochaz-session-title-summary
pnpm install && pnpm build
dsh plugin --profile <name> add link:$(pwd)

After installing, restart dsh web. The plugin takes effect on the next completed turn.

Configuration

The Web settings surface renders a section for this plugin:

KeyDefaultMeaning
enabledtrueMaster switch. Turn it off to keep session titles untouched (the plugin then does nothing).
targetWords6Prompt target for non-CJK title length (words); the enforced cap is display width.
targetCjkCharacters10Enforced title width cap in CJK characters (2 ASCII/half-width chars = 1 CJK).
provider / modelsession routeOptional explicit LLM route override; default follows the session's current model.
timeoutMs90000Per-fold subagent timeout.

Data

  • Rolling summaries: $DSH_HOME/dsh-session-title-summary/<sessionId>.json (versioned JSON, atomic write; lastSeq is the highest folded event seq).

Development

pnpm install
pnpm test
pnpm build

Known limitations

  • The summarizer subagent has a fixed 8192-token output budget and the summary itself is bounded to 1000 characters; if a fold still fails, the cursor advances without renaming, so the same events are not re-fed forever.
  • Explicitly user-renamed sessions are re-titled by the plugin on the next turn while enabled (turn the switch off to stop that).
  • Subagent child sessions are skipped; only their parent's title is managed.

License

BSD-3-Clause.

Comments

Loading…

From the same category

OpenViking

by volcengine

Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.

Memory & ContextManifest valid

38.5k

5k/wk

AGPL-3.0

Python

Sep 22, 2026

dsh plugin --profile web add @openviking/dsh-memory-plugin

by agentscope-ai

ReMe: Memory Management Kit for Agents - Remember Me, Refine Me.

Memory & ContextManifest valid

3.5k

122/wk

Apache-2.0

Python

Sep 21, 2026

dsh plugin --profile web add @agentscope-ai/reme

by zilliztech

A persistent, unified memory layer for all your AI agents (e.g. Claude Code, Codex, DSH), backed by Markdown and Milvus.

Memory & ContextManifest valid

2.6k

374/wk

MIT

Python

Sep 22, 2026

dsh plugin --profile web add @zilliz/memsearch-dsh

by mem9-ai

Unlimited memory for OpenClaw

Memory & ContextTools & CapabilitiesManifest valid

1.2k

57/wk

Apache-2.0

TypeScript

Sep 16, 2026

dsh plugin --profile web add @mem9/dsh-plugin

by vshulcz

One memory shared by Claude Code, Codex, Cursor, Copilot CLI, OpenClaw and 20 more coding agents, built from the session history already on disk. A fix found in one agent comes back in any of them, in

Memory & ContextTerminal & ClientsTools & CapabilitiesManifest valid

921

525/wk

MIT

Go

Sep 22, 2026

dsh plugin --profile web add dsh-deja

by adoresever

Deepseek Harness、Openclaw知识图谱记忆插件。2026年4月受邀发布在清华大学讨论会。Knowledge Graph + Memory;Knowledge Graph Context Engine for OpenClaw — extracts structured triples from conversations, compresses context 75%, ena

Memory & ContextManifest valid

627

45/wk

MIT

TypeScript

Sep 9, 2026

dsh plugin --profile web add graph-memory