Provides a structured, per-session resume editor for DeepSeek Harness with shared chat and sidebar edits, A4 preview, and PDF export.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-hr-plugin
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:ITDanZF/dsh-hr-plugin
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
This plugin publishes its README in Chinese only.
在 DeepSeek Harness 里,一份会话一份简历。对话和右侧面板改的是同一份草稿,可以换模板并下载 PDF。
dsh plugin --profile web add dsh-hr-plugin
包页面:https://www.npmjs.com/package/dsh-hr-plugin
装完后重启这个 profile。插件不再固定要求某个 dsh 版本,也不安装 Harness 的 SQLite 存储插件;升级 Harness 后仍需确认其工具、技能和右侧栏扩展接口兼容。
界面
示例草稿是「陈予安 / 产品经理」。装进会话之后,纸面上是你自己的内容。
使用教程
- 安装并重启后,打开 Harness。右侧「开始」里点「简历」。
- 停在编辑页时,可以改基本信息、摘要、工作与实习、项目、教育和技能。其余模块在「添加模块」里打开。模块可以拖动,或用上移、下移调整顺序。
- 在当前会话里对助手说:把摘要收成三句,并补一条审批时长下降的工作要点。
- 顶栏切到「模板」,按用途选择「网申单栏」「侧栏深色」或「杂志」。一共十三套预设,也可以改版式、颜色和字体。
- 点「下载 PDF」,或对助手说导出 PDF。文件按当前模板排版。点「打印当前样式」会走浏览器打印,版式更接近屏幕。
- 面板和对话写的是同一份简历。断网时改动留在浏览器里,连上后自动重试;七天内可以恢复。
能做的事
- 编辑后自动写入当前会话,页面会读到最新版本。
- 模块顺序会用于页面预览、打印和 PDF。基本信息固定在页眉。
- 十三套预设,按五个系列展示真实缩略页;支持单栏、教育优先、侧栏三种版式。侧栏版式可以把模块放进正文或侧栏。
- 自定义模块可以是短文本、长文本、日期区间、链接或要点列表。
- A4 实时预览会在内容超出一页时显示第二页及后续页面;打印使用相同的分页结果。下载 PDF 按当前模板排版,包含侧栏、页顶色条、页眉、日期和关键词,并支持中文、长段落和自动换页。已启用照片时,PDF 会放入 PNG 或 JPEG。
使用前注意
- 安装或更新之后要重启对应的 profile,右侧才会出现「简历」。
- 插件通过运行依赖
@betteroffice/fonts-cjk安装 Noto Sans/Serif SC 字体,导出 PDF 不依赖系统安装的中文字体;导出前会检查简历文字的字形,缺字时会报错,不生成方框乱码。需要使用其他字体时,可用DSH_HR_PDF_FONT指定 TTF 或 OTF 文件。字体遵循 SIL Open Font License 1.1,许可证由字体包提供。 - 简历和选项目录由插件保存在
DSH_HOME/storages/hr-resume(未设置DSH_HOME时为~/.dsh/storages/hr-resume)。首次启动会把旧的hr-plugin.sqlite内容迁移到该目录;原数据库不会删除。
本机调试使用已安装的 dsh,不在 deepseek-harness 源码目录里安装依赖。日常使用单独的 hr-dev profile,不改默认 web profile。
开发依赖用于编译,运行时使用当前 Harness 提供的扩展接口;已在 dsh 0.2.1-rc.5 上验证。未来如果这些接口发生破坏性变化,需要适配插件,不能仅靠版本范围保证兼容。
全局需要 pnpm 11.7.0。dsh plugin 会把参数转发给它。
corepack enable
corepack prepare pnpm@11.7.0 --activate
在本仓库安装开发依赖并编译。dsh 加载的是 dist/index.js,不直接加载 TypeScript。
pnpm install
pnpm run build
一次性创建调试 profile。这条命令会按网页模板创建 hr-dev 并启动;确认页面能打开后停掉进程。
dsh --profile hr-dev --from-default-profile web
在本仓库根目录把它链接进该 profile。因为 package.json 声明了 dsh.bundle,CLI 会把 dsh-hr-plugin 追加进 profile 的 bundle 列表。
dsh plugin --profile hr-dev add .
每次改入口之后:
pnpm run builddsh --profile hr-dev --dump-config。输出里要有# == dsh-hr-plugin层,以及id: hr-plugin。没有这一层时不要先看业务代码。dsh --profile hr-dev。启动日志里要有[dsh-hr-plugin] loaded和resume preview http://127.0.0.1:3091。
回归检查可运行 pnpm run check:store、pnpm run check:pdf 和 pnpm run check:manifest。分别覆盖旧数据迁移、长内容 PDF 分页和安装清单。
改插件代码必须重新编译再重启。这个加载回路不会热更新。pnpm run dev:panel 只预览面板,地址是 http://127.0.0.1:5174/,没有会话时使用示例草稿。
面板接口默认只允许本机 Harness(3080)及面板开发服务(5174)的浏览器来源。自定义宿主来源可用逗号分隔的 DSH_HR_ALLOWED_ORIGINS 配置。
加载失败时:
dsh plugin报找不到 pnpm:回到上面的 corepack 步骤。- 装上了但
--dump-config没有本包的层:package.json里没有dsh.bundle,或cordis.patch.yml没进files。 - 有层但启动报找不到模块:还没执行
pnpm run build,或main不是dist/index.js。 - 有层、进程起来了,但没有那行日志:
cordis.patch.yml的name不是包名dsh-hr-plugin。
Links
More in this category
tt-a1i/archify#integrations/deepseek-harness★ 92724
Generate validated, self-contained interactive architecture, workflow, sequence, data-flow, and lifecycle diagrams from repositories or system descriptions.
dream-num/dsh-univer-office★ 657
Give DeepSeek Harness a real office environment. Univer Office Plugin brings spreadsheets, docs, slides, canvases, relational tables, and more into one runtime — with connected data, validation, versioned changes, and isolated worktrees for multi-agent collaboration.
ECNU/EduWork#dsh-knowledge-studio★ 275
A workspace-based Studio for source-grounded reports, slides, tables, mind maps, quizzes, flashcards, audio and video, using DSH models and shared artifact services. Office generation requires Python 3.12+ with its dependencies and DSH_OFFICE_PYTHON configured; media rendering requires Chromium, and local ASR additionally requires whisper.cpp and a model.
PerryLink/dsh-industry-research★ 215
Deterministic industry research reports for DeepSeek Harness — company and industry research flows produce structured, verifiable reports from staged evidence.
HuanLinOTO/dsh-plugin-mineru★ 51
Expose MineRU document parsing tools to the model.
PolinniZhong/dsh-knit★ 48
Puts the Markdown documents, source files, images and video that already exist anywhere in the session workspace into the DSH sidebar, ranked by relevance to the current conversation. The default lexical mode matches your recent messages against title, summary and body locally with IDF weighting (BM25) — no model calls, no network, nothing leaves the machine. The list comes from scanning the workspace rather than from a recent-files list, so restarting DSH or opening a new session does not empty it. Results are organised into a three-tier reading order (primary / supporting / related) with a verifiable reason on every row — which field matched, which document cites this one — and one click opens an in-place preview: Markdown as rendered text, relative-path images actually drawn, source code with the host's own syntax highlighting, video streamed over HTTP Range. The same Context Pack is exposed to the agent as a knit_docs tool. Later versions added read evidence and lifecycle tracking (attribution is frozen at the moment of reading), pin / exclude (exclusion applies before retrieval, and is undoable), relation evidence (references / imports / tests, with line numbers) and an incremental index reused across restarts. Since v0.23 there is also an optional hybrid mode: it is off by default and only runs once you configure an Ollama or OpenAI-compatible embedding provider yourself. When it runs, what leaves the machine is your query text plus each candidate file's title and summary — a Markdown summary is an excerpt of the body's first paragraph (at most 60 characters), a code file's summary is its workspace-relative directory, and an image or video contributes its file name; full bodies and absolute paths are not sent, and a loopback provider keeps everything on this machine. Since v0.24 it also associates uncommitted changes: a read-only git status (fixed argv, no shell, whitelisted child-process environment) combined with the same reference / import / test / mention evidence shows which files a change is likely to drag along, and it is off by default. The benefit of semantic retrieval still awaits a real-provider run, so no recall improvement is claimed.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.