Back to home@NeoRrrr

dsh-project-skill-paths

Project-scoped custom Skill roots for DeepSeek Harness

Stars
0
Language
JavaScript
Created
Aug 25, 2026
Updated
Aug 25, 2026
GitHub repo

Introduction

DSH Project Skill Paths

Project-scoped custom Skill roots for DeepSeek Harness. The plugin finds the nearest Git project for each session cwd, reads .dsh/skill-paths.yaml, and adds those directories to that project's Skill discovery.

中文说明

Features

  • Configure any number of project-relative Skill roots.
  • Add and remove paths from the DSH Desktop settings card.
  • Use . to target the current DSH workspace or select a project directory.
  • Reload changes to .dsh/skill-paths.yaml without restarting DSH.
  • Reject absolute paths and .. paths outside the project by default.
  • Keep every project's configuration inside that project.

Install

Install the tagged GitHub release into the Desktop profile:

dsh plugin --profile desktop add github:NeoRrrr/dsh-project-skill-paths#v0.3.0

Alternatively, download the prebuilt dsh-project-skill-paths-0.3.0.tgz asset from the v0.3.0 release, then install it locally:

dsh plugin --profile desktop add .\dsh-project-skill-paths-0.3.0.tgz

Restart DSH Desktop after the initial installation. The plugin requires DSH >=0.1.1-rc.2 and Node.js ^22.19.0 || >=24.0.0.

Configure a project

Open Settings → Plugins → Plugin configuration → Project Skill Paths. Enter . for the current DSH workspace or select a project directory, then add or remove Skill roots and save.

The settings card writes this file at the detected Git project root:

# .dsh/skill-paths.yaml
version: 1
skillPaths:
  - .codex/skills
  - tools/AI/claude/skills

Each entry is resolved relative to the project root. A Skill root may contain either <skill-name>/SKILL.md or <skill-name>.md, following the built-in DSH filesystem provider's naming and frontmatter rules.

Safety and scope

The plugin reads Skill files only while DSH resolves Skills for a session. It writes only the selected project's .dsh/skill-paths.yaml when you save the settings card. It does not read credentials, make outbound network requests, or modify Codex configuration.

By default, absolute paths and paths that escape the project are rejected. To explicitly allow shared paths outside a project, override the plugin row in the profile's cordis.patch.yml:

- id: project-skill-paths
  config:
    allowExternalPaths: true

DSH patch configuration replaces the row's complete config value rather than deep-merging it.

Priority and reload behavior

Configured paths use rank 250. Built-in project roots remain ahead of them, while configured project paths take precedence over global and user-level roots with the same Skill name:

SourceRank
<project>/.dsh/skills100
<project>/.agents/skills200
This plugin's configured roots250
Global customSkillDirs300
User-level roots400/500

The plugin watches the project YAML file for creation, changes, and deletion. Skill directory contents continue to use DSH's built-in filesystem watcher.

Development

npm install
npm run check
npm pack --dry-run

For local development, install a link into a separate DSH profile:

dsh plugin --profile desktop add "link:$PWD"

Uninstall

dsh plugin --profile desktop remove dsh-project-skill-paths

License

MIT