deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:JasperGuWP/dsh-plugin-market
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
A DeepSeek Harness plugin that
browses the deepseek-harness plugin library — every public repository tagged
with the GitHub topic dsh-plugin —
and shows it as a ranked list of plugin cards.
Each card carries:
stargazers_count,pushed_at).dsh-plugin-market is a dual-face bundle (node + browser):
browse_dsh_plugins (node half, index.js). The same
catalog for the agent, rendered as a card grid through a Conversation Node.git pull + install + build) with a live log.Package the plugin into a tarball, then install that tarball into the profile:
cd dsh-plugin-market
pnpm pack # -> dsh-plugin-market-0.1.0.tgz
# from your deepseek-harness checkout
pnpm dsh plugin --profile web add ../dsh-plugin-market/dsh-plugin-market-0.1.0.tgz
Install the tarball, not the directory.
dsh plugin add ./dsh-plugin-market(a bare directory) records alink:dependency, and Node then resolves the plugin's@deepseek-ai/dsh-toolsimport from the linked directory's real path instead of the profile'snode_modules— which fails withERR_MODULE_NOT_FOUND. The tarball installs the files inside the profile'snode_modules, where the harness's own packages resolve normally.
pnpm prints a peer dependency warning for @deepseek-ai/dsh-tools; that is
expected — the harness itself provides it (autoInstallPeers is off), and it is
already present in the profile.
Verify the layer composed, then restart the Web profile:
pnpm dsh --profile web --dump-config | grep -A2 dsh-plugin-market
pnpm dsh web
Restart the running server: a node-half (host) plugin is not hot-reloadable. The browser half joined the
dsh.clientroster at compose time, so it too is picked up on the next boot.
Ask the agent, for example:
Use
browse_dsh_pluginsto list the top 20 DSH plugins.
Tool arguments:
| Argument | Type | Default | Meaning |
|---|---|---|---|
limit |
number | 25 |
How many plugins to return (clamped to 1–100). |
sort |
string | stars |
stars (rank by star count) or updated (last push). |
filter |
string | related |
related (default) or all. See the filtering note below. |
The dsh-plugin topic is noisy: many repositories tag it for exposure without
being DeepSeek Harness plugins. By default (filter: "related") the tool keeps
only repos whose name or description — or one of their other topics —
mentions deepseek, dsh, or harness (case-insensitive). Pass
filter: "all" to list every tagged repo.
All GitHub calls work with zero setup: unauthenticated requests allow
60 requests/hour (core API: file and tree probes used by precheck and
skill detection) and 10 requests/minute (search). On top of that, the
plugin keeps a 1-hour persistent disk cache
(~/.dsh/.cache/dsh-plugin-market.json) for skills search and SKILL.md
detection results, so routine browsing rarely touches the API at all — the
panel's 刷新 button bypasses the cache on demand.
Heavy users can raise the core quota to 5,000 requests/hour by setting a GitHub token of their own before boot. A token used only for public-repo reads needs no scopes at all (a classic PAT with everything unchecked, or a fine-grained PAT limited to "Public Repositories (read-only)"):
# Windows (persistent for new processes)
setx DSH_PLUGIN_MARKET_GITHUB_TOKEN ghp_xxx
# macOS / Linux (current shell; add to your profile for persistence)
export DSH_PLUGIN_MARKET_GITHUB_TOKEN=ghp_xxx
The plugin reads it at request time and sends it as a Bearer token.
Never commit or bundle a token into the plugin package or repository. GitHub scans public repos and auto-revokes leaked tokens, and every install would share — and burn — one account's quota. Each user sets their own token through the environment variable above. With GitHub CLI installed,
gh auth tokenprints a ready-to-use token right aftergh auth login.
ctx.tools.register(...),
so every agent (including web sessions composed from an agent preset) sees it
through the tools scope chain.https://api.github.com/search/repositories?q=topic:dsh-plugin&sort=stars)
with its own timeout and cancellation.output.presentationMeta ({ kind: 'dsh-plugin-market', plugins, … }). That
projection is persisted on the durable tool/result event.ConversationNodeDefinition that matches those
tool/result events and renders the thumbnail grid — replay-safe, no extra
durable event type required.dsh-plugin are listed (GitHub search scope).updatedAt uses pushed_at (last commit push) rather than metadata changes.MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: agent-skills、plugin-marketplace。