All plugins

DSH / BUNDLE / CLIENT-UI

dsh-modes

v0.9.1xiaohai-78 / dsh-modesc6d00b9da8

InstallableBundlesUI & client pluginsCommunity · Topic auto-analysisWeb UI

Overview

dsh-modes

Mode manager for DeepSeek Harness (dsh): switch what each agent mode can do, edit its system prompt and tool descriptions, manage skills per mode with versions and imports from Codex and Claude Code, create modes from templates, and merge built-in updates after a dsh upgrade.

README / EN

Package documentation

Registry summary

Mode manager for DeepSeek Harness (dsh): switch what each agent mode can do, edit its system prompt and tool descriptions, manage skills per mode with versions and imports from Codex and Claude Code, create modes from templates, and merge built-in updates after a dsh upgrade.

dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.

Read the full README on GitHub

LIMITATIONS

Known limitations

- **Sync needs a baseline**: syncing compares against the built-in plugin list recorded at your last save. Modes changed with a version before 0.5.0 have no such record, so the first sync keeps every difference from the built-in version as your change. Every save after that records a baseline. - **Scope of Live prompt**: it applies only to the opening and closing prompt text. The "complete prompt" and "runtime context" settings still apply to new sessions only. - **Scope of chat edits**: `mode_prompt` reads and writes only the opening prompt text. - **Skills listed**: the page lists the skills the modes find without a workspace: user, custom, and packaged skills. Project skills (`<project>/.dsh/skills`, `<project>/.agents/skills`) depend on a session's workspace and are not listed. - **Skills written for other tools**: DSH reads `name`, `description`, `whenToUse`, `metadata`, `disable-model-invocation`, and `user-invocable`; other fields, such as Claude Code's `allowed-tools` or `model`, have no effect. A skill that relies on another tool's own tools (for example Codex's image generation) is imported but may not work in DSH. - **Where import looks**: `$CODEX_HOME/skills` (default `~/.codex/skills`), `$CLAUDE_CONFIG_DIR/skills` (default `~/.claude/skills`), and `skills/<name>/SKILL.md` up to six levels below `~/.claude/plugins`, keeping the most recently changed copy of a plugin cached in several versions. Project skills such as `<project>/.claude/skills` are imported through **Folder**. A skill as a single `<name>.md` file is not listed. - **Replacing on Windows**: the files are overwritten one by one, so a failure part way leaves a mix of old and new files. Restore the version saved before the import from the skill's version list. - **A new skill just written**: the page waits 0.8 seconds for DSH's file watcher before it reads the list again. If a new skill still shows "This mode cannot find it", click **Refresh**. - **Skills turned off in every mode**: this needs the policy row in every mode, so every built-in mode gets a profile override. - **Order against other skill plugins**: the row's entries use rank -1000. A plugin that registers entries in the same scope with a lower rank wins over them. - **A hidden skill's details**: once a skill is hidden in every mode, the page shows the description and file it had when last seen. - **Update check**: it needs a reachable registry. When the registry cannot be reached the footer says the check failed. A mirror can lag behind npm, so the newest release may show up later. - **Version record after an upgrade**: an upgrade from the page records the dependency as the tarball address instead of a version number. That does not affect use or later upgrades. - **A new version that cannot start**: DSH does not keep running the old one. Run the rollback command from the banner in a terminal. - **Code mode (PTC)**: tool descriptions are not supported there yet. In code mode the model reads tool descriptions as comments inside the generated SDK text, which an edit does not rewrite. - **Tools registered at session start**: the list comes from the tools each mode registers. A tool that is registered only when a session starts (for example `subagent`) appears after a session of that mode has made its first request. - **Plugins that repeat tool descriptions**: a plugin that copies descriptions into the prompt, such as a tool-activator's `<available_tools>` list, still shows the built-in text. The tool definitions sent to the model carry your edit. - **Hand edits**: the plugin reads `tool-descriptions.json` once and again after each save from the page. Restart dsh after editing it by hand. A damaged file is reported and never overwritten. - **Session count**: counting saved sessions before a delete reads each session's record. With many sessions it stops after 8 seconds and shows "at least N". - **Permissions**: write actions rely only on dsh's own sign-in check. <details> <summary><b>Developer ref