DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
Z

@nguyenvanhoang1/dsh-zpdf

Zpdf

适用于 DeepSeek Harness 的 ZPDF 工具,支持持久化 API 密钥设置和 CLI 配置。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:nguyenvanhoang1/dsh-zpdf#8d0b4d36cb4165a8b7ef03c182f6be1eefc8bd3d
README兼容性版本

兼容性与来源证明

Zpdf 以 @nguyenvanhoang1/dsh-zpdf 发布,当前版本为 1.0.5。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/29

版本

1.0.5stable
2026/10/29

相关插件

正在加载相关插件…

最新版
1.0.5
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1
周下载
0
最近提交
2026/10/29
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Experimental Schedule Bundle@deepseek-ai/dsh-experimental-schedule-bundle为 Web 组合添加 Schedule、其任务页面和时间上下文的可选捆绑包Web All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / pet / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Ab Ocrdsh-ab-ocr--- description: "外部 ocr 工具:逐页识别扫描的 PDF 或图像,仅在处理完最后一页后按顺序合并页面,并使用模型确定的标题级别保存为一个 Markdown 文档。" kind: "package-reference" ---

README

zpdf

English | 中文

ZPDF tools for DeepSeek Harness: high-fidelity PDF→Markdown parsing, layout-preserving PDF translation, Markdown conversion, credit estimates, and balance checks.

Repository: https://github.com/nguyenvanhoang1/dsh-zpdf

Features

ToolCapability
zpdf_parse_pdfPDF → Markdown, optional translation, formulas, tables, images, enrichment sidecars
zpdf_translate_pdfLayout-preserving PDF translation (translated-only or side-by-side)
zpdf_convert_markdownMarkdown/ZIP → DOCX, HTML, PDF, LaTeX
zpdf_estimate_costLocal page-count + balance estimate (does not spend credits)
zpdf_check_balanceCurrent credit balance
zpdf_get_task_statusInspect a task by id
  • The GUI stores the API key through DSH credentials (ZPDF_API_KEY). The value never rides settings describe responses.
  • Settings → ZPDF is a dedicated settings page (configured / missing, save, clear) with a live credits card and a task overview list — balance and task statuses refresh automatically (30 s / 10 s) and manually, with a clear-log action. Task history lives in $DSH_HOME/zpdf/tasks.json (newest 200).
  • Tools check the key lazily. A missing key tells the user to open Settings or run the CLI.
  • ZPDF_API_KEY in the process environment is also accepted. An env key shadows the GUI credential and makes the settings page read-only.
  • HTTP upload, poll, download, and ZIP extract honor the tool abort signal.

Requirements

  • Node.js >= 20
  • DeepSeek Harness 0.1.1-rc.2 compatible (0.1.1-rc.2 client-modules format: dsh.client manifest + exports["./client"] lazy-CJS bundle)
  • ZPDF Plus or Pro account
  • An API key from https://www.zhiyipdf.com/api-keys

Install

Install the package into the DSH profile you use (example: web). GitHub is the recommended path:

# From GitHub (recommended; no npm publish required)
dsh plugin --profile web add github:nguyenvanhoang1/dsh-zpdf

# Equivalent
dsh plugin --profile web add https://github.com/nguyenvanhoang1/dsh-zpdf.git

This is a git dependency that ships prebuilt lib/ (no prepare script, so dsh plugin add does not hit pnpm allowBuilds). The package also declares dsh.bundle, so dsh plugin add appends @nguyenvanhoang1/dsh-zpdf to the profile's dsh.profile.bundles and the plugin mounts on the next start — settings page and tools appear without a hand-written composition row.

Host packages such as @deepseek-ai/dsh-tools are optional peer dependencies (same pattern as dsh-ads): every host peer is marked optional in peerDependenciesMeta, so pnpm never reports "missing peer" at install time, while the runtime contract still requires them to resolve to the running Harness copy (module fallback stack). Shipping a second copy inside this plugin makes every tool call fail with Cannot read properties of undefined (reading 'prepare').

For local development:

# Local checkout
dsh plugin --profile web add D:/code/work-relate/dsh-zpdf

dsh plugin add already activates the bundle layer. Only add a host-plane row yourself if you installed the package some other way:

- insert:
    - id: zpdf
      name: '@nguyenvanhoang1/dsh-zpdf'

Publishing

npm publishing is paused. Install from GitHub using the commands above; the new package name is @nguyenvanhoang1/dsh-zpdf and its npm scope has not been configured for publishing.

Before enabling Release & Publish (.github/workflows/release.yml), establish npm publishing access for this scope and configure npm Trusted Publishing for owner nguyenvanhoang1, repository dsh-zpdf, and workflow release.yml. The workflow uses OIDC, not an NPM_TOKEN secret. Previously published npm packages are not changed by this repository migration.

CI runs typechecks, tests, and builds. Rebuild lib keeps committed lib/ artifacts in sync for Git installations, which do not run prepare scripts.

See examples/cordis.patch.yml and the package-root cordis.patch.yml.

Restart the profile:

dsh web

dsh plugin ... add installs the dependency and, because this package declares dsh.bundle, joins the profile layer stack. A plain pnpm add without dsh plugin does not.

Configure the API key

Option 1: Web Settings (recommended)

In the DeepSeek Harness Web GUI:

  1. Open Settings.
  2. Open the ZPDF section.
  3. Enter the API key and save.

The page writes the key into the DSH credential store ($DSH_HOME/.credentials.yaml, reference ZPDF_API_KEY). It does not go through the settings-document allowlist. If ZPDF_API_KEY is already in the process environment, the page is read-only (env wins and cannot be overwritten).

A missing key does not prevent the plugin from starting. The first authenticated tool call returns an actionable prompt.

Option 2: CLI

After install, run the CLI through DeepSeek Harness so it resolves from the profile (a bare zpdf is not on PATH):

dsh plugin --profile web exec zpdf -- config set-key

This reads the key with a masked prompt and writes zpdf.apiKey in $DSH_HOME/settings.yaml (default ~/.dsh/settings.yaml).

# Non-interactive (lands in shell history; not recommended)
dsh plugin --profile web exec zpdf -- config set-key sk-xxxxxxxxxxxxxxxx

# Scripts / CI: read from stdin
printf '%s' "$ZPDF_API_KEY" | dsh plugin --profile web exec zpdf -- config set-key

# Status (never prints the key)
dsh plugin --profile web exec zpdf -- config status

# Settings file path
dsh plugin --profile web exec zpdf -- config path

# Clear the stored key
dsh plugin --profile web exec zpdf -- config clear-key

# Custom settings file
dsh plugin --profile web exec zpdf -- config set-key --file D:/path/to/settings.yaml

The CLI preserves YAML comments, uses the same <file>.lock writer lock and atomic replace as DSH (@deepseek-ai/dsh-atomic-write), and sets owner-only permissions (0600; Windows still uses ACLs). A running DSH with file watch enabled hot-reloads the change.

Option 3: Environment variable

export ZPDF_API_KEY=sk-xxxxxxxxxxxxxxxx

PowerShell:

$env:ZPDF_API_KEY = 'sk-xxxxxxxxxxxxxxxx'
dsh web

Set the variable before starting DSH. You can change the name with apiKeyEnv in the composition.

Resolution order: CLI settings.apiKey → credential / environment (ZPDF_API_KEY).

Optional config

Composition config is the base layer; the user settings document still overrides it:

- insert:
    - id: zpdf
      name: '@nguyenvanhoang1/dsh-zpdf'
      config:
        outputDir: ./zpdf-output
        pollIntervalMs: 2000
        maxPollMinutes: 30
        httpTimeoutMs: 60000
        uploadTimeoutMs: 600000
FieldDefaultNotes
apiKeyunsetSecret. Prefer GUI credentials or CLI; do not commit this
apiKeyEnvZPDF_API_KEYEnvironment / credential reference name
baseUrlhttps://www.zhiyipdf.comZPDF API origin
outputDir./zpdf-outputResult directory (relative to DSH cwd)
pollIntervalMs2000Status poll interval
maxPollMinutes30Maximum poll duration
httpTimeoutMs60000Ordinary HTTP timeout
uploadTimeoutMs600000Upload / download timeout

Development

corepack enable pnpm
pnpm install
pnpm check

pnpm check runs TypeScript, Vitest, and the production build.

The optional host-composition test needs the installed Harness package directory:

DSH_ROOT=/path/to/node_modules/@deepseek-ai/dsh pnpm test:host

Security

  • Do not put a real API key in the repo, README, screenshots, or issues.
  • The Web credentials API reports only configured / writable state, never the secret.
  • The CLI status command only prints configured / not configured.
  • Tools read local PDF/Markdown/ZIP paths from the model and write under outputDir. Enable this plugin only in a trusted composition.
  • Output directories are checked with realpath so output_subdir and symlinks cannot escape outputDir.
  • ZIP extraction rejects absolute paths and ../ entries. Caps: 10,000 entries, 4 GiB uncompressed, 2 GiB download.
  • Inputs are capped at 300 MB and 800 pages (same as the ZPDF service) and validated locally before upload.

License

MIT