In DeepSeek Harness (DSH), session titles are an important index for quickly locating context. DSH’s built-in session-title-llm provider often either directly refuses generation or fails to reflect the actual task when handling overly long prompts or weak prompts (such as containing only “continue writing”). The smart-session-title plugin aims to address these pain points by compressing prompts, waiting for meaningful tasks, and providing more flexible controls, giving DSH smarter automatic title generation.

This plugin is maintained by developer y2zyyr, version 0.5.0-rc.18 (release candidate, corresponding to the npm next tag). It replaces the built-in session-title-llm provider and directly uses the Provider and Model actually used in the conversation to generate titles.

Core Features

  • Task summary and compression: Automatically summarizes the first meaningful task into a short title. For overly long or code-intensive prompts, the plugin compresses them rather than refusing.
  • Intelligent waiting: When a conversation starts with a greeting, the plugin waits until a meaningful task appears, avoiding premature title generation.
  • Manual protection and drift prevention: Protects manually set titles from drift caused by automatic generation.
  • Explicit retitling: Supports explicit title regeneration via the /retitle command or the header button in the UI. Explicit requests override the weak prompt filter, enabling regeneration even if the message is only a short command.
  • Highly configurable:
    • Title shape and content: Set the character limit (including date), date prefix/suffix, title style (such as action-object or short-name), and language (Chinese/English).
    • Exclusions and locking: Supports setting titleExclusions (exclude customer names or internal code) and lockedSessionIds (lock specific session IDs and disable automatic rewriting).
  • Batch optimization: Provides batch optimization of stored session titles, with progress tracking, search, and comparison.
  • Privacy and diagnostics: Provides a native settings page and displays the plugin version number at the bottom of the page. The plugin uses local diagnostics and has no telemetry service.

Installation and Activation

Environment Requirements

  • DSH Core: 0.1.5-rc.1 or 0.2.0-rc.1
  • Node.js: >= 22.15.0

Installation Steps

Run the following command in the DSH profile directory:

npm install smart-session-title@next --legacy-peer-deps

Configure Bundle

After installation, add this Bundle to dsh.profile.bundles. The order of the Bundle must be after @deepseek-ai/dsh-base and @deepseek-ai/dsh-web-app, otherwise it may not work properly.

{
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "smart-session-title"
      ]
    }
  }
}

After restarting DSH, the log should show smart-session-title provider registered ... automatic=all-prompts.

Settings Reference

The plugin provides detailed settings. After configuring them, click “Save settings” at the bottom of the page to apply the changes.

Field Default Description
enabled true Master switch that controls whether smart titles are enabled.
mode Follow the session¹ Mode: current-session (current session), configured (use configured Provider/Model), or disabled (disabled).
provider Unset Provider ID to use.
model Unset Model ID to use.
timeoutMs 15000 Timeout for a single attempt; UI range 1000–120000 ms.
maxAttempts 2 Maximum number of attempts; range 1–3.
maxTitleCharacters Unset (80 bytes) Character limit for the entire title (including date), in Unicode code points; range 8–120.
titleDatePosition Unset Date position: prefix or suffix.
titleDateFormat ymd Date format: ymd (2026-09-13) or md (09-13).
titleStyle Unset Title style: action-object or short-name.
titleLanguage Unset Enforced language: zh or en.
titleExclusions Unset List of excluded terms (up to 50 terms, each up to 64 characters); generated titles must not contain these terms.
lockedSessionIds Unset List of locked session IDs (up to 500 IDs); once locked, automatic generation, retitling, and batch list operations skip it.

¹ For older deployments, explicit Provider/Model pins in the bundle entry remain valid until the user selects a mode.

Typical Usage

  • Forced regeneration: If the automatic title is unsatisfactory, use /retitle or the button at the top of the UI to explicitly regenerate it.
  • Batch-optimize history: In the settings page, switch to the “Batch optimize” tab, select the sessions to optimize, and review and apply the new titles.
  • Exclude sensitive terms: Add customer names or internal code to titleExclusions to prevent them from appearing in titles.
  • Protect important sessions: Click the lock button next to the session title to prevent batch optimization or automatic generation from overwriting it.

Notes

  • Data persistence differences: Core 0.1 persists settings under the smart-session-title namespace in $DSH_HOME/settings.yaml; Core 0.2 uses the plugin’s own volatile Config. DSH retains fallback titles, persistence, projection, cancellation, and stale-result protection; this plugin only replaces the title generation logic.
  • Uninstallation and restore: When uninstalling the plugin, remove the Bundle configuration, restart, and then delete the npm package. Disabling only the plugin line while keeping the Patch will not restore the built-in session-title-llm provider.
  • Version status: The installed version is 0.5.0-rc.18, a release candidate. It is recommended to validate it in a test environment before upgrading.