DSH Plugins Marketplace

DSH Plugins

Plugins

/

Terminal & Clients

/

dsh-sciwork

d

dsh-sciwork

Manifest valid

dsh-sciwork installs "Research Mode" into DeepSeek Harness: a research library that lives on your own hard drive, a set of skills, and a dashboard. Projects, figures, drafts, references, data tables, journal archives, and submission ledgers each have their place; all writes go through the library scripts to persist to disk and get logged, while the dashboard is primarily read-only and doesn't generate figures itself. The skills codify "how to draw, how to write, how to cite" into discipline: figure generation is handed off to the Origin pipeline, while writing, citation, and submission formatting each have dedicated skills, backed up by 12 journal archives. Zero npm dependencies, paths resolved at runtime, runs on any machine.

UI (client)hasBundlePatch

dsh-sciwork · DSH 科研模式

给 DSH(DeepSeek Harness)装上一整套「做科研」的工作台:一个叫科研模式的 agent 预设,加上一个本机的实体科研库。

License: MIT DSH plugin zero dependency

版本 0.1.0 · MIT · 作者 58catmiao · 仓库 https://github.com/58catmiao/dsh-sciwork

English: README.en.md


这是什么

dsh-sciwork 不是一个"帮你查文献"的对话框,而是一套落在你硬盘上、可被别的工具打开的科研工作台。装上它,你会同时得到四样东西:

  1. 一个 agent 预设「科研模式」——它把绘图、写作、文献、期刊规范四条线收进同一个工作流:先找证据,再动手;出图走 Origin 真机,稿子里引用的每一条文献都必须带 DOI 或 URL。
  2. 一个本机实体科研库——一棵普通目录(课题 / 图表 / 数据 / 草稿 / 文献 / 期刊档案 / 投稿),配套一个 Python 引擎 research.py 和一个登记索引。
  3. 12 份期刊投稿档案——Nature、Science、Cell、IEEE Trans、ACS、Elsevier 通用、MDPI、PLOS ONE、中文核心、CNKI 学位论文、GB/T 7714、通用学位论文,各自的数值要求、条款与出处摘要。
  4. 一个「科研库」可视面板 + 一组技能——面板七个页签,只读为主、能筛能导入能归档;技能负责把"该怎么画、该怎么写、该怎么引"固化成纪律。

权威来源永远是文件系统。 索引只是缓存,面板的写入永远走库脚本,不直接改索引。所以科研库随时可以整目录打包带迁移,也可以直接用资源管理器、Git、别的编辑器去碰。

  • 宿主半边是纯 Node ESM,零 npm 依赖。
  • 客户端是手写的单文件 Web 客户端,没有构建步骤。
  • 出图能力依赖上游开源插件 dsh-origin-plugin(MIT,作者 Fantasality)。本仓库不包含它,只带适配技能。详见〈与 dsh-origin-plugin 的关系〉。

安装

dsh plugin --profile <profile> add dsh-sciwork

插件市场里点安装,走的也是同一条路径。装完重启 Harness。

装完后你会多出:

  • 一个 ID 为 research 的 agent 预设「科研模式」(可直接在会话里选);
  • 侧栏多一个面板入口「科研库」;
  • 一条精确注册的只读路由 /api/research/call(面板靠它取快照与执行动作);
  • 五个技能进入技能目录。

前置:本机有 Node(宿主半边与自检脚本用它)与一个可用的 Python 3 解释器(科研库引擎 research.py 用它)。不要求 python 出现在 PATH 上——启动器会按「显式配置 → SCIWORK_PYTHON → 库自己的 venv → Origin 插件目录的 venv → PATH」逐个探测。出图另需 Origin,见下文。

快速开始

1. 建库

# 先预检:不写任何文件,只报告缺什么
node scripts/install.mjs --verify-only

# 预检通过后建库
node scripts/install.mjs

安装脚本会建出库根目录、.research/ 引擎与索引、journals/ 期刊档案、refs/ 文献库。库根默认是 <用户目录>/Research(Windows 即 %USERPROFILE%\Research),可用环境变量 SCIWORK_LIBRARY 改。

安装脚本的可用开关:

开关说明
--verify-only只检查,不写任何文件。
--library-root <dir>指定库根,覆盖配置里的 libraryRoot。
--skip-library不铺科研库骨架(只装插件半边)。
--force-skills目标已存在且没有 SKILL.md 时也覆盖安装技能目录。

库根解析顺序:--library-root / 环境变量 SCIWORK_LIBRARY(旧名 RESEARCH_LIBRARY 兼容)→ 内核 library/config.json 的 libraryRoot → <用户目录>/Research。注意库内已有的 .research/config.json 里的 libraryRoot 也会覆盖环境变量——面板与引擎优先听库自己的配置。

2. 打开面板

在 DSH 侧栏点「科研库」。面板顶部一行写着当前库根路径与实时计数(课题 / 图 / 草稿 / 数据 / 文献 / 期刊档案 / 投稿 / 索引时间),下面是七个页签。

3. 让 agent 建课题

在会话里选「科研模式」预设,然后直接说:

建一个课题,叫 zt-ceremic,研究 ZrB₂-SiC 陶瓷的氧化行为。

agent 会走 research.py new-project 落目录,之后它画的每一张图、写的每一段结果,都会各自归位到该课题的 figures/、origin/、data/、drafts/ 下。你也可以在面板里点「新建课题」自己建。

4. 出图

面板自己不出图(2026-10-13 起移除)。要出图,直接跟 agent 说:

把 projects/zt-ceremic/data/ 里那组 XRD 数据画成对比图,按 MDPI 的排版要求。

agent 会走 Origin 真机绘图、核验、导出,并把图的溯源信息登记回库。

面板:七个页签各能做什么

侧栏「科研库」。页签七个(图表 / 草稿 / 文献 / 数据 / 期刊档案 / 投稿 / 归档),另有顶部的计数行与「命令台」弹层(两者都不是页签):

页签看什么能做什么
计数行(面板顶部,不是页签)库根路径、课题/图/草稿/数据/文献/期刊档案/投稿七项实时计数、索引时间、采集警告点「刷新」重取快照;点「引导」走一遍带高亮的界面导览
图表已登记的图,含每条图的登记溯源(数据源、脚本、生成时间);按课题分组看图、看 PDF 附带件、复制路径、重画、归档、删除
草稿drafts/ 下的 Markdown 手稿就地读;新建草稿;编辑保存;归档;删除
文献refs/refs.json 里的条目与 refs/pdf/ 下的本地 PDF 附件导入(必须带 DOI 或 URL 才登记,PDF 可选)、看 PDF、归档、删除
数据data/ 下的数据文件(.txt/.csv/.dat 等)与按课题分组的分组头预览行列、数据变换(6 个算子)、归档、删除
期刊档案12 份档案的 id、严格度(high / medium / low)与更新日期读条款与数值要求;筛选;归档
投稿submissions/ 下的投稿记录(目标刊、状态、时间线)读记录;筛选;归档
归档.research/archive/<时间戳>/ 里的批次清单 + 真删记录整批 / 单文件「恢复」搬回原位;真删记录只留名字
命令台(弹层,不是页签)research.py 的子命令清单与参数表单选命令 → 填参 → 执行 → 看 stdout / stderr / JSON 结果

数据变换的 6 个算子:normalize(归一化)、baseline(扣基线)、smooth(平滑)、peaks(找峰)、integrate(积分)、linear(线性变换)。每次变换都会在新表旁落一份溯源记录(.research/transforms/<课题>/<表名>.json),并把产物写进课题的 tables/。

面板的边界,一句话说清:能看、能筛、能导入、能归档、能删、能对表格做数据变换;不出图。所有写入都经库脚本落文件并登记,面板自身不碰登记索引。

配置

配置有两层,库内 <库根>/.research/config.json 是权威;环境变量用来告诉 DSH 去哪找库、用哪个 Python。

环境变量默认值说明
SCIWORK_LIBRARY<用户目录>/Research科研库根目录。改这里等于换库。
RESEARCH_LIBRARY未设置旧名,兼容保留;SCIWORK_LIBRARY 优先。
SCIWORK_PYTHON依平台探测跑 research.py 用的 Python 解释器。推荐显式指向 venv 里的 python。
SCIWORK_ORIGIN_PLUGIN未设置dsh-origin-plugin 所在目录,供适配技能定位它。

库内权威配置:

路径说明
<库根>/.research/config.json权威配置:库根、语言、期刊档案严格度偏好、索引设置等。
<库根>/.research/index.json登记索引(只是缓存,可由 research.py reindex 从文件系统重建)。
<库根>/.research/archive/归档区。面板上的「归档」是移动到此处,可恢复。
<库根>/.research/lock库写锁,防止并发写入互相踩。

目录结构

<库根>/                          # 默认 <用户目录>/Research,可用 SCIWORK_LIBRARY 改
├── projects/
│   └── <课题>/
│       ├── figures/             # 成图(导出的 png / svg / pdf / tif)
│       ├── origin/              # Origin 工程文件(.opju),可在 Origin 里继续编辑
│       ├── data/                # 原始数据
│       ├── tables/              # 由数据变换派生的表
│       └── drafts/              # 该课题的手稿片段
├── refs/
│   ├── refs.json                # 文献条目(必须带 DOI 或 URL)
│   └── pdf/                     # 本地 PDF 附件(可选)
├── journals/                    # 期刊投稿档案
├── submissions/                  # 投稿记录与时间线
└── .research/                   # 引擎与元数据
    ├── research.py              # 库操作的唯一权威入口
    ├── config.json              # 权威配置
    ├── index.json               # 登记索引(缓存,可重建)
    ├── archive/                 # 归档区(可恢复)
    ├── transforms/<课题>/       # 数据变换的溯源记录
    └── lock                     # 写锁

登记(加文献、登记出图溯源、重建索引)永远由 research.py 做,面板不代劳。常用子命令:new-project、add-ref、register-figure、add-submission、reindex。

科研库的权威入口:research.py

库的一切结构化写入都由它完成(面板的「命令台」弹层就是它的可视化前端)。

读:

子命令说明
status库概况:课题数、文献数、已登记图数、期刊档案数。
search <关键词>跨课题检索(课题 / 图 / 稿 / 数据 / 文献 / 期刊 / 投稿),可加 --kind、--project、--limit。
list-projects / list-figures / list-refs / list-submissions分别列课题、已登记图、文献、投稿记录,各自支持筛选参数。
check-citations --draft <路径>引用核查闸门:非零退出即代表稿子里有缺失或未核实的引用。加 --require-doi 要求每条都必须有 DOI。

写:

子命令说明
init建 / 修复库骨架(幂等)。
new-project <slug>新建课题,可带 --title、--journal。
add-ref文献入库。必须带 DOI 或 URL(引用零编造);--verified-by 记录核实方式。
register-figure登记一张图的溯源侧车:源数据、Origin 图页、所用期刊档案、图注。
add-submission / update-submission登记一次投稿 / 推进投稿状态与事件时间线。
reindex / export-bib重建库索引 / 重建 refs.bib。

不可逆:remove-ref 删掉一条文献登记(会先备份 refs.json)。

Windows 上库内附了一个 Python 包装器 .research/bin/py.cmd,它会按库配置挑解释器;agent 文档里给的调用示例走的就是它。想自己指定解释器,用环境变量 SCIWORK_PYTHON。

期刊档案一览

档案 id是什么严格度
natureNature 系列high
scienceScience 系列medium
cellCell 系列medium
ieee-transIEEE Transactionsmedium
acsACS 系列medium
elsevier-genericElsevier 通用medium
mdpiMDPI 系列high
plos-onePLOS ONEhigh
chinese-core-journal中文核心期刊medium
cnki-thesisCNKI 学位论文low
gbt-7714GB/T 7714 参考文献格式规范low
thesis-generic通用学位论文medium

严格度影响默认排版与校验口径;每份档案里还有具体数值与出处摘要。回看哪份档案、怎么用,见技能 journal-profile。

技能

技能管什么
research-studio总入口。路由表 + 三条硬纪律 + 开工前 30 秒例行检查 + 交付前自检清单 + 如实报告(能证明什么、不能证明什么)。
origin-plotOrigin 绘图纪律。数据进 Origin、四条画图路径、改图前先看现状、两个核验步骤都要做、导出交付与登记、绝不抢占用户正在使用的 Origin 会话,以及一份实测坑清单。内含 74 个 origin_* MCP 工具的用法。
paper-writing动笔前的证据纪律、图注、Results、Discussion 结构与框架、中→英与润色、回复审稿意见(Response Letter)、交稿前自检。
literature-refs四条硬规则、入库、检索(先有证据再入库)、稿子里怎么引用、列出与导出、与写作技能配合、常见坑。
journal-profile期刊档案怎么读、怎么用。档案字段、给绘图/写作供参数、选刊(用户问"投哪本")、新建或更新档案、与库脚本配合、冲突与变更。

技能是纪律文本,不是代码:它们约束 agent 的行为,不额外引入依赖。

与 dsh-origin-plugin 的关系

  • 出图能力来自 dsh-origin-plugin(MIT,作者 Fantasality),它提供 74 个 origin_* MCP 工具,负责与本机 Origin 通信。
  • 本仓库不包含 dsh-origin-plugin,也不复制它的代码;dsh-sciwork 只带一份适配技能 skills/origin-plot,教 agent 按科研交付的要求去用那 74 个工具。
  • skills/origin-plot/references/origin-tools.json 是派生文件:由 dsh-origin-plugin 的工具清单生成,用于离线查表(工具名 / 参数 / 用途)。
  • 两者可以独立安装。不装 Origin 与 dsh-origin-plugin,dsh-sciwork 的建库、面板、写作、文献、期刊档案部分照常可用,只是「出图」这一步走不通。
  • 环境变量 SCIWORK_ORIGIN_PLUGIN 用来告诉适配技能:dsh-origin-plugin 装在哪。

自检

仓库自带三个自检脚本与一个补丁预检,都不写你的正式库(写动作在隔离副本里跑,并有一道硬闸门)。前三个只要 Node;补丁预检是 Python 写的,需要一个非标准库的依赖 PyYAML:

node scripts/selftest-host.mjs      # 宿主半边:路由注册、路径守卫、快照形状
node scripts/selftest-actions.mjs   # 22 个动作:读/守卫检查 + 隔离副本里的写动作
node scripts/selftest-client.mjs    # 客户端:七个页签的渲染、弹层、按钮与请求形状
python -m pip install pyyaml        # 只给下一步用(CI 里有独立的 Install PyYAML 步骤)
python scripts/validate-patch.py    # cordis.patch.yml 预检:预设行数、persona、插入行

自检分两种跑法,新克隆的仓库不配库也能跑:

A. 不指向任何科研库(CI / 刚克隆的机器)

node scripts/selftest-host.mjs      # 全部通过,退出码 0
node scripts/selftest-actions.mjs   # 63 通过 · 0 失败 · 2 跳过
node scripts/selftest-client.mjs    # 21 通过 · 0 失败 · 其余内容类检查未运行
python scripts/validate-patch.py    # ✓ 补丁预检通过

此时所有内容类检查(依赖库里真有草稿 / 图 / 数据表的部分)自动记为 SKIP 或「未运行」,脚本会打印一行说明(未运行:内容类检查需要一个可用的科研库(当前库根 …))并以退出码 0 结束——不配库不算失败。

B. 指向一个真库(本机实测基线)

SCIWORK_LIBRARY=/path/to/Research node scripts/selftest-actions.mjs   # 120 通过 · 0 失败 · 3 跳过
SCIWORK_LIBRARY=/path/to/Research node scripts/selftest-client.mjs    # 151 通过 · 0 失败
  • selftest-host.mjs —— 只统计通过/失败,退出码 0。唯一可能被记为「跳过」的是「图文件还在」这类依赖真实库里确实有图的检查(没有图时不判失败)。
  • selftest-client.mjs —— 汇总行只有通过/失败两项;B 模式下实测 151 通过 · 0 失败,退出码 0。
  • validate-patch.py —— 输出 ✓ 补丁预检通过,退出码 0。它会报预设 preset-research 的顶层行数(19 条,递归后叶子 29 条,其中 2 条按 !!js 条件禁用)、嵌套组(planning / compaction / delegation)、persona 长度,以及确认插入的 research-library 行属于宿主插件而非 agent 预设。
  • selftest-actions.mjs —— 写动作段要求库根指向脚本自己新建的隔离副本(用 SCIWORK_LIBRARY 指过去即可)。若它发现 snapshot 指向的不是那个副本,会打印 FAIL 隔离闸门:snapshot 指向副本 并以退出码 2 结束,同时一个字节都不写。这是设计行为,不是插件缺陷:写动作永远在副本里跑,绝不碰你的正式库。

文档地图

文件内容
README.md / README.en.md这是什么、装什么、怎么用
docs/INSTALL.md安装与首次建库(含排错)
docs/ARCHITECTURE.md工程结构与契约:宿主动作、HTTP 端点、面板边界、路径解析、自检口径
docs/RELEASE.md维护者手册:发版、上架插件市场、截图、干净机器验证
CHANGELOG.md版本变更
THIRD_PARTY_NOTICES.md第三方组件与致谢

许可证与致谢

License: MIT,版权归 58catmiao。许可证原文见 LICENSE。

Credits / 致谢

  • Origin 绘图能力来自 dsh-origin-plugin(MIT,作者 Fantasality)。本仓库不包含它;skills/origin-plot/references/origin-tools.json 派生自它的工具清单,用于离线查表。感谢作者把这套本机 Origin 自动化开源出来。
  • DSH(DeepSeek Harness) 提供了插件机制、agent 预设与工具路由,本插件是其上的扩展。
  • 期刊档案是本项目自己整理的数值、条款与出处摘要,不是期刊官方文件。

关于内容版权

本仓库不包含任何受版权保护的论文原文或期刊 PDF。

  • journals/ 下的 12 份期刊档案,内容是投稿要求的数值、条款与出处摘要(例如字数上限、图表要求、参考文献格式),每条尽量标注出处;遇到具体条款请以期刊官网的最新作者指南为准。
  • refs/ 里登记的是你自己的文献元数据(标题、DOI、URL 等)与你自己放进 refs/pdf/ 的附件,仓库不预置任何文献全文。
  • 期刊档案是辅助,不构成法律或投稿建议;因以档案替代官方指南而产生的后果,由使用者自负。

dsh-sciwork · 让科研的每一步都落在你自己的硬盘上

Comments

Loading…

From the same category

dsh-TUI

by ccch1mneyyy

DSH 官方公众号收录的 TUI 补位插件:Claude Code 风,鲸鱼顶栏/实时状态/流式思考/双击 Esc 回滚/上下文进度+TPS。npm 一键装。 DSH official WeChat featured TUI plugin — Claude Code style: whale bar, live status, streaming thoughts, double-Esc rol

Terminal & ClientsManifest valid

★ 4.6k

↓ 11.9k/wk

MIT

TypeScript

Oct 15, 2026

dsh plugin --profile terminal add @deepseek-harness-tui/dsh-tui

by strukto-ai

The World's First Virtual Terminal for AI Agents

Terminal & ClientsManifest valid

★ 3.7k

↓ 374/wk

Apache-2.0

TypeScript

Oct 15, 2026

dsh plugin --profile agent add @struktoai/mirage-dsh

by bowenliang123

The best DeepSeek Harness plugin for context insight and management, with context dashboard / browser / sidebar and context command, for context statistics, composition, breakdown, evolution details,

Tools & CapabilitiesUI & ExperienceTerminal & ClientsManifest valid

★ 2.1k

↓ 52.1k/wk

Apache-2.0

TypeScript

Oct 14, 2026

dsh plugin --profile web add dsh-context

by huiliyi37

官方 DeepSeek Harness 的交互式终端 UI 插件:自研 ANSI 极简交互渲染、流式 Markdown/工具卡、16+ 主题、slash 命令与选择器、输入历史与本地偏好持久化、LSP 诊断、memory记忆,很丝滑的开发体验。

Terminal & ClientsManifest valid

★ 285

↓ 486/wk

Apache-2.0

TypeScript

Sep 30, 2026

dsh plugin --profile terminal add @huiliyi37/dsh-tianshu-tui

by Hilbert-beinghappy

面向 DeepSeek Harness 的 Claude Code 风格终端界面,支持 Windows、macOS 与 Linux,兼容透明终端、VS Code 主题和自定义配色。

Terminal & ClientsManifest valid

★ 196

↓ 108/wk

MIT

TypeScript

Oct 13, 2026

dsh plugin --profile web add seektty

by c3cvld7aag

富江DSH完美破甲|富江破甲 DSH 本地插件,内置提示词规则,支持 Windows 一键安装、环境自动准备与一键卸载,全中文使用说明。

Terminal & ClientsManifest valid

★ 84

JavaScript

Oct 3, 2026

dsh plugin --profile web add fujiang-armor