Skip to content

代码交给 Git,素材交给云匣。

云匣 YunBox 兼容 Git LFS。PSD、模型、音频和视频直接存进你自己的腾讯云 COS,团队照常 git push、git clone,中间不经过任何服务端。

npm install -g yunbox

命令行支持 macOS、Linux 和 Windows

存进你的 COS
0 B0 个素材
Git 仓库增加
0 B只有指针

指针文件 在 Git 里的样子

素材装进来以后,这里显示它的指针。

一次推送,分两条路走

代码和几行指针照旧去代码托管平台;素材由本机的传输代理签名后,直接上传到你的 bucket。没有要部署、要续费、要盯着的服务端。

你的电脑

  1. git push
  2. git-lfs 找出 3 个素材
  3. git-yunbox lfs-agent 用本机密钥签名
提交和指针,401 B

代码托管

GitHub、GitLab、工蜂,照旧使用

收到 1 个提交,3 个指针文件

素材本体,619.22 MiB 中间没有服务端

你的 COS bucket

私有读写,按内容寻址

  • yunbox/team/game/04/26/0426c139eb…
  • yunbox/team/game/59/d0/59d0ddff63…
  • yunbox/team/game/c7/f5/c7f5f645ef…

接入只要几条命令

管理员给仓库接一次 COS,再给每位协作者开一个子账号。协作者登录后 clone,素材自动下载。哪里不对,先跑 yunbox doctor,每一项都附修复命令。

第一次给仓库接上 COS,只做一次

zsh — game

推送之前,先看看有多大

macOS 客户端和 yunbox inspect --push 用同一套检查:分别统计 Git pack 和 LFS 候选量,按大小列出每个文件,超出预算的标出来。下面的窗口可以直接操作。

推送检查

game

/Users/alice/game

检查于 14:21
超过预算 单文件预算 10 MiB预算设置

Git pack

1.24 MiB

压缩后的预计上传量预算 900 KiB

LFS 候选

74.2 MiB

3 个素材对象预算 100 MiB

LFS 尚未查询远端,实际上传量未知;远端已有对象可能跳过。

文件类型

文件明细6 / 6 个对象 · 按大小降序

文件类型原始大小预算

Git · 1,153,434 字节

b0332ac18c4a94b5a97b3af8584d3952f79e49ef…

这张图片进了 Git 而不是 LFS,Git pack 因此超出预算。检查 .gitattributes 有没有跟踪 *.png。

用 yunbox hook install --confirm 装上推送钩子后,超出预算的 git push 不会被直接拦下,而是弹出下面的对话框:推到哪个远端、哪些文件超限、每个文件多大,看完再决定取消还是继续。

推送到 github.com/owner/game-assets 超过限额

本地仓库 game-assets(main)
1 个文件版本超过单文件限额 200.0 MiB

Git pack

2.84 MiB / 50.0 MiB

压缩后预计上传6%

LFS 候选

810.5 MiB / 1.00 GiB

3 个素材,远端已有的会跳过79%

最大单文件超限

412.0 MiB / 200.0 MiB

原始大小206%

变更文件6 个文件 · 新增 2 · 修改 3 · 删除 1按本次上传大小排序

状态文件大小变化本次上传
新增Assets/Video/opening.mp4LFS超限无 → 412.0 MiB412.0 MiB
修改Assets/Characters/boss_idle.fbxLFS2 个版本168.0 MiB → 178.0 MiB(+10.0 MiB)346.0 MiB
修改Assets/Terrain/terrain_albedo.pngLFS48.0 MiB → 52.5 MiB(+4.50 MiB)52.5 MiB
新增Assets/UI/ui_atlas.png无 → 3.12 MiB3.12 MiB
修改Assets/Scenes/Level01.unity212.0 KiB → 236.0 KiB(+24.0 KiB)236.0 KiB
删除Assets/Audio/old_theme.wavLFS31.2 MiB → 无0 B

「本次上传」是文件原始大小,Git 会压缩和增量传输;同一文件的每个历史版本分别统计。

继续推送取消

推送检查的统计口径超限时如何确认macOS 客户端的全部功能

到点不让推送

用 opening_hours 写法设定禁推时段,例如 Mo-Fr 09:00-18:00; We off。本仓库、团队、全局三层规则同时生效,命中时推送在上传前被中断;紧急修复时 yunbox freeze off --for 1h 快速关闭,规则保留,到点自动恢复。

菜单栏里随时看到

当前仓库处在禁推时段时,菜单栏的云匣图标右上角会多一个圆点。点开面板:现在能不能推、今天和未来 7 天的禁推分布、每个项目的规则。勾选预设就能设置,右上角的开关和定时按钮可以一次关闭所有仓库。这里的演示面板可以直接操作:勾选预设、拨动开关试试。

yunbox freeze set "Mo-Fr 09:00-18:00"
yunbox freeze off --until 18:00
yunbox freeze check --json

交给 AI 接入

客户端的 COS 面板里有「复制给 AI 的接入说明」,粘贴给 Claude Code、Codex 或 Cursor 即可。云匣的命令都不需要交互、都有 JSON 输出,编程助手可以自己检查、接入、设时段;只有保存腾讯云密钥这一步留给你自己。

推送时段

禁推中game · 18:00 后可以推送
Mo-Fr 09:00-18:00(本仓库)


未来 7 天
  • 今天9 小时
  • 明天9 小时
  • 周四9 小时
  • 周五15 小时
  • 周六—
  • 周日—
  • 周一9 小时

全局规则本机所有仓库

没有全局规则在右上角「+」选择预设,对本机所有仓库生效


项目每个项目单独设置
本仓库Mo-Fr 09:00-18:00
团队Fr 18:00-24:00

使用说明

密钥不离开你的电脑

仓库里只记录素材放在哪个 bucket、哪个前缀。访问 COS 的密钥每人一把,存在各自电脑的钥匙串里。

提交进仓库,全组共享

.yunbox/config

[cos]
    bucket = team-assets-1250000000
    region = ap-shanghai
    prefix = yunbox/team/game

.gitattributes

*.psd filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text

只记录素材放在哪里,没有任何密钥。不同项目可以用不同 bucket,也可以共用一个 bucket、各用一个前缀。

只在你自己的电脑上

macOS 钥匙串(yunbox)

SecretId   AKID••••••••••••••••
SecretKey  ••••••••••••••••••••

.git/config

[lfs]
    standalonetransferagent = yunbox
    locksverify = false

每人一个子账号,只能读写这个前缀。有人离开项目,yunbox subaccount delete 之后对方的密钥立即失效。Linux 和 Windows 上密钥存在只有本人可读的文件里。

不覆盖
上传带 x-cos-forbid-overwrite,已经存在的对象不会被改写。
只传一次
对象按 SHA-256 内容寻址,同样的文件全组只上传一次。
下载校验
核对大小和 SHA-256,被替换或损坏的对象不会交给 git-lfs。
最小权限
子账号只有这个前缀的读写,不能列出 bucket,也不能删除。

下载云匣

图形界面适合日常查看和接入;命令行负责传输,每位协作者都需要安装。两者可以同时使用。

云匣 for macOS

选择仓库就能看推送体积、超限文件和 COS 直连状态,也能在窗口里保存密钥、一键接入 bucket。

下载 YunBox-macOS.zip

v0.1.4,2.57 MiB,Apple 芯片和 Intel 通用

  • macOS 14 或更新
  • 本机 Node.js 22.18+,客户端用它运行内置的检查组件
  • git-lfs 3.2+(brew install git-lfs)
第一次打开被 macOS 拦下?

安装包还没有经过 Apple 公证。解压后把 YunBox 拖进「应用程序」,第一次打开如果提示无法验证开发者,到「系统设置 → 隐私与安全性」点「仍要打开」;也可以在终端运行:

xattr -dr com.apple.quarantine /Applications/YunBox.app

命令行

macOS、Linux、Windows 都能用。安装后同时得到 yunbox 和 git-yunbox,git yunbox init 和 yunbox init 完全一样。

npm install -g yunbox

最新 v0.1.4,由 GitHub Actions 发布并附带 provenance

  • Node.js 22.18+
  • Git 2.30+ 和 git-lfs 3.2+
  • Windows 上使用 Git for Windows 自带的 git-lfs

MIT 许可证发布