Bundle
@dsh-mixxed/dsh-client-ui-settings-skills
Out-of-tree dsh plugin: a Skill management page in Web Settings (read-only catalog over harness / user / workspace dimensions).
- Source
- dsh-mixxed
- stars
- 1 stars
- License
- MIT
- Updated
- Updated yesterday
Readme
# ui-settings-skills
A dsh plugin that adds a **Skill management** page to Web Settings, organized by workspace.
Built as a fully out-of-tree plugin — the deepseek-harness source stays untouched. It registers a `settings.section` slot (the page appears in Settings → **技能 / Skills**) and serves its skill catalog over its own HTTP route (`ctx.webServer`).
## Install
1. Install the plugin from npm (published as `@dsh-mixxed/dsh-client-ui-settings-skills`):
```sh
dsh plugin --profile web add @dsh-mixxed/dsh-client-ui-settings-skills
```
The package declares `dsh.bundle` (its bundled `cordis.patch.yml`), so `dsh plugin add` automatically appends it to the profile's `dsh.profile.bundles` layer stack and the plugin mounts on the next boot — **no manual `cordis.patch.yml` editing**.
Upgrading an install that predates the bundle declaration: remove the legacy `ui-settings-skills` row from `$DSH_HOME/profiles/<name>/cordis.patch.yml` — the bundle layer now supplies it, and leaving both would mount the id twice.
2. Restart the profile (new plugins are discovered at boot), then open Settings → **技能 / Skills**.
### Building from source (development / offline)
```sh
pnpm install
pnpm run typecheck
pnpm test
pnpm run build
npm pack # produces dsh-mixxed-dsh-client-ui-settings-skills-<version>.tgz
dsh plugin --profile web add ./dsh-mixxed-dsh-client-ui-settings-skills-<version>.tgz
```
## Features
- One tab per workspace, with global and user-level skills folded into every workspace view
- **Manages only user-level skills (`~/.agents/skills`) and project skills** — preset-loaded (`custom`) and built-in skills are never shown or toggled
- Search box that filters skills by name or description
- Localized scope badges on every row (用户 / User, 工作区 / Workspace)
- Skill descriptions clamp to two lines, with the full text shown on hover
- **Enable/disable toggles** on every managed row — see [Skill toggles](#skill-toggles)
## Skill toggles
Every managed skill row carries a switch. Turning a skill **off**:
- removes it from the model catalog (`tool-skill`) and the `/name` injection boundary,
- removes it from the `/` command menu in the conversation composer,
- takes effect immediately — the next `/` open reflects the change.
Scope semantics:
- **User-level skills** (`~/.agents/skills`) toggle globally across every workspace.
- **Project skills** toggle per workspace: the same skill can stay enabled in one workspace and disabled in another.
State persists in the settings document (`ui-settings-skills.policy` namespace), so it survives profile restarts, and turning a skill back **on** restores it everywhere.
> Preset-loaded (`custom`) and built-in skills are never managed and never shown on the page.
## Verify
```sh
dsh --profile <name> --dump-config | Select-String ui-settings-skills
```
The composed config shows the `ui-settings-skills` row, and `$DSH_HOME/profiles/<name>/package.json` lists `@dsh-mixxed/dsh-client-ui-settings-skills` under `dsh.profile.bundles` (auto-appended by `dsh plugin add`).
After the restart, the Skills page shows one tab per workspace, a search box, and localized skill rows.
## Config (optional)
The plugin runs in the `host` role by default (routes + settings namespace + shadowing provider). A `policy` role registers only the shadowing provider — no namespace, no routes. Override it from your profile's own `cordis.patch.yml` — the user layer is applied after the bundle layer, so an id-targeted patch overrides the bundled mount row:
```yaml
- id: ui-settings-skills
name: "@dsh-mixxed/dsh-client-ui-settings-skills"
config:
role: policy # default 'host'
```
## License
[MIT](LICENSE)
Install
dsh plugin --profile web add github:dsh-mixxed/dsh-client-ui-settings-skills#a1f1f1f12755bbe9037685d2ae83be468e4ac304
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-mixxed-dsh-client-ui-settings-skills from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.