让 AI 管理你的云盘:OpenList Skill 开源项目分享
当 AI Agent 遇上自建网盘,文件管理变得像对话一样简单。
前言
自建网盘用户大多听过 AList——那个能聚合几十种存储后端的文件列表程序。而 OpenList 作为 AList 的社区分支,在保持 API 兼容的同时,坚持开源治理和社区驱动。
如果你在用 OpenList 或 AList 自建网盘,并且也在用 AI Agent 辅助工作,那今天分享的这个项目可能会让你眼前一亮:OpenList Skill —— 一个让 AI Agent 直接操作你网盘的技能包。
它解决什么问题?
日常使用网盘,我们习惯了打开浏览器 → 登录 → 点击文件夹 → 找文件 → 下载/分享这一串操作。但如果 AI 能直接帮你完成这些事呢?
"帮我找一下云盘里那个报告 PDF" "把备份目录下的照片打包分享链接" "把本地的日志文件上传到云盘的归档目录"
OpenList Skill 就是让这些自然语言指令变成现实。它封装了 OpenList/AList 的完整 HTTP API,提供 21 个命令,覆盖文件浏览、上传下载、搜索、批量重命名、分享管理等场景。
功能全景
📁 文件操作(11 个命令)
| 命令 | 做什么 | 示例 |
|---|---|---|
login |
登录并保存 token | 一次登录,后续自动鉴权 |
list |
列出目录内容 | 浏览任意文件夹 |
get |
获取文件/目录详情 | 查看大小、修改时间等 |
search |
搜索文件 | 关键词模糊查找 |
mkdir |
创建文件夹 | 新建归档目录 |
rename |
重命名 | 整理文件命名 |
move |
移动文件 | 文件归类整理 |
copy |
复制文件 | 跨目录备份 |
remove |
删除文件 | 清理过期文件 |
link |
获取下载直链 | 拿到文件的真实下载地址 |
upload |
上传本地文件 | 将本地文件推到云端 |
⚡ 批量操作(2 个命令)
| 命令 | 做什么 |
|---|---|
batch-rename |
批量重命名:old1:new1,old2:new2 |
regex-rename |
正则替换重命名:所有 .txt → .md |
正则重命名是效率神器。比如想把一整季视频文件从 S01E01_1080p.mp4 统一改成 第1集.mp4,一条正则命令搞定。
🔗 分享管理(5 个命令)
| 命令 | 做什么 |
|---|---|
share-list |
查看所有分享 |
share-create |
创建分享链接(可设密码、过期时间) |
share-get |
查看分享详情 |
share-update |
修改分享设置 |
share-delete |
删除分享 |
分享链接格式为 http://<host>/@s/<id>,创建后直接返回完整链接,一步到位。
🔍 索引管理(4 个命令)
| 命令 | 做什么 |
|---|---|
index-build |
全量重建搜索索引(慎重使用) |
index-update |
增量更新索引 |
index-clear |
清除索引 |
index-progress |
查看索引构建进度 |
亮点设计
1. 智能搜索:API + 递归遍历双保险
这是我觉得最用心的设计。搜索文件时,Skill 会先尝试 OpenList 的 API 搜索;如果索引未建立或关键词过滤失效(部分存储后端不支持),它会自动降级为递归目录遍历,确保总能找到文件。
# API 搜索优先,失败时自动回退遍历
python scripts/openlist.py search --path /Backup --keyword "报告"
# 也可以跳过 API,直接用遍历模式
python scripts/openlist.py search --path /Backup --keyword "报告" --no-api
更贴心的是,Skill 还内置了一个搜索无结果处理流程,防止 AI Agent 动不动就触发耗时的全量索引重建:
- 换关键词再试(模糊匹配、部分文件名)
- 用
list浏览目录手动定位 - 增量更新索引
index-update --paths "/目标目录" - 只有索引损坏或首次配置时才
index-build
2. 零配置快速上手
两种认证方式,按需选择:
自动登录(推荐)——一次配置,后续无忧:
python scripts/openlist.py login \
--url https://your-openlist.example.com \
--username admin \
--password your-password
自动生成 config.json,后续所有命令自动读取凭据。
命令行参数——临时使用或脚本集成:
python scripts/openlist.py list \
--url https://your-openlist.example.com \
--token eyJhbGci... \
--path /
3. 单文件架构,极简部署
整个核心功能就一个 openlist.py 文件(约 600 行),加上一个 SKILL.md 技能描述文件和一份 API 参考文档。没有复杂的项目结构,没有层层依赖,pip install requests 就能跑。
openlist-skill/
├── SKILL.md # Agent 技能描述
├── scripts/
│ └── openlist.py # 核心——唯一入口
├── references/
│ └── api.md # 完整 API 参考
└── config.json # 自动生成,gitignored
4. 标准化 JSON 输出
所有命令返回统一的 JSON 格式,方便 Agent 解析和程序化调用:
// 成功
{"code": 200, "message": "success", "data": {...}}
// 失败
{"code": 400, "message": "error description", "data": null}
还支持 --json(纯 JSON)和 --quiet(精简输出)两种模式,适配不同使用场景。
实战场景
场景一:对话式文件管理
你:帮我看看云盘根目录有什么
AI:执行 list --path / → 返回目录列表
你:把报告上传到 /Backup/2026/
AI:执行 upload --path /Backup/2026/report.pdf --file ./report.pdf
你:给这个文件创建一个分享链接,7天后过期
AI:执行 share-create --files /Backup/2026/report.pdf --expire-hours 168
→ 返回分享链接
场景二:批量文件整理
# 把一目录下的 .JPG 文件统一改成 .jpg
python scripts/openlist.py regex-rename \
--src-dir /Photos/2026 \
--src-regex "^(.*)\.JPG$" \
--dst-regex "$1.jpg"
场景三:定时备份脚本
# 上传今天的日志,覆盖已有文件
python scripts/openlist.py upload \
--path /Logs/app.log \
--file /var/log/app.log \
--replace
与 OpenList 的关系
OpenList 是 AList 的社区分支,API 完全兼容 AList v3。这意味着:
- ✅ OpenList 用户:原生支持
- ✅ AList v3 用户:同样适用,无需任何修改
OpenList Skill 只需要你的实例地址和登录凭据,就能工作。
快速开始
# 1. 克隆项目
git clone https://github.com/drfccv/OpenList-skill.git
# 2. 安装依赖
pip install requests
# 3. 登录你的 OpenList/AList 实例
python scripts/openlist.py login \
--url https://your-instance.example.com \
--username admin \
--password secret
# 4. 开始使用
python scripts/openlist.py list --path /
写在最后
OpenList Skill 的价值不在于它有多复杂——恰恰相反,它的价值在于简单。600 行 Python,21 个命令,把网盘操作变成了 AI Agent 可以直接调用的能力。
对于自建网盘用户来说,这意味着你的 AI 助手不再只是"会聊天"——它真的能帮你管理文件了。
如果你也在用 OpenList 或 AList,不妨试试:
🔗 GitHub: https://github.com/drfccv/OpenList-skill
📦 License: MIT
欢迎 Star ⭐、提 Issue、提 PR!