# dsh-skill-viewer
(English|[简体中文](README.md))
A DSH plugin for managing skills right from the web UI and terminal
## Features
- Skill card list: preview installed skills; expand a card to read the full content
- Status tags: Enabled / Disabled, styled like the built-in plugin list
- Management: hot enable/disable switch, delete, search by name; the page refreshes on entry
- Add skills: choose a single `.md` file or a directory bundle (folder with a top-level `SKILL.md`); invalid content is rejected with a reason
## Install
1. Install the package (its bundle layer auto-mounts it — no config editing)
```bash
dsh plugin --profile web add github:Fishquito7/dsh-skill-viewer
```
> pnpm v11 security policy: git-hosted dependencies are blocked from running
> their prepare build scripts by default. If you see “git-hosted plugins
> build on install...”, add the key pnpm printed above under `allowBuilds`
> in the profile's `pnpm-workspace.yaml` and re-run; or install from the
> release tarball instead (no git involved, no such restriction):
>
> ```bash
> dsh plugin --profile web add https://github.com/Fishquito7/dsh-skill-viewer/releases/download/v0.2.4/dsh-skill-viewer-0.2.4.tgz
> ```
2. Restart the gateway
```bash
dsh-restart
```
Then refresh the page: Settings → Skills appears right below Plugins.
## CLI
The package ships a `dsh-skill` command for terminal-based management (also hot; works while the gateway is down):
```bash
dsh-skill list # list skills with their state
dsh-skill add # add a skill (a single .md file, or a bundle dir with a top-level SKILL.md)
dsh-skill disable # disable
dsh-skill enable # enable
dsh-skill delete # delete (asks for confirmation)
```
## How it works
The plugin doesn't parse skills itself — it's just a management surface over the skill files: every action in the page (or via `dsh-skill`) ends up as a change to the skill files on disk (`SKILL.md`), and DSH's own file watcher notices immediately. That's why enable/disable, add and delete are all hot — no gateway restart.
- Disable = rename `SKILL.md` to `SKILL.md.disabled`, enable = rename it back
- A disabled skill leaves the `/skill` trigger and the model catalog; it stays dimmed on the page and can be re-enabled anytime
- Deployment-bundled skills are read-only: they cannot be disabled or deleted
## Uninstall
```bash
dsh plugin --profile web remove dsh-skill-viewer
```
## License
MIT