Back to home

Townrain

dsh-session-title-interval-llm

Every-N-prompts automatic session-title plugin for DeepSeek Harness (interval cadence LLM provider)

Stars
1
Language
TypeScript
Created
Aug 15, 2026
Updated
Aug 15, 2026

Introduction

dsh-session-title-interval-llm

English | 中文

A DeepSeek Harness plugin that keeps the sidebar session title tracking the whole conversation: an optional ctx.sessionTitle provider that runs a cheap LLM title request on the first eligible prompt, then re-titles the session every interval new human prompts. It registers the interval cadence — the harness's third automatic mode beside first-prompt and all-prompts — so a deployment routes titles to a cheap model (deepseek-v4-flash and friends) while the working model stays untouched.

The repository ships two packages: packages/session-title-interval-llm (the plugin) and packages/session-title-llm (its vendored shared title-LLM helper: framing, limits, timeout, the session-title-llm settings section, and live re-registration). The helper is vendored so the plugin installs as one self-contained repository; the upstream harness publishes the same package under @deepseek-ai/dsh-session-title-llm and the plugin uses whichever resolution wins.

Prerequisites

A DeepSeek Harness build that includes the interval automatic cadence in @deepseek-ai/dsh-session-title (upstream pull request: deepseek-ai/deepseek-harness). Every other dependency — the LLM runtime, the session store, the title service — is a stock harness package.

Install

Junction the two packages into your profile's healed node_modules, then mount the plugin row:

New-Item -ItemType Junction -Path $env:USERPROFILE\.dsh\profiles\node_modules\@deepseek-ai\dsh-session-title-interval-llm -Target <this-repo>\packages\session-title-interval-llm
New-Item -ItemType Junction -Path $env:USERPROFILE\.dsh\profiles\node_modules\@deepseek-ai\dsh-session-title-llm -Target <this-repo>\packages\session-title-llm

Then add to profiles/<profile>/cordis.patch.yml (disable the bundle's default title provider first, then insert this one):

- id: session-title-llm
  disabled: true
- insert:
    - id: session-title-interval
      name: '@deepseek-ai/dsh-session-title-interval-llm'
      config:
        targetWords: 5
        targetCjkCharacters: 10
        maxInputBytes: 4096
        maxOutputTokens: 64
        timeoutMs: 60000
        interval: 5
        provider: deepseek-official
        model: deepseek-v4-flash

Restart the harness. The title model, the interval, and the automatic-titles switch then also appear under Settings → Plugins → Plugin configuration (the shared session-title-llm settings section), and each session row's three-dot menu gains Regenerate title — the deliberate unpin that replaces a manual rename on demand.

Configuration

See packages/session-title-llm/README.md for the shared required fields (targetWords, targetCjkCharacters, maxInputBytes, maxOutputTokens, timeoutMs, optional paired provider/model, optional enabled) and packages/session-title-interval-llm/README.md for the interval cadence contract.

Omit both provider and model to inherit the exact route from each logged main request; set both to route titles independently of the working model.

License

MIT — see LICENSE.