极空间 NAS 没有命令行,我逆向了它的桌面客户端

极空间 NAS 用了一年多,哪都好,就是有个问题让我一直不爽:它没有命令行。

文件管理全靠 App 点来点去。想批量重命名几十个视频、想脚本化备份、想定时整理文件夹------对不起,没有 API,没有 SSH(默认还关着),想自动化就只能对着 App 一个一个点。

直到我注意到一个细节:桌面客户端为了跟 NAS 通信,会在本机开一个本地代理。

它其实留了一扇窗

装好极空间桌面客户端、登录之后,你会发现本机 127.0.0.1:13579 端口上跑着一个小服务。客户端跟 NAS 说话全走这里:列目录、上传下载、改名,都是 HTTP 请求。

也就是说------只要桌面客户端登录着,我就能用一个 HTTP 客户端替它做所有操作,而且不用碰账号密码。

我顺着这个思路,把客户端用到的接口一个个记下来,整理成了一套干净的 Python 接口,就是 zspace-cli。

装完就能用

bash 复制代码
pip install zspace-cli
zs check

zs check 会自动去读桌面客户端的登录态------你在 macOS 上,它就找 ~/Library/Application Support/zspace/vuex.json;在 Windows / Linux 上它也会自己找。装完不用填任何配置:

bash 复制代码
zs ls /sata11/my/data/影视
zs find "权力的游戏"     # 全文搜索
zs tree /sata11/my/data -d 3

上传下载带进度条,几个 G 的文件走流式,不占内存。

让 AI 帮你管文件

这是我觉得最有意思的用法。装好之后给 Cursor 或 Claude 复制一个 skill 文件夹:

bash 复制代码
zs skill ~/your-project/.cursor/skills/

然后你就能直接跟 Agent 说人话:

「把影视文件夹里的电影按年份分类」

「扫一下影视命名有没有问题」

它自己会去调 zs 命令完成。我实际用它把 NAS 上 300 多部电影、80 多部剧集整理了一遍------审查规避的怪命名(S探、让丨Z弹飞)也一起解码归位了:

那套解码规则我单独开源成了 media-naming-guide。

过程中踩的几个坑

Windows 支持是后补的,补的时候踩了两个印象深刻的坑:

  1. UTF-8 BOM :Windows 工具写的配置文件会带一个 BOM 头,直接 json.loads 会崩,得用 utf-8-sig 读。
  2. GBK 控制台 :中文 Windows 控制台打印 ✓、📁 这类字符直接 UnicodeEncodeError,后来全部换成了 ASCII 符号。

另外如果不想装桌面客户端,也可以跑 Docker:

bash 复制代码
docker compose build
docker compose run --rm zspace-cli zs check

容器里连宿主机桌面客户端的代理就行,镜像里不需要客户端。

就这些

项目完全开源,代码和文档都在下面:

声明:非官方、社区维护项目,依赖桌面客户端本地代理(非公开接口),只读你自己账号的登录态。用之前请了解极空间用户协议。

如果它帮到了你,欢迎点个 Star,有问题也欢迎提 issue 或评论区聊。

相关推荐
在世修行7 小时前
智学文枢:变式题生成引擎
python·ai·pyside·题目生成
金銀銅鐵8 小时前
[Java] 用 GUI 展示 EnumMap 增删键值对时的内部变化
java·后端·ai编程
KaneLogger8 小时前
magpie:让薅到的 AI 羊毛物尽其用
人工智能·ai编程
On The Road :9 小时前
Java 多线程详解:从入门到线程安全
java·python·安全
岁月宁静9 小时前
如何设计支持 Skills 的 Agent?一套可扩展的四层架构
python·agent
岁月宁静10 小时前
CrewAI 快速上手:10 分钟搭建你的第一个 Agent 团队
python·agent
曲径海盗10 小时前
【Python 学习第 40 天】for 循环
python·学习笔记·编程入门
专注仿真10 小时前
知识问答大模型-rag算法详解
人工智能·python·控制算法
码哥字节10 小时前
spec-superflow 2.0:小任务快跑,复杂任务不漂移
ai编程
染指111011 小时前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents