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.