설치
npx -y @deepseek-ai/dsh plugin --profile web add github:QQ-M/dsh-skill-market이 설치 명령은 GitHub 저장소 주소에서 생성된 확인되지 않은 시작점입니다.
README
유지 관리자가 작성한 문서 스냅샷입니다.
dsh-skill-market
A DeepSeek Harness plugin that adds a Skill Market to the web UI settings page: search GitHub for skills and install them with one click into ~/.dsh/skills (the user-dsh skill root that the model's skill tool already reads).
- Host half (
index.js): awebServerprefix route/skill-market/api/*doing GitHub repo search, repo inspection, tarball download + extract, and skill install/uninstall. - Browser half (
client.js): a hand-authored__ModuleLoader__bundle (no build step) registering asettings.sectionentry labeled 技能市场 / Skill Market.
Features
- Search GitHub (dsh-skill topic first, keyword fallback) for skill repos.
- Inspect a repo's layout (root
SKILL.md→ one skill;skills/<name>/SKILL.mdorskills/<name>.md→ several). - One-click install: downloads the repo tarball from
codeload.github.com, extracts it, copies each skill into the install dir. - Installed-skills tab with per-skill uninstall (moved to
.trash-*, recoverable). - Same-origin POST guard on mutating endpoints.
Install
# from GitHub (pin a commit for production use)
dsh plugin --profile web add "github:QQ-M/dsh-skill-market"
# or from a tarball / local path:
# dsh plugin --profile web add ./dsh-skill-market-0.1.0.tgz
Then restart the web profile (dsh web) — the browser half is picked up from the dsh.client declaration at boot.
Configuration
The bundle patch (cordis.patch.yml) inserts the plugin row; the following config keys are supported:
| Key | Default | Meaning |
|---|---|---|
installDir | ~/.dsh/skills | Where installed skills are written |
githubToken | '' | GitHub token to lift the 10 req/min anonymous search limit |
githubTokenFile | '' | Path to a file containing a GitHub token (e.g. /opt/dsh-work/gh-token) |
searchLimit | 20 | Max search results |
If neither token option is set, GITHUB_TOKEN from the environment is used. Anonymous search works but is rate-limited (~10 req/min), so a token is recommended for heavy browsing.
Example override in your profile cordis.patch.yml (replaces the whole row by id — restate every key):
- insert:
- id: skill-market
name: dsh-skill-market
config:
installDir: /root/.dsh/skills
githubTokenFile: /opt/dsh-work/gh-token
API
All endpoints are same-origin JSON under /skill-market/api/:
GET /api/search?q=<query>→{ ok, items: [{ fullName, owner, repo, description, stars, updatedAt, url, topics }] }GET /api/repo?owner=&repo=→{ ok, defaultBranch, description, stars, url, skills: [{ name, path }] }POST /api/install{ owner, repo, ref? }→{ ok, branch, installed: [{ name, path, description }] }GET /api/installed→{ ok, installDir, items: [{ name, path, description }] }POST /api/uninstall{ name }→{ ok, message }
Development
node --check index.js # syntax check host half
node --check client.js # syntax check browser bundle
The host half depends only on node:* builtins + @deepseek-ai/schemastery (already present in the profile). The browser half depends only on the module table's react.
저장소 정보
- 언어
- JavaScript
- 라이선스
- MIT
- 최신 릴리스
- v0.1.0
- 마지막 업데이트
- 2026. 8. 17. PM 2:17
신중하게 설치하기
소스 코드, 권한, 수명 주기 스크립트, 의존성 및 네트워크 접근을 검토하고 신뢰하지 않는 플러그인은 격리 환경에서 테스트하세요.