DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

123pan — DeepSeek Harness 插件(DSH Plugin)
← Plugins
1

dsh-123pan

123pan

适用于 DeepSeek Harness 的 123 Cloud Drive (123云盘):使用手机号/邮箱和密码登录,上传和下载文件,并增量备份工作区。网络和分片传输通过捆绑的静态 C++ 核心运行。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:cny919191/dsh-123pan#8e1029e1a6b63411e566a0cb5c528e288af5fead
README兼容性版本

兼容性与来源证明

123pan 以 dsh-123pan 发布,当前版本为 1.3.4。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

1.3.4stable
2026/10/19
1.3.2stable
2026/10/18
1.2.0stable
2026/10/18

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 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、其任务页面和时间上下文的可选捆绑包Client Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。Web All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / git-graph / pet / remote-web-ui / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。

README

dsh-123pan

把 123 云盘 接进 DeepSeek Harness:用手机号 / 邮箱 + 密码登录,直接在 DSH 里上传、下载、浏览和管理网盘文件,并把工作区增量备份到云端。

不需要安装 123 云盘桌面客户端,也不需要开放平台的 appid / secret。

dsh 插件 ──工具/设置页──▶ 123pan-core.exe(C++ 静态链接)──▶ 123 云盘

网络请求、MD5、16MB 分片上传、CDN 下载、token 加密全部在 C++ 核心里完成; 插件层只用 Node.js 做参数拼装与 UI,不依赖 Python,也不需要任何运行时。


功能

功能说明
手机号 / 邮箱 + 密码登录密码只用于换一次 token,不落盘
API Key / Token 登录直接粘贴客户端 JWT,无需账号密码;也可用配置 apiToken 完全免登录
token 本地加密Windows DPAPI,绑定当前用户
自动续期每次 status 顺手刷新 token
浏览 / 搜索列目录、翻页、按文件名搜索、回收站
上传MD5 秒传 + 16MB 分片,进度可见
下载直链 + 断点无关的单流写入,受限于 CDN 能力
直链取临时签名下载链接,可给外部使用
重命名 / 移动 / 删除删除默认进回收站,可再彻底删除
工作区增量备份跳过未变化文件、保留目录结构、可预演
侧边栏面板左侧栏「123 云盘」图标,点开就是网盘文件浏览
拖拽上传把文件拖进侧栏面板(或点「选择文件」)直接上传到当前目录
拖拽下载点文件行的「下载」,默认存到工作区根目录,可在面板底部改
在线预览点文件名直接看文本 / 图片 / 视频 / 音频 / PDF,不用先下载
主题跟随设置页与侧栏面板只用宿主主题 token,亮/暗色自动跟随

安装

方式一:下载 Release(推荐)

Releases → 下载 dsh-123pan-vX.Y.Z.zip,解压到固定目录(例如 D:\plugins\dsh-123pan)。

这个 zip 是插件目录,不是安装程序,不需要运行任何 exe。

然后把它接线进 profile:

# 1) 目录联接(不需要管理员权限)
cmd /c mklink /J "%USERPROFILE%\.dsh\profiles\<profile>\node_modules\dsh-123pan" "D:\plugins\dsh-123pan"
  1. 编辑 %USERPROFILE%\.dsh\profiles\<profile>\package.json,两处都要加:
{
  "dependencies": { "dsh-123pan": "file:D:/plugins/dsh-123pan" },
  "dsh": { "profile": { "bundles": ["...", "dsh-123pan"] } }
}
  1. 完全退出 DSH(任务管理器确认 DeepSeek Harness.exe 全部消失)再打开。

方式二:从源码

# 1) 在插件目录构建核心(需要 MSYS2 ucrt64 的 g++)
cd native/core
./build.sh            # Linux/macOS 下请改用对应工具链,见下文

# 2) 从本地目录安装进 DSH profile
dsh plugin --profile <profile> add /absolute/path/to/dsh-123pan

在 DSH 的「设置 → 插件」里确认 dsh-123pan 已启用,然后打开「设置 → 123 云盘」登录。

详细步骤(含「装了没反应」的排查)见 docs/USAGE.md §2。

关于核心可执行文件

native/core/123pan-core.exe 是用 MSYS2 ucrt64 的 g++ 编译的静态链接程序:

  • 只依赖 Windows 系统 DLL(ws2_32 / crypt32 / shell32 / ole32);
  • OpenSSL 静态编入,不需要额外 DLL,也不需要 openssl.exe;
  • TLS 根证书在运行时从 **Windows 证书存储(LOCAL_MACHINE\ROOT)**加载, 不依赖任何 cert.pem,用户机器上无需额外配置。

重新构建:

# Windows(MSYS2 ucrt64)
cd native/core && ./build.sh

# 其他平台(需自行替换 OpenSSL 与 Winsock 相关部分)
g++ -O2 -std=c++17 main.cpp api.cpp http.cpp winutil.cpp -o 123pan-core -lssl -lcrypto

核心当前实现了 Windows 传输层(Winsock + DPAPI + 证书存储)。 移植到 Linux/macOS 需要替换 http.cpp 的连接层与 winutil.cpp 的加密/路径部分, 其余 API 逻辑(api.cpp)与协议无关,可直接复用。

  • 给人看:docs/USAGE.md(安装、登录、上传下载、备份、AI 工具、常见问题、安全说明)
  • 给 Agent 看:AGENT.md(上传自己生成的文件时照这个做,不要生成 .py 中转脚本)

两种入口

入口位置用途
侧边栏面板左侧栏的云朵图标日常上传/下载/浏览,支持拖拽文件
设置页设置 → 123 云盘登录、容量、备份、关于

拖拽上传的实现:浏览器无法把本地路径交给宿主,所以面板把 File 读成 base64 POST /api/dsh-123pan/uploadBytes,宿主落到临时文件后交给核心上传,用完即删。 受此限制,单个文件上限取 maxFileBytes(默认 200MB)。

下载目录的优先级(前面的赢):

  1. 请求里的 out(完整文件路径)
  2. 请求里的 dir(目录)
  3. 插件配置 downloadDir
  4. 会话工作区根目录(默认就是这里,例如 D:\python)

面板底部有「下载目录」输入框:默认自动跟随当前工作区。 在侧栏切换工作区后,下载目录会立刻跟着变(无需重启)。手动填一个路径后会固定下来, 点旁边的「跟随工作区」按钮即可恢复自动跟随。

⚠️ 核心 123pan-core.exe 位于工作区,通常带 Low 完整性标签, 因此它能写工作区,但写不了 %TEMP%、%USERPROFILE%\.dsh、桌面这类 Medium 目录。 下载因此分两步:先直连目标;若报 cannot open output file, 改为先下到 <工作区>\.dsh-123pan-staging\,再由 Node 搬到目标位置(Node 两边都能写)。 这样"下载到 .dsh"或"下载到桌面"也能正常工作。

工作区跟随是怎么实现的

  • 客户端订阅会话 store,取 retainedBy.mainView > 0 的那个会话(即主视图正在显示的会话)的 cwd, 切换工作区时它会变,面板随即重算下载目录;另有 8 秒轮询 + 窗口获得焦点时刷新兜底。
  • Host 端 getWorkspaceRoot() 按「最近有活动」的会话 cwd 解析(最后一条事件时间), 供 HTTP API 使用;都取不到才退回 workingDirectory.defaultDirectory / 进程 cwd。

给 AI / 脚本的 JSON API

插件在宿主里注册了本机 HTTP 路由,AI 不需要生成任何 .py 脚本,直接调即可:

# 按本地路径批量上传(推荐)
curl -X POST http://127.0.0.1:<port>/api/dsh-123pan/uploadBatch   -H 'content-type: application/json'   -d '{"files":["D:\work\a.zip","D:\work\b.txt"],"parentId":0}'

# 下载(不传 out/dir 时落到工作区根目录)
curl -X POST http://127.0.0.1:<port>/api/dsh-123pan/download   -H 'content-type: application/json'   -d '{"fileId":123,"name":"a.zip","dir":"D:\work"}'

完整路由:status · login · loginToken · logout · list · mkdir · upload · uploadBytes · uploadBatch · download · preview · media(GET) · url · rename · move · trash · purge · version · diag · scan · backup · backups · forget

状态查询:GET/POST http://127.0.0.1:<port>/api/dsh-123pan/status(只接受 POST + 本机回环)。

直接用 API Key(免账号密码)

拿到 token 后有三种用法,选一种即可:

# 1) 验证并存入本地加密会话(一次,之后 upload/download/list 都能用)
curl -X POST http://127.0.0.1:<port>/api/dsh-123pan/loginToken \
  -H 'content-type: application/json' \
  -d '{"token":"eyJhbGciOiJIUzI1NiIs..."}'

# 2) 之后正常上传 / 下载
curl -X POST http://127.0.0.1:<port>/api/dsh-123pan/upload \
  -H 'content-type: application/json' \
  -d '{"file":"D:\\work\\a.zip","parentId":0}'
curl -X POST http://127.0.0.1:<port>/api/dsh-123pan/download \
  -H 'content-type: application/json' \
  -d '{"fileId":123,"name":"a.zip","dir":"D:\\work"}'

# 3) 或者完全不登录:profile 的 cordis.patch.yml 里配 apiToken

token 从哪来:已登录的 123 云盘桌面客户端日志 %APPDATA%\123pan\log\YYYY-MM-DD.log 里搜 Token:Bearer eyJ...。 也可以用 pan123_login_token 工具直接交给 agent。

loginToken 会先调一次 status 验证 token 有效,再 DPAPI 落盘; 无效 token 直接报 401,不会生成坏会话。 用 apiToken 配置时 status 不会回写会话文件(配置只读)。

配置

在 profile 的 cordis.patch.yml 里可以覆盖(都有默认值):

- id: dsh-123pan
  config:
    defaultRemoteDir: dsh-backup/my-project  # 备份默认目标
    maxFileBytes: 209715200                  # 单文件上限(200MB)
    maxFiles: 5000                            # 单次备份文件数上限
    ignoreDirs: ['.git', 'node_modules']      # 自定义忽略目录
    ignoreGlobs: ['*.log', '*.tmp']           # 自定义忽略文件名
    storeDir: ''                              # 会话与清单目录(默认 $DSH_HOME/dsh-123pan)
    corePath: ''                              # 核心 exe 路径(默认包内)
    apiToken: ''                              # 直接用 API Key 当会话(免登录)

给 agent 用的工具

工具用途
pan123_login手机号/邮箱 + 密码登录
pan123_login_token用 API Key / Token 登录(免密码)
pan123_status登录状态、容量、token 到期时间
pan123_logout清除本地会话
pan123_list列目录 / 搜索 / 回收站
pan123_mkdir新建目录
pan123_upload上传单个文件
pan123_download按文件 id 下载到本地
pan123_direct_link取临时直链
pan123_rename / pan123_move / pan123_delete改名 / 移动 / 删除
pan123_backup_workspace工作区增量备份(支持 dryRun 预演)
pan123_backup_status查看历史备份记录
pan123_scan_workspace只扫描不上传,检查忽略规则与大小限制

会话里可以直接说:

把当前工作区备份到 123 云盘的 dsh-backup/python,先预演一遍。

安全说明

  • 密码不保存:只用于调用一次登录接口,换回 JWT 后即丢弃; 传递方式是子进程环境变量而不是命令行参数(命令行会出现在进程列表里)。
  • token 加密存储:DPAPI 密文(用户级),文件在 $DSH_HOME/dsh-123pan/session.dat; 拷贝到别的用户/机器上无法解密。加解密由核心的 protect / unprotect 子命令完成, 但落盘始终由 Node 侧执行——因为核心子进程可能处于受限令牌,写不了用户目录。
  • 接口是客户端私有 API:不是公开开放平台接口,可能随客户端版本变化; 仅建议个人账号低频自用,高频调用可能触发风控。
  • HTTP 桥只监听本机:/api/dsh-123pan/* 仅接受回环地址 + POST, 并校验 Origin / Sec-Fetch-Site,避免被网页跨站调用。

目录结构

dsh-123pan/
├── index.js              Host 入口:注册工具 + HTTP 桥
├── client.js             设置页 UI(跟随宿主主题)
├── lib/
│   ├── core.js           核心进程封装(NDJSON 结果 + 进度轮询)
│   ├── api.js 相关         —— 见 native/core
│   ├── backup.js         工作区扫描、增量判定、目录结构还原
│   ├── bridge.js         本机 HTTP 桥(门禁 + 错误整形)
│   └── tools.js          agent 工具定义
├── native/core/
│   ├── main.cpp          CLI 与 NDJSON 协议
│   ├── api.cpp           123 云盘 API(登录/列目录/上传/下载/回收站)
│   ├── http.cpp          HTTPS 客户端(OpenSSL + Windows 证书存储)
│   ├── winutil.cpp       UTF-8/UTF-16、DPAPI、路径工具
│   ├── json.hpp          极简 JSON(解析 + 序列化)
│   └── build.sh          静态构建脚本
├── locale/{zh,en}.json   插件标题与描述
└── icon.svg

核心 CLI 约定

native/core/123pan-core.exe 也可以独立使用(调试或脚本化):

# 输出默认到 stdout;用 --ndjson <文件> 改为追加写文件
123pan-core.exe list --parent 0 --limit 10
123pan-core.exe upload --file D:\x.zip --parent 0
123pan-core.exe download --id 123 --out D:\x.zip
123pan-core.exe protect --text '{"token":"..."}'    # 输出 DPAPI 密文(base64)

每行一个 JSON 对象:{"type":"progress",...} 与 {"type":"result","ok":...}。 令牌可以用 DSH_123PAN_TOKEN 环境变量传入,或用 login --account <账号> 配合 DSH_123PAN_PASSWORD。

--ndjson 与 download --out 是两个不同的参数:前者指定协议输出文件, 后者是下载目标路径。早期版本两者同名 --out 会造成冲突,现已改名。

已知限制

  • 仅 Windows(核心用 Winsock + DPAPI + Windows 证书存储)。
  • 下载不支持断点续传(123 的 CDN 直链带签名与过期时间)。
  • 备份不做压缩,按原文件上传(云盘侧可自行压缩/去重)。
  • 秒传命中时不重新计算远端 MD5 校验(服务端按 etag 判定)。

许可

MIT