Introduction¶
In the standard DeepSeek Harness (DSH) workflow, session titles usually rely on the first user message or automatic LLM generation. When an Agent needs to explicitly rename a session based on conversation progress (for example, injecting a requirement ID into the title), existing solutions lack direct model-side control. The dsh-session-rename plugin fills this gap by providing the rename_session tool, enabling Agents to autonomously manage session titles within a conversation.
Plugin Overview¶
dsh-session-rename is a DSH workflow plugin maintained by developer 9Ashwin. It exposes the rename_session tool to the model, allowing the Agent to directly modify the current session’s title in the conversation context.
Core Features¶
- Tool definition: Provides the
rename_sessiontool. - Parameters:
title(required): New title. After normalization, it must contain visible characters.session_id(optional): Target session ID. If omitted, the current session is renamed by default.
- Return value: Returns JSON text in the format
{ session_id, title, seq }. - Mechanism:
- Pinned title: Replaces the automatic generation mechanism; subsequent user messages no longer trigger automatic revisions.
- Semantic handling: Semantic parsing of the title is handled by
@deepseek-ai/dsh-session-title. - Privacy protection: The title is written only to the session log and never enters model input.
Installation and Enablement¶
Before installing, ensure Node.js >= 22 is installed.
Install from GitHub:
dsh plugin --profile web add -w github:9Ashwin/dsh-session-rename
Note: The
-wparameter ensures compatibility withpnpm-workspace.yamlin the new profile directory. If the installation reportsERR_PNPM_ADDING_TO_ROOT, check whether the profile contains that file, or remove-w.
Local development installation:
dsh plugin --profile web add -w link:/absolute/path/to/dsh-session-rename
After installation, restart dsh web for the changes to take effect.
Typical Usage¶
The plugin itself does not trigger renaming. You need to define rules in AGENTS.md, and the model decides when the tool is called. The following is an example rule:
Add the following content to AGENTS.md:
- 开始一个新需求(出现 PRD-NNN、Issue #NNN 等需求 id)时,调用 `rename_session`,
把会话标题改成 `<需求 id> <一句话描述>`,例如 `PRD-042 重构 router 层`。
The model will call the tool on its own based on this rule; the plugin is only responsible for executing the renaming logic.
Use Cases and Limitations¶
Use cases: Workflows that require the Agent to dynamically adjust session naming structures based on conversation context.
Limitations:
1. Session loading limitation: Only loaded sessions can be modified. If a non-current session is specified via session_id, you must ensure that the session is opened or active; otherwise, the error not loaded — open or switch to it first will be returned.
2. No dedicated view: Tool calls are displayed as generic cards in the conversation flow and do not provide a dedicated UI.
3. Not automatically triggered: It is not executed automatically; the model must proactively decide through rules.
4. Title semantics: Specific semantic processing of the title (such as denoising and normalization) is handled by @deepseek-ai/dsh-session-title; the plugin is only responsible for injecting the original title.
Conclusion¶
With its zero-runtime-dependency design, dsh-session-rename addresses the pain point in DSH where the model side cannot directly manage session titles. It returns the right to generate and modify titles to the Agent, enabling more flexible maintenance of session context.
For plugin details and source code, refer to:
* GitHub Repository
* Skill Center Directory