[工具推荐] seaf-cli-macos — macOS 命令行 Seafile 客户端
简介
seaf-cli-macos 是一个用 Go 语言编写的 macOS 命令行 Seafile 客户端,基于官方 seaf-daemon 块同步协议,不依赖 Python,开箱即用。
为什么做这个工具?
官方 Seafile 桌面客户端功能完善,但有些场景需要更灵活的命令行工具:
-
服务器批量管理 — 在多台 Mac 上快速部署同步
-
自动化脚本 — 定时同步、自动备份
-
无 GUI 环境 — SSH 远程服务器、CI/CD 流程
-
轻量需求 — 只需要同步和上传,不想装完整客户端
核心特性
-
块同步协议 — 使用 seaf-daemon 的原生同步引擎,速度快,不走 REST API
-
断点续传 — 上传中断后再次运行,已传文件自动跳过
-
智能上传策略 — 根据文件数量和大小自动选择 zip 压缩或逐文件上传
-
WAF 兼容 — 遇到限流自动暂停重试,指数退避
-
钥匙串集成 — token 自动存入 macOS Keychain
-
终端美化 — 使用 lipgloss 库,中文对齐,Emoji 图标
快速安装
# Apple Silicon
curl -L https://github.com/cobola/seaf-cli-macos/releases/latest/download/seaf-cli-macos-arm64.tar.gz | tar -xz
sudo cp seaf-cli-macos-arm64/bin/* /usr/local/bin/
# Intel Mac
curl -L https://github.com/cobola/seaf-cli-macos/releases/latest/download/seaf-cli-macos-x86_64.tar.gz | tar -xz
sudo cp seaf-cli-macos-x86_64/bin/* /usr/local/bin/
使用示例
# 登录
seaf-cli login
# 输入服务器地址、邮箱、密码
# 查看资料库
seaf-cli list
# 浏览文件
seaf-cli ls 私人资料库/文档
# 同步到本地
seaf-cli sync 私人资料库 ~/SeafileData/私人资料库
# 上传文件(自动排除 .DS_Store)
seaf-cli upload ~/Documents/my-project 私人资料库/my-project
# 查看同步状态
seaf-cli status
命令一览
| 命令 | 说明 |
|------|------|
| seaf-cli login | 登录 |
| seaf-cli login --web | Token 登录(适合 SSO) |
| seaf-cli list | 列出所有资料库 |
| seaf-cli ls <库> [路径] | 浏览文件 |
| seaf-cli sync <库> <目录> | 同步到本地 |
| seaf-cli upload <本地> <远程> | 上传文件 |
| seaf-cli status | 查看同步状态 |
| seaf-cli start/stop | 启动/停止守护进程 |
技术实现
-
语言: Go + C (seaf-daemon)
-
同步: seaf-daemon 块同步协议(TCP 长连接)
-
上传: REST API + 智能限流
-
登录: 支持密码/Token/JSON 导入
-
安全: 钥匙串存储、配置文件 0600 权限
与官方客户端对比
| 特性 | 官方客户端 | seaf-cli-macos |
|------|-----------|----------------|
| GUI |
完整 GUI |
纯命令行 |
| 自动同步 |
|
|
| 文件上传 |
|
|
| 脚本集成 |
|
|
| 体积 | ~200MB | ~10MB |
| 依赖 | Qt + Python | 无 |
已知限制
-
上传大文件目录可能触发 WAF 限流(使用
-s zip策略可缓解) -
不支持文件锁定、评论等高级功能
-
同步功能需要 seaf-daemon 守护进程运行
反馈
欢迎在 GitHub Issues 提交问题和建议。
工具开源,GPLv3 协议,基于官方 Seafile 源码编译。