Bundle
dsh-brief-session-title
DSH session-title plugin: condenses a full sentence into a single word for easier recall.
- Source
- Relethe
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 4 days ago
Readme
# dsh-brief-session-title English | [中文](README.zh.md) A DeepSeek Harness (DSH) session-title plugin that condenses a full sentence into a single word for easier recall. ## Why this plugin DSH generates session titles with the official `session-title-first-prompt-llm` plugin, which often outputs a complete sentence — a verbatim echo like "Explain what JavaScript closures are" ends up in the sidebar, long and hard to scan. The root cause is the official prompt: its only length constraint is **"Aim for about 5 words"** — "aim for" is a soft target that models routinely overshoot, and it asks for "concise" without showing what concise means. **The goal is not specific enough, and that is what makes titles wordy.** This plugin keeps all official logic untouched and changes exactly one thing: **the system prompt** — explicit rules plus correct/incorrect examples that turn "concise" into an executable standard. ## Examples | Session content (original) | This plugin's title | |---|---| | 解释一下JavaScript闭包到底是什么 | **JS闭包浅说** | | 用英语表达中国近代半文言文文法 | **半文言文法表达** | | 中式微恐2.5D沙盒生存游戏系统PRD | **游戏PRD** | | Fixing Memory Leak in Node | **Node memory leak** | | Database Schema Design Review | **Schema review** | ## Core idea: prompt optimization The new prompt gives the model four hard rules: 1. **PLAIN ENGLISH for English output** — plain and direct; 2. **literary-vernacular hybrid for Chinese output** — a compact classical-modern blend (e.g. "浅说", "文法表达"); 3. **Avoid verbs in the output** — verbs are the skeleton of a sentence; remove them and the sentence collapses into a phrase; 4. **Shrink to under 5 words, like a professional poet** — shorter is better. Six correct/incorrect example pairs anchor the target style, so the model imitates the pattern instead of guessing what "concise" means. ## Features - **Zero intrusion**: identical to the official `first-prompt-llm` logic (first human message, streaming generation, fallback on failure) — only the prompt changes; - **Auto take-over**: mutually exclusive with the official plugin; on load it shuts the official provider down and registers itself, so exactly one title generator stays active; - **Fail-safe**: on model error, timeout, or empty output, it falls back to the official deterministic fallback title; - **Configurable**: input byte cap, output token cap, and timeout are all tunable. ## Installation This plugin is a dsh bundle — install it directly from GitHub, no manual config editing: ```bash dsh plugin --profile web add github:Relethe/dsh-brief-session-title ``` If the package is published to npm, the same command works with the package name: ```bash dsh plugin --profile web add dsh-brief-session-title ``` For a local checkout (relative paths resolve against your invoking directory): ```bash dsh plugin --profile web add ./dsh-brief-session-title ``` `dsh plugin` forwards its arguments to pnpm and then reconciles: because this package declares `dsh.bundle`, it joins the profile's bundle layer automatically, and the bundle's own `cordis.patch.yml` applies (disable the official title plugin + mount this one). **Restart DSH — new session titles take effect from then on.** ## Configuration | Key | Default | Meaning | |---|---|---| | `maxInputBytes` | 4096 | UTF-8 byte cap for the framed JSON input; oversized input fails instead of truncating | | `maxOutputTokens` | 64 | Output-token cap for the title request | | `timeoutMs` | 60000 | Per-request timeout in milliseconds | | `provider` / `model` | omitted | Supply both to use a dedicated route; omit to reuse the session's main-request route | ## Notes - **New titles only**: existing sessions keep their stored titles; - **Manual renames pin**: a user-renamed title is never overwritten by automatic generation (official DSH behavior); - **To revert**: `dsh plugin --profile web remove dsh-brief-session-title` — the official title plugin resumes automatically. ## License MIT
Install
dsh plugin --profile web add github:Relethe/dsh-brief-session-title
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-brief-session-title from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.