WilShi/dsh-skill-station

Skill station for DeepSeek Harness: scan Claude/Codex/Cursor/Gemini skill libraries, one-click import, global/project skill management, drag-and-drop install — all from a sidebar panel.

Project Overview项目介绍

dsh-skill-station is a skill management panel inside DeepSeek Harness, opened from a single sidebar button. It scans the skill libraries of Claude Code, Codex CLI, Cursor, and Gemini CLI for one-click import, unifies global and project skills, and supports detail viewing, in-place editing, export, drag-and-drop install, local path copy, and a restorable trash. Use it when migrating skills across tools or centralizing skill maintenance. Caveat: imported skills are third-party content; review them before enabling.

dsh-skill-station 是 DeepSeek Harness 的技能管理面板,从侧边栏一键打开。它扫描 Claude Code、Codex CLI、Cursor、Gemini CLI 的技能库并一键导入,统一管理全局与项目技能,支持详情查看、编辑、导出、拖拽安装、本地路径复制和回收站恢复。适合在多工具间迁移和集中维护技能时使用。注意:导入的技能属于第三方内容,启用前请先审阅。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add dsh-skill-station

WilShi/dsh-skill-station 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-skill-station

English | 中文

A skill hub inside DeepSeek Harness: one sidebar button opens a panel that scans the skill libraries of Claude Code, Codex CLI, Cursor, and Gemini CLI, imports skills with one click, manages global and project skills, and installs a skill folder by dragging it in.

Install

dsh plugin --profile web add dsh-skill-station

Restart dsh web. The station appears as a 技能站 button above Settings in the sidebar, and as a settings section.

What you get

  • Skill library — every skill in the writable roots, grouped: global ~/.dsh/skills, shared ~/.agents/skills, and per-workspace <project>/.dsh/skills / .agents/skills. Search and user-defined scene tags, enable/disable (rewrites the disable-model-invocation frontmatter flag), delete into a restorable trash.
  • Detail, edit, export — open any skill to browse its file tree and edit files in place (saving SKILL.md re-reads the invocation flags live), download it as a re-importable zip, and scaffold new skills from a wizard. A diagnostics pass flags every skill the host loader would ignore — strict-YAML, missing fields, legacy keys — with one-click repair for broken frontmatter.
  • External import — read-only scan of ~/.claude/skills, ~/.codex/skills, ~/.cursor/skills, ~/.gemini/antigravity/skills and ~/.gemini/skills, plus each selected workspace's .claude|.codex|.cursor|.gemini/skills. Pick candidates, choose a target root, import with a conflict policy (skip / rename / replace — replaced skills go to the trash). Skills appear in the session catalog without a restart.
  • Drag-and-drop install — drop a skill folder (or several) or a .zip archive onto the install tab, or pick them. Zip archives are decompressed server-side, which also carries large skills with vendored dependency trees. Files are validated (SKILL.md with kebab-case name and description) and previewed before anything is written.
  • Local path install — paste the absolute path of a skill folder already on this machine and the server copies it disk-to-disk: no upload, no size limit. Every install is staged and renamed into place, so a failed copy never leaves a half-installed skill.
  • Trash — deletions move to ~/.dsh/skill-station/trash with an origin manifest; restore or empty from the panel.

Security model

  • Writes only ever land inside the writable skill roots listed above; every path is containment-checked after normalization, symlinks are never followed during copies, and uploads reject traversal segments.
  • Mutating HTTP endpoints reject cross-origin requests; the API is served on the same local server as the GUI.
  • External agent directories are scanned read-only; the station never modifies them.
  • Uploaded and imported skills are third-party content — review them before enabling.

Config

All fields optional, under the dsh-skill-station plugin row in your profile patch:

plugins:
  dsh-skill-station:
    maxBodyBytes: 67108864      # upload request cap (default 64 MB)
    sources:                    # replace the default scan sources entirely
      - id: claude
        label: Claude Code
        userDirs: ['~/.claude/skills']
        projectDirs: ['.claude/skills']

Development

npm install
npm run build     # tsc server build + esbuild client bundle
npm test          # vitest unit tests
node scripts/smoke.mjs   # in-process API smoke (needs a prior build)

The client bundle is served through the shell's window.__ModuleLoader__ and registers into the sidebar.footer.action and settings.section slots.

License

MIT

上一个 Prev dsh-snippets 下一个 Next dsh-douyin-creator