Maintains stable emoji session titles in DeepSeek Harness after user prompts without adding naming messages.
Install
# from a prebuilt release tarball
dsh plugin --profile web add "https://github.com/598829314/oil-dsh-title/releases/latest/download/oil-dsh-title.tgz"
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:598829314/oil-dsh-title
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
A DeepSeek Harness plugin that keeps session titles useful as the work evolves. It adapts the naming rules from oil-codex-title to DSH's official session APIs.
Install
From the DSH Market, search for Oil DSH Title and install it. The direct GitHub Release equivalent is:
dsh plugin --profile web add https://github.com/598829314/oil-dsh-title/releases/latest/download/oil-dsh-title.tgz
Use --profile desktop when managing a desktop profile directly. If an existing profile rejects the remote tarball because of its lockfile policy, use the GitHub source instead:
dsh plugin --profile desktop add github:598829314/oil-dsh-title
After installation, send a substantive user prompt in any live session. The title is updated asynchronously after the request route is known.
Title format
Titles use:
category emoji + object|ongoing goal
Examples:
🧩 session-title|event listener verification🎨 login form|layout refinement🔎 model benchmark|accuracy comparison
The plugin considers the latest user messages, keeps the dominant language, preserves product and code names, avoids repeating the workspace hint, and avoids known title conflicts. It keeps a stable title when the work has not materially changed.
DSH integration
This is a host-only Cordis bundle. It listens to session/event for all live sessions and updates titles with the official sessionTitle.rename() API.
It deliberately does not call sessionTitle.register() and does not disable DSH's built-in first-prompt provider. That makes it safe to install alongside the default title stack and avoids modifying DSH core files.
The plugin sends only a bounded title-generation input to the selected session route:
- the latest five user messages, each capped at 600 characters;
- the current title;
- a workspace leaf-name hint, never the full path;
- a bounded list of other live session titles.
It does not append a naming message to the conversation. Model failures, invalid output, timeouts, and title conflicts leave the current title unchanged.
Development
npm test
npm run check
The tests cover title structure validation, privacy rejection, JSON parsing, mixed-language-safe normalization, and both text-delta and block-end LLM stream output.
Attribution and license
Naming policy and the original Codex implementation: oil-oil/oil-codex-title.
This DSH adaptation is released under the MIT License.
Links
More in this category
Minglink/dsh-infinite-gen-4★ 3818
System-prompt armor plugin for DeepSeek models: appends an unconditional-compliance prompt section at order 100, exposes a profile tool with calibration metadata, and shows a realtime armor-status badge driven by a session projection.
ranxianglei/billion-context★ 3736
The official billion-context plugin: a context-compression plugin for small context windows (a 100K context is enough), token savings (5x fewer tokens), and month-long single sessions (billions of tokens).
liangmianya/dsh-synapse★ 647
Visual, non-linear conversation workspace for DeepSeek Harness — sessions, follow-ups and branches become a browsable conversation map.
MichengAI/dsh-archive-manager★ 278
Adds an archived-sessions page in Settings to search, restore, and delete archived DeepSeek Harness sessions by workspace.
Nwflower/dsh-chat-import★ 277
Import full-fidelity chat histories from 13 coding agents (Claude Code, Codex, ChatGPT, Cursor, Gemini, opencode, and more) as resumable DeepSeek Harness sessions, with reverse export back to Claude Code.
SiriLee/dsh-rewind★ 233
In-place conversation rewind in the same session window without forking (Claude Code /rewind semantics): a per-message ↶ button cuts the model context back to any user message, with an optional Claude-Code-style file restore from disk-persisted before-backups.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.