Introduction

The core philosophy of DeepSeek Harness (DSH) is “everything is a plug-in”. In the plug-in ecosystem, dsh-skill-studio focuses on extracting reusable skills from local sessions, while dsh-skill-recommender focuses on recommending existing open-source skills from the community by analyzing session records. They are complementary: the former builds internal assets, and the latter expands external capabilities.

Plug-in Overview

This plug-in is maintained by zhengjy01 and follows the MIT license. It does not depend on external APIs and runs entirely locally. It can read DSH, Codex, and Claude session records, build a user profile, and combine local and remote skill directories to score and rank skills using a weighted model.

Installation and Enabling

Install it using the official plug-in command. After installation, restart the host and refresh the Web interface.

  1. Run the installation command:
dsh plugin --profile web add dsh-skill-recommender
  1. Restart and configure:
    After restarting the DSH host, refresh the browser. Go to the Web settings panel and find the Skill Recommender card.

Core Features

1. Session Analysis and Profile Building

The plug-in reads local files:
* DSH sessions: ~/.dsh/sessions/**/session.jsonl.zstd
* Codex sessions: ~/.codex/*.jsonl
* Claude sessions: ~/.claude/projects/**/*.jsonl
No API key is required. Based on the data read, it builds a user profile containing dimensions such as topic distribution, high-frequency tools, task types, and project directories.

2. Skill Catalog Ingestion

The plug-in integrates multi-source skill directories:
* Local directories: ~/.agents/skills, ~/.dsh/skills, and the 2️⃣ AI/Skill directory in Obsidian.
* Remote directories: supports lists such as awesome-dsh-skills, awesome-dsh-plugin, and awesome-deepseek-harness, as well as Agent/Claude/Codex skills on the GitHub platform.
* Includes a built-in seed directory to ensure that results are returned even without input.

3. Weighted Scoring and Ranking

A weighted model is used to calculate the match between skills and the user:
$$ score = \frac{\sum(w_i \times sim_i)}{\sum(w_i)} $$
The dimensions include: topic, tool, task, and proximity.
The default weight model is {topic: 50, tool: 50, task: 35, near: 40}.

4. Adjustable Match Index

The plug-in provides a global “match index” (0–100, default 60) as a gate. A skill is recommended only when its score is greater than or equal to this index. The Web panel supports adjusting this slider in real time, allowing you to filter for highly relevant or a very small set of highly matching skills.

5. Web Settings Panel

In the Web settings panel, you can:
* Click the Scan button to trigger an analysis.
* Drag the Match Index slider to adjust the filtering threshold.
* Drag the weight sliders for the four dimensions to adjust scoring weights.
* Enable or disable various directory sources.
* Enable “Include Plugins” to include DSH plug-ins.
* Set the background automatic scan frequency (default 60 minutes).

Command-Line Tools

The plug-in provides the following command-line tools:

  • recommender_scan: Scans sessions and builds a profile, generating initial recommendations.
  • recommender_recommend: Recommends skills, with support for dynamically overriding the index, topN, and weights parameters.
  • recommender_profile: Views the current user profile (topics, tools, tasks, projects).
  • recommender_config: Configures source directories, parameters, window size, and more.
  • recommender_status: Views the plug-in status without leaking sensitive information.

Configuration and Notes

  • Configuration file: Saved in ~/.dsh/dsh-skill-recommender/config, with file permissions 0600.
  • Remote cache: Remote directory cache remains valid for 6 hours.
  • GitHub search: By default, the github-discovery source searches the entire platform (including agent, claude, and codex skills, SKILL.md, and awesome lists); results are sorted by stars and are subject to GitHub unauthenticated search limits (10 req/min).
  • Security: Local file reading only; it does not store or echo keys.