DeepSeek Harness Plugin

Ri0n72Y/dsh-workspace-scope

Stars ★ 1 Category UI Enhancements Added 2026-08-18 npm dsh-workspace-scope

Per-workspace Skill and MCP enablement for DeepSeek Harness: control which skills and MCP servers new sessions load, per project.

Install

# from npm (prebuilt)

dsh plugin --profile web add dsh-workspace-scope

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:Ri0n72Y/dsh-workspace-scope

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. Only install sources you trust, and pin a commit (github:owner/repo#sha).

README

ci

A DeepSeek Harness plugin that turns Skills and MCP servers on and off per workspace.

The more skills and MCP servers you install, the larger the startup context of every new session. This plugin lets each project enable only what it needs, like VS Code with many language packs where each project opens only the ones it uses.

中文版:README.md

Usage

The entry lives on the new-session screen: the "Workspace scope" button in the tool row of the input card. Ongoing conversations do not show it, since the scope is fixed once a conversation starts and only affects sessions created later.

The dialog lists everything under two groups, Skills and MCP servers, and each group heading can be collapsed on its own:

  • A search box filters the entries
  • Each row has a switch; on means enabled
  • Clicking the row expands details (description for skills, tool count for MCP servers)
  • Enable all / disable all quick buttons at the bottom; every change saves immediately

Saving writes the config to .dsh-scope.json in the workspace root and only affects sessions created later in that workspace. Once a conversation starts, its config is fixed; changing it mid-conversation does not affect that conversation. Excluded skills can still be loaded ad hoc with the /skill-name gesture.

Configuration

The file is .dsh-scope.json in the workspace root:

{
  "default": {
    "mode": "whitelist",
    "skills": ["<skill-name>"],
    "mcps": ["<server-name>"]
  }
}
Field Type Meaning
mode string Always saved as whitelist; reading accepts default (everything enabled) and blacklist (list means excluded)
skills string[] Enabled skill names
mcps string[] Enabled MCP server names

Data flow

flowchart LR
    A[User opens the dialog] --> B[Toggles Skills and MCP servers]
    B --> C[Save]
    C --> D[.dsh-scope.json<br/>workspace root]
    E[New session] --> F[pre-step reads the config]
    D --> F
    F --> G[Skill catalog message<br/>trimmed to the enabled set]
    F --> H[MCP tools<br/>restricted to enabled servers]
    G --> I[Model context]
    H --> I
    J[Before tool execution] --> K[Fallback blocks excluded skills<br/>/skill-name gesture still works]
    K --> I

Contributing

Open an issue for bugs or ideas. Before sending a pull request, read CONTRIBUTING.md. By contributing you agree to the MIT license.

License

MIT

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →