SkillHub

bdpan-storage

v1.1.1

百度网盘文件管理 Skill。支持上传、下载、转存、分享、列表查询、搜索、移动、复制、重命名、创建文件夹。当用户提及"百度网盘"/"bdpan"/"网盘"并涉及文件操作(上传/下载/转存/分享/查看/搜索/移动/复制/重命名/新建文件夹/登录/注销)时触发。用户说"上传到网盘"、"从百度网盘下载"、"转存到网盘"、"分享文件到网盘"、"查看网盘文件"、"搜索网盘文件"、"移动网盘文件"、"复制网盘文件"、"重命名网盘文件"、"在网盘创建文件夹"、"登录百度网盘"等均应触发此 Skill。

Sourced from ClawHub, Authored by baidu-netdisk

Installation

Please help me install the skill `bdpan-storage` from SkillHub official store. npx skills add May-Yaha/bdpan-storage

百度网盘存储 Skill

百度网盘文件管理工具,支持上传、下载、转存、分享、列表查询、搜索、移动、复制、重命名、创建文件夹。所有操作限制在 /apps/bdpan/ 目录内。

适配产品: OpenClaw, Claude Code, DuClaw, KimiClaw, Manus 等。

内测阶段,使用注意事项详见 reference/notes.md


触发规则

同时满足以下两个条件才执行:

  1. 用户明确提及百度网盘——消息中包含 "百度网盘"、"bdpan"、"网盘" 等关键词
  2. 操作意图明确——能确定是以下操作之一:上传、下载、转存、分享、列表查看、搜索、移动、复制、重命名、创建文件夹、登录、注销

禁止直接执行任何 bdpan 命令。


前置检查

每次 Skill 被触发时,按顺序执行以下检查:

  1. bdpan whoami 检查登录状态,未登录则引导执行 bash @skills/bdpan-storage/scripts/login.sh
  2. 验证路径合法性

禁止自动更新: 更新严禁自动或静默执行必须由用户明确下达更新指令(如"升级 skill"、"更新一下")时才可执行更新。未收到用户明确更新指令时,禁止运行任何更新命令。更新时统一执行 bash @skills/bdpan-storage/scripts/update.sh


确认规则

以下场景必须先向用户确认,不得直接执行:

场景 说明
路径不明确 用户未指定具体文件路径或目标路径
远程路径已存在 上传目标位置有同名文件,询问:覆盖/重命名/取消
本地路径已存在 下载目标位置有同名文件,询问:覆盖/重命名/取消
操作意图模糊 "处理文件"→确认上传还是下载;"同步"→确认方向;"备份"→确认方向
移动/重命名操作 移动或重命名前确认源路径和目标,防止误操作

确认时使用以下格式:

操作类型: [上传/下载/转存/分享/列表/搜索/移动/复制/重命名/创建文件夹]
源路径: [路径]
目标路径: [路径]
请确认是否执行?

核心功能

查看状态 (whoami)

bdpan whoami

显示当前登录状态、用户名和 Token 有效期。用于前置检查和用户主动查询。

列表查询 (ls)

bdpan ls                                  # 根目录
bdpan ls <目录路径>                        # 指定目录
bdpan ls --json                           # JSON 输出

上传 (upload)

bdpan upload <本地路径> <远端路径>

单文件上传——远端路径必须是文件名,不能以 / 结尾:

bdpan upload ./report.pdf report.pdf              # 上传到根目录
bdpan upload ./data.csv backup/data.csv           # 上传到子目录
# ❌ bdpan upload ./report.pdf reports/            # 单文件远端路径禁止以 / 结尾

文件夹上传——本地和远端路径都带 / 或都不带:

bdpan upload ./project/ project/                  # 上传文件夹
bdpan upload ./project project                    # 也可以都不带 /
# ❌ bdpan upload ./project/ project              # 本地带 / 远端不带,行为不确定

步骤:确认本地路径存在 → 确认远端路径 → 用 bdpan ls 检查远端是否已存在 → 执行上传

下载 (download)

直接下载(网盘文件 → 本地)

bdpan download <远端路径> <本地路径>
bdpan download report.pdf ./report.pdf
bdpan download backup/ ./backup/          # 文件夹需加 /

步骤:用 bdpan ls 确认云端路径存在 → 确认本地路径 → 检查本地是否已存在 → 执行下载

分享链接下载(先转存再下载到本地)

# 链接中含提取码
bdpan download "https://pan.baidu.com/s/1xxxxx?pwd=abcd" ./downloaded/

# 单独传入提取码
bdpan download "https://pan.baidu.com/s/1xxxxx" ./downloaded/ -p abcd

# 指定转存目录(默认转存到 /apps/bdpan/{日期}/)
bdpan download "https://pan.baidu.com/s/1xxxxx?pwd=abcd" ./downloaded/ -t my-folder

步骤:验证链接格式 → 确认有提取码 → 确认本地保存路径 → 执行下载

转存 (transfer)

将分享链接中的文件转存到自己的网盘,不下载到本地

# 基本用法 - 转存到应用根目录 /apps/bdpan/
bdpan transfer "https://pan.baidu.com/s/1xxxxx" -p abcd

# 提取码在链接中
bdpan transfer "https://pan.baidu.com/s/1xxxxx?pwd=abcd"

# 指定目标目录
bdpan transfer "https://pan.baidu.com/s/1xxxxx" -p abcd -d my-folder/

# JSON 输出
bdpan transfer "https://pan.baidu.com/s/1xxxxx" -p abcd --json

与 download 的区别: - transfer:分享文件 → 自己的网盘(不下载到本地) - download(分享链接模式):分享文件 → 自己的网盘 → 本地

步骤:验证链接格式 → 确认有提取码 → 确认目标目录 → 执行转存

转存成功后的展示: - 只展示本次转存的文件/文件夹(而非整个目录) - 显示转存数量和目标目录 - 如转存的是单个文件,显示具体文件名 - 如转存的是文件夹,显示文件夹名称和内部文件数

分享 (share)

bdpan share <远端路径>
bdpan share <路径1> <路径2>               # 多文件分享
bdpan share --json report.pdf             # JSON 输出

输出格式:

分享链接创建成功!
链接: https://pan.baidu.com/s/1xxxxxxx
提取码: abcd
有效期: 7 天

注意:分享接口为付费接口,需在百度网盘开放平台购买服务。

bdpan search <关键词>                         # 搜索文件
bdpan search <关键词> --category 3            # 按类型筛选(3=图片)
bdpan search <关键词> --no-dir                # 仅文件
bdpan search <关键词> --dir-only              # 仅文件夹
bdpan search <关键词> --page-size 10 --page 2 # 分页
bdpan search <关键词> --json                  # JSON 输出

选项:

选项 默认值 说明
--category 0 文件类型:1=视频, 2=音频, 3=图片, 4=文档, 5=应用, 6=其他, 7=种子
--page-size 5 每页数量(最大 50)
--page 1 页码
--no-dir false 不显示文件夹,仅显示文件
--dir-only false 仅显示文件夹

--no-dir--dir-only 互斥,不能同时使用。

移动 (mv)

bdpan mv <源路径> <目标目录>
bdpan mv docs/report.pdf backup              # 移动到 backup 目录

将文件或文件夹移动到目标目录。路径相对于网盘根目录 /apps/bdpan

复制 (cp)

bdpan cp <源路径> <目标目录>
bdpan cp docs/report.pdf backup              # 复制到 backup 目录

将文件或文件夹复制到目标目录。路径相对于网盘根目录 /apps/bdpan

重命名 (rename)

bdpan rename <路径> <新名称>
bdpan rename docs/old-name.pdf new-name.pdf  # 重命名文件

重命名文件或文件夹。第二个参数是新文件名(不是完整路径)。路径相对于网盘根目录 /apps/bdpan

创建文件夹 (mkdir)

bdpan mkdir <路径>
bdpan mkdir backup/2026                      # 创建文件夹

在网盘中创建文件夹。路径相对于网盘根目录 /apps/bdpan


管理功能

安装 (install.sh)

bash @skills/bdpan-storage/scripts/install.sh
bash @skills/bdpan-storage/scripts/install.sh --yes     # 非交互式安装

自动检测平台架构,下载对应的 bdpan CLI 安装器并执行安装。支持 SHA256 完整性校验。

登录 (login.sh)

必须使用登录脚本执行登录:

bash @skills/bdpan-storage/scripts/login.sh

强制要求: - 必须使用 @skills/bdpan-storage/scripts/login.sh 脚本 - 禁止直接使用 bdpan login(即使在 GUI 环境) - 禁止直接调用 bdpan login --get-auth-urlbdpan login --set-code

登录脚本内置了完整的安全免责声明和授权流程,确保用户知情同意。

注销 (logout)

bdpan logout

卸载 (uninstall.sh)

bash @skills/bdpan-storage/scripts/uninstall.sh

完全卸载 bdpan CLI,包括: - 注销登录并清除授权信息 - 删除配置目录(~/.config/bdpan/) - 删除 bdpan 二进制文件

支持 --yes 参数跳过确认(自动化场景)。

更新 (update.sh)

严禁自动执行: 必须由用户明确下达更新指令时才可运行,禁止自动或静默触发。

更新脚本会同时更新 Skill 和 CLI,用户无需分别操作。

bash @skills/bdpan-storage/scripts/update.sh                    # 检查并更新(需用户确认)
bash @skills/bdpan-storage/scripts/update.sh --check            # 仅检查更新,不执行
bash @skills/bdpan-storage/scripts/update.sh --yes              # 跳过确认,直接更新

路径规则

远端路径有三层含义,必须区分清楚:

层次 说明 格式 示例
① 命令参数 bdpan 命令中使用的路径 相对路径(相对于 /apps/bdpan/ bdpan upload ./f.txt docs/f.txt
② CLI 内部 CLI 自动拼接完整 API 路径 /apps/bdpan/ + 相对路径 /apps/bdpan/docs/f.txt
③ 展示给用户 JSON 输出和用户可见的路径 中文名(CLI 自动转换) 我的应用数据/bdpan/docs/f.txt

映射关系:我的应用数据/apps

规则总结: - 写命令时:使用相对路径,如 docs/f.txt - JSON 输出中:路径字段会显示中文名,如 "path": "我的应用数据/bdpan/docs/f.txt" - 展示给用户时:使用中文名,如 "已上传到:我的应用数据/bdpan/docs/f.txt"

禁止: - 命令中使用中文路径(我的应用数据/bdpan/...) - 展示时暴露 API 路径(/apps/bdpan/...) - 路径包含 ..~ - 绝对路径不在 /apps/bdpan


授权码处理

当用户在对话中发送 32 位十六进制字符串且上下文与百度网盘登录相关时,将其作为授权码处理,执行 bash @skills/bdpan-storage/scripts/login.sh --yes

如果上下文不明确,先向用户确认:"这是百度网盘授权码吗?"


参考文档

详细信息参见 reference 目录(遇到对应问题时查阅):

文档 何时查阅
bdpan-commands.md 需要完整命令参数、选项、JSON 输出格式时
authentication.md 登录认证流程细节、配置文件位置、Token 管理时
examples.md 需要更多使用示例(批量上传、自动备份脚本等)时
troubleshooting.md 遇到错误需要排查时