极空间 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 或评论区聊。

相关推荐
掘金挖土1 小时前
前端手摸手跑路之 AI 应用开发(七)
前端·后端
我也要在julius_bar里藏钱1 小时前
【山竹记账后端】1.搭建后端项目
后端·ruby·rails
Moment1 小时前
为什么越来越多开发者开始用 PostgreSQL?
前端·后端·面试
YHL1 小时前
🚀 从 SPA 到 Next.js 全栈:一个大前端的 SEO 突围笔记
前端·后端
颜进强1 小时前
从零跑通一套 WorkBuddy Skill 骨架:【能跑通+代码】生成HTML报告实战
前端·后端·ai编程
Shinomiya1 小时前
Mysql之表的约束详解
后端
Java内核笔记1 小时前
Spring Boot 4 与 Spring AI 2.0 深度集成:ChatClient、Advisor 链与 MCP(源码级实战)
java·后端
吃饱了得干活1 小时前
一个订单的奇幻漂流:RabbitMQ 五大难题实战
spring boot·后端·rabbitmq
她的男孩1 小时前
账号锁定配了"错 4 次锁 30 分钟",我连错 100 次一次没锁上:扒完 4091 行认证源码,找到 5 个坑
java·后端·架构