deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:Z-6354/dsh-plugin-repo
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
Self-hosted plugin repository for DeepSeek Harness — a pure Cordis plugin (no changes to @deepseek-ai/* packages).
Each device runs its own repo over HTTP: list / upload / download .tgz, detect non-official plugins, install with version checks, and pull or push packages across devices. Official @deepseek-ai/* plugins are never listed or modified.
# from npm
dsh plugin --profile web add dsh-plugin-repo
# or from a release tarball
dsh plugin --profile web add ./dsh-plugin-repo-1.7.0.tgz
Restart DSH, then open Settings → 插件仓库. Prefer a hard refresh (Ctrl+Shift+R) after upgrades.
| Tab | Purpose |
|---|---|
| 本机 | Local .tgz repo + installed plugins (dual pane) |
| 跨设备同步 | Connect to another DSH; pull → local or push → remote |
| 高级 | Extra search roots for discovering plugins |
Installed plugins (v1.7+):
dsh.profile.bundles without removing dependencies (restart required)pnpm remove / dsh plugin remove)pnpm add / dsh plugin add into web profilepeerDependencies and compares with running @deepseek-ai/dshCross-device sync uses a dual pane (local | remote). Badges show concrete versions (本机 1.5.2 > 对方 1.5.0). Use 选需推送 / 选需拉取 to select only packages that differ (including version unknown → default push). Push confirms warn on downgrade; equal packages show as already synced. 最近推送 records persist under repoDir/push-history.json across restarts and explain whether remote was already unknown vs push stripped the version.
Cross-device requests are issued by the local DSH server (not the browser). This plugin does not embed login credentials.
When the remote device uses dsh-local-hanaccount:
fetch from DSH will automatically attach the peer Bearer token./pluginrepo to 显式暴露 (exclude) so LAN peers can sync without pairing.Plain LAN http://ip:3080 without hc continues to work. On HTTP 401/403 the UI points to hc pairing or explicit expose — not HTTP Basic in this plugin.
Default under the configured repoDir (often ~/.dsh/plugin-repo or a custom path):
packages/<name>.tgz — non-official packagesindex.json — metadata (name, version, filename, size, uploadedAt)http://127.0.0.1:3080)| Method | Path | Description |
|---|---|---|
| GET | /pluginrepo |
HTML landing |
| GET | /pluginrepo/api/packages |
List repo packages |
| GET | /pluginrepo/api/unofficial |
Installed + repo non-official plugins |
| POST | /pluginrepo/api/upload |
Upload .tgz (raw body; ?name= optional) |
| GET | /pluginrepo/download/<file>.tgz |
Download |
| GET/POST | /pluginrepo/api/remote |
List another device’s packages (POST body: host, optional port) |
| POST | /pluginrepo/api/remote-pull |
Pull from another device into this repo |
| POST | /pluginrepo/api/remote-push |
Push local-repo .tgz to another device |
| POST | /pluginrepo/api/install |
Plan / confirm install into local profile |
| POST | /pluginrepo/api/profile/enable |
Enable plugin in dsh.profile.bundles |
| POST | /pluginrepo/api/profile/disable |
Disable plugin (remove from bundles) |
| POST | /pluginrepo/api/profile/uninstall |
Uninstall disabled plugin from profile |
| POST | /pluginrepo/api/npm-add |
Install from npm registry (spec, confirm) |
| DELETE | /pluginrepo/api/packages/<key> |
Delete a repo package |
Remote address parse order: scheme → host → port. Bare host → http + port 3080; https:// → port 443; explicit :port wins. Userinfo in URLs is stripped and ignored.
repo_list / repo_unofficial / repo_push / repo_pull / repo_deleterepo_remote / repo_remote_pull / repo_remote_pushrepo_install (requires installConfirm=true to apply)Optional plugin config:
repoDir — absolute repository directorylogLevel — silent | infoNote: Use schemastery-style config (fields optional by default). Do not call zod’s
.optional()on schemastery schemas.
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。