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
P

dsh-plugin-session-rename

Plugin Session Rename

DeepSeek Harness plugin: a native session_rename agent tool backed by the Cordis sessionTitle service, so the agent can keep each conversation's title honest.

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

npx -y @deepseek-ai/dsh plugin --profile web add github:ccclucky/dsh-plugin-session-rename#58546dbcdd3beebc2bd210da6ba53ddb1c59489c
READMECompatibilityVersions

Compatibility and provenance

Plugin Session Rename is published as dsh-plugin-session-rename 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
any
Release source
github
Registry updated
11/4/2026

Versions

1.0.0stable
10/22/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
any
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
142
Last push
10/22/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 productivity-workflow.

Acp App@deepseek-ai/dsh-acp-appThe dsh ACP profile bundle: automation-only JSON-RPC stdio and process lifecycle over dsh-baseExperimental Schedule Bundle@deepseek-ai/dsh-experimental-schedule-bundleOptional bundle that adds Schedule, its task page, and time context to the Web compositionWeb All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / pet / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Ab Ocrdsh-ab-ocr--- description: "The out-of-tree ocr tool: recognizes a scanned PDF or image page by page, merges the pages in order only after the last one, and saves one Markdown document with the heading levels the model decided." kind: "package-reference" ---

README

dsh-plugin-session-rename

English | 中文

A tiny DeepSeek Harness (DSH) plugin that gives the Agent one native tool:

session_rename(title: string)

The tool calls the Cordis sessionTitle service directly — sessionTitle.rename(session, title) — so the current conversation is renamed for real, not just in the model's imagination.

Why

Out of the box the user can rename a conversation from the UI, but the Agent cannot. That matters when a session's title should carry its state:

  • a [wip] / [pending] / [done] prefix that tracks what the session is doing right now;
  • a title derived from the finished artifact instead of the first prompt;
  • a corrected title when the first prompt was vague.

With this plugin the Agent can keep the title honest on its own, at the moment the state actually changes.

What happens on a rename

sessionTitle.rename(session, title) appends a session/title event with source: user to the session log. Three consequences follow:

PropertyEffect
DurableReplay, fork and resume all rebuild the title from the log.
PinnedIn-flight automatic title generation is superseded, and later prompts no longer auto-rename the conversation.
LiveThe session list and the Chat header repaint as soon as the event lands — no page refresh.

Requirements

  • A DSH build that provides the sessionTitle service (it ships with the standard Web/Desktop bundles).
  • No runtime dependencies. The plugin imports nothing at all.

Install

From npm (one command)

dsh plugin --profile <profile> add dsh-plugin-session-rename

This is the form the in-app Plugin Hub and the community index rely on. The package declares dsh.bundle.patch, so the installer appends it to dsh.profile.bundles and the row mounts itself:

- insert:
    - id: session-rename
      name: 'dsh-plugin-session-rename'

Note that a profile named desktop is owned by the Electron application and cannot be managed from the CLI; use the in-app plugin manager there, or install from source below.

From source (works before an npm release)

The dsh plugin command is a thin forwarder to pnpm add, so a git spec works too:

dsh plugin --profile <profile> add git+https://github.com/ccclucky/dsh-plugin-session-rename.git

Local checkout in your profile

Clone this repository anywhere, then point the profile patch at the file. The Loader anchors relative paths beside the patch file:

# ~/.dsh/profiles/<profile>/cordis.patch.yml
- insert:
    - id: session-rename
      name: './plugins/session-rename/index.js'

Use one channel only: npm, git and a local row at once produce a duplicate entry id session-rename.

HMR picks up both the module and the patch layer live; no restart is needed.

Usage

Ask in natural language — "rename this conversation to [done] 迁移收尾" — or the Agent calls it directly:

{ "title": "[wip] 迁移进行中" }

Result:

{
  "title": "[wip] 迁移进行中",
  "eventSeq": 514,
  "source": "user"
}

Errors are explicit, never silent:

  • an empty or whitespace-only title is rejected before the service is called;
  • a call with no owning agent, or an agent without a live session, is rejected;
  • a title the service normalizes to empty propagates the service's own error.

Design notes

  • Raw JSON Schema, not the authoring dialect. ctx.tools.register() takes raw JSON Schema. defineTool()'s authoring dialect (required: true inline in each property) is for packaged, TypeScript-authored tools; mixing them makes the loader row fail to activate. The tests pin this.
  • The model cannot target someone else's session. The session comes from exec.agent.session, never from tool arguments.
  • Zero imports. The registry accepts a plain ToolDefinition, so nothing has to resolve from the profile's node_modules.
  • Dormant rather than broken. inject = ['tools', 'sessionTitle'] keeps the plugin inactive in a profile lacking either service instead of throwing.
  • Disposal is owned. Registration happens inside ctx.effect(...), so disabling the row removes the tool.

Test

node --test

14 contract tests, no dependencies, no DSH install needed: they drive the plugin through a stub Cordis context and assert the registration shape, the raw-schema contract, session resolution, cancellation and every error path.

Compatibility

Written against the DSH 0.2.x plugin API (ctx.tools.register, ctx.effect, sessionTitle.rename).

The package declares engines.dsh: ">=0.2.1-rc.2 <0.3.0". DSH checks that range before installing and refuses an incompatible runtime instead of loading a plugin that may crash — DSH is in developer preview, so a 0.3.x breaking change should fail loudly. Because engines.dsh is present it decides alone: the package deliberately declares no @deepseek-ai/* peer dependencies, since it imports nothing and should not be gated by peer resolution.

If a future runtime matches the code but not the range, grant the documented exact-version exemption (dsh plugin allow-version) rather than editing the range.

Distribution status

ChannelAvailable
GitHub repository✅ https://github.com/ccclucky/dsh-plugin-session-rename
GitHub topic dsh-plugin✅ added — the community hub (dsh-plugin.org) discovers repos by this topic
dsh plugin add git+https://…✅ verified end to end
npm registry⏳ prepared, first publish pending
dsh plugin add dsh-plugin-session-rename❌ fails until the first npm publish lands

The npm release is prepared and reproducible: .github/workflows/publish.yml runs the tests, verifies the tarball, and publishes with provenance on a v* tag push, using the NPM_TOKEN repository secret. Until that run succeeds, use the git or local channel above.

License

MIT © CCLUCKY