ChatGPTClaudeGrok / X / CursorGemini

Uninstall DSH subagent providers: packages and presets

Uninstall & CleanupPublished 2026-10-21Author: DeepSeek Plugin Market
DeepSeek HarnesssubagentsuninstallCodexClaude Code
Uninstalling DSH subagent providers has three layers: remove the bundle, restart the profile, and remove the preset row. A removed package can leave an entry.

Removing a subagent provider is not one remove command: package, preset tool row, and running process are three separate states. Delete the package but keep the preset row, and an agent still sees an entry pointing at a missing backend. Remove the preset row but keep the package, and the dependency remains. The safe order is remove → restart → preset cleanup, with a check after each.

DeepSeek Harness: Confirm what is installed

Inspect the profile’s bundle list before removing anything, so you do not delete an unrelated plugin. Steps:(source)

  1. Identify the profile — web or a custom profile. Expected: the --profile name is correct.
  2. List dependencies — dsh plugin --profile <name> list. Expected: Codex or Claude Code appears.
  3. Inspect the manifest — $DSH_HOME/profiles/<name>/package.json. Expected: the package appears in dsh.profile.bundles.

If the list is empty but the preset still has a tool row, the package was already removed and only configuration residue remains; go straight to preset cleanup.

DeepSeek Harness: Remove commands and restart

remove forwards to pnpm, updates the manifest on success, and does not change a running profile. Commands:(source)

sh
# Remove Codex only
dsh plugin --profile web remove @deepseek-ai/dsh-subagent-codex

# Remove Claude Code only
dsh plugin --profile web remove @deepseek-ai/dsh-subagent-claude-code

# Remove both
dsh plugin --profile web remove \
  @deepseek-ai/dsh-subagent-codex \
  @deepseek-ai/dsh-subagent-claude-code
  1. Put --profile first — the rest is forwarded to pnpm. Expected: the removal lands in the correct directory.
  2. Confirm success — read the output for resolution errors. Expected: the manifest and bundles update.
  3. Restart the profile — stop and start dsh web. Expected: the running process drops the old bundle set.

Do not delete only the directory under node_modules; that bypasses the manifest and leaves a “dependency recorded but files missing” state.

DeepSeek Harness: Remove the preset tool row

After the package is gone, the preset row does not disappear automatically; it becomes an entry with no backend. Steps:(source)

  1. Find the preset actually used — confirm it is an editable copy. Expected: not a read-only built-in.
  2. Remove the matching tool row — only the provider you removed. Expected: new agents no longer show it.
  3. Start a new session — old sessions may keep a tool snapshot. Expected: the new session’s tool list is clean.

If both providers were removed, remove both rows. If only one was removed, keep the other row and its backend.

DeepSeek Harness: Residual checks

Check three kinds of residue: the other provider, backend credentials, and old sessions. Checklist:(source)

  1. The other provider — confirm it was not removed accidentally. Expected: dsh plugin list still shows it.
  2. Environment and auth — remove the backend’s own token or configuration if unused. Expected: no orphan credentials.
  3. Old session records — logs remain, but calls to the removed provider fail. Expected: know which sessions need a new backend.

Removing the DSH bundle does not have to remove the backend CLI; distinguish “DSH no longer calls it” from “the machine no longer has it”.

DeepSeek Harness: What changes in the manifest and preset

remove changes dependencies and the configuration layer, not the copied preset. Official behavior:(source)

  • Dependency removed — the package leaves the profile dependencies. Expected: dsh plugin list no longer shows it.
  • Bundles updated — the bundle leaves dsh.profile.bundles. Expected: the next start stops applying its patch.
  • Running process — keeps the startup bundle set. Expected: restart required.
  • Preset tool row — not deleted automatically. Expected: remove it manually or the entry remains.

So a successful remove is only step one; manifest, process, and preset must all agree.

DeepSeek Harness: Three removal scopes

Choose “remove one / remove both / remove completely” deliberately. Three:(source)

  1. Remove one — keep the other provider and its preset row. Expected: minimal impact, good for switching backends.
  2. Remove both — remove both preset rows and fall back to in-process spawning. Expected: fewer dependencies and fewer capabilities.
  3. Remove completely — also delete the backend CLI, credentials, and old configuration. Expected: no related tools remain, but irreversible.

If the provider is only paused, choose the first. Save complete removal for when you are sure it is no longer needed.

Verification after removal

Removal is complete only when the entry is gone, not when the package is gone. Steps:

  1. Dependency list — dsh plugin --profile <name> list no longer shows the target. Expected: the manifest updated.
  2. New-session tools — the target subagent entry no longer appears. Expected: the preset row was removed.
  3. Startup log — the provider is no longer loaded. Expected: no resolution error or dormant registration.

Only after all three should you consider the uninstall complete.

DeepSeek Harness FAQ

Do I need to reinstall to restore the provider? Yes. After removal the manifest no longer references it; run dsh plugin add and restart to restore it.

Can I disable only the tool row and keep the package? Yes. That is a pause: the package stays on disk and can be re-enabled by restoring the row.

Does removal affect other profiles? No. Plugins are installed per profile; only the profile passed to --profile changes.

The short version: subagent removal is package, preset, and process; missing any one leaves a visible but unusable entry.

ChatGPTClaudeGrok / X / CursorGemini

FAQ

How do I remove the Codex subagent provider?

Run dsh plugin --profile <name> remove @deepseek-ai/dsh-subagent-codex, then restart the profile. Codex and Claude Code are independent bundles; removing one does not affect the other.

Why does an agent still show subagent tools after remove?

DeepSeek Harness: the bundle registers the provider; the tool row lives in a copied preset. After remove, delete the matching preset tool row and restart. Otherwise the entry remains but points at a missing backend.

Does uninstalling a subagent provider affect normal conversations?

DeepSeek Harness: not directly, but old sessions still contain records of earlier subagent calls. Later calls that point at the removed provider fail. Keep the provider or switch to another backend in a new session.

Do I need to remove the backend CLI and credentials too?

DeepSeek Harness: it depends on the goal. Removing only the DSH bundle does not require deleting the backend CLI. If the machine no longer uses Codex or Claude Code, clean the executable and credentials according to their own docs.

Can I remove both providers at once?

DeepSeek Harness: you can remove both packages in one command, but removing one at a time and restarting is easier to verify. That also shows whether another agent still depends on the provider.

Related Terms

dsh-subagent-codex
dsh-subagent-codex is the official Codex subagent provider bundle for DeepSeek Harness. Install with dsh plugin add and remove with dsh plugin remove; it registers a dormant host provider.— DeepSeek Harness reference - dsh CLI behavior
dsh-subagent-claude-code
dsh-subagent-claude-code is the official Claude Code subagent provider bundle. It is independent of the Codex bundle and can be installed or removed separately.— DeepSeek Harness reference - dsh CLI behavior
agent preset
An agent preset is a predefined set of agent capabilities and tool rows in DeepSeek Harness. After installing a subagent provider, its tool row must be enabled in a copied preset.— DeepSeek Harness reference - dsh CLI behavior
dsh.profile.bundles
dsh.profile.bundles is the ordered bundle list in a profile manifest. Removing a dependency removes its bundle from the configuration layer stack, but a running process needs a restart.— DeepSeek Harness reference - dsh CLI behavior

Sources