Skip to main content
Glama

你的 Claude Code 和 Codex CLI 配置分布在多台机器上——Windows、一台旧 Linux 笔记本、一台 Mac。bottari 让它们保持同步:它将你的技能、设置、会话历史和项目文件夹打包成加密捆绑包,存放在你自己的 Google Drive 上,每台机器都与之同步。只有加密数据才会离开你的电脑。

  • 并集合并,不删除任何内容。 任何一侧已有的内容始终保留。只有当同一文件在两台机器上都有修改时,才会询问你。

  • 版本历史。 每次同步都是一个世代;bottari restore 可以恢复任何较早的状态。

  • 端到端加密。 云端只保存一个明文文件(加密参数和一个包装密钥)。忘记密码就无法进入——没有后门。

  • 零依赖。 只需要 Node.js 20+,没有其他要求。

状态:0.1.0。 已在 Windows、Linux 和 macOS 上日常使用。早期版本——可能会有粗糙之处,在用它保存任何你无法丢失的内容之前,请阅读 SECURITY.md。

安装

你需要 Node.js 20 或更高版本 和一个 Google 账户。用 node -v 检查 Node;如果缺失或版本过旧,请先安装(各操作系统说明见下文)。

Windows

# 1) Node — skip if `node -v` already prints v20+
winget install OpenJS.NodeJS.LTS

# 2) get bottari (pick one)
git clone https://github.com/dostevskii/bottari.git
#   or: download the ZIP from the green "Code" button and unzip it
cd bottari
npm link          # makes `bottari` available everywhere (optional)

macOS

# 1) Node — skip if `node -v` already prints v20+
#    with Homebrew:
brew install node
#    or download the LTS .pkg from https://nodejs.org

# 2) get bottari
git clone https://github.com/dostevskii/bottari.git
cd bottari
npm link          # optional; or run `node bin/bottari.mjs` directly

Linux

# 1) Node 20+ — use your distro (examples)
#    Arch:   sudo pacman -S nodejs npm
#    Debian/Ubuntu: sudo apt install nodejs npm   (check: node -v ≥ v20)
#    Fedora: sudo dnf install nodejs
# 2) get bottari
git clone https://github.com/dostevskii/bottari.git
cd bottari
# A desktop keyring (gnome-keyring + libsecret) is recommended so the
# sign-in is stored securely; without one, bottari falls back to a 0600
# file and warns.

Related MCP server: Ultimate Google Docs & Drive MCP Server

首次运行

在数据最多的机器上(通常是你的主力机),运行:

bottari init --remember-key
  • 它会在浏览器中让你登录 Google,并要求你设置一个密码。

  • 记住这个密码。 它锁定了整个捆绑包,无法找回。

  • --remember-key 将密钥存储在操作系统的凭据库中,这样就不会再询问你——Claude Desktop 扩展也因此无需密码即可工作。

在其他每台机器上,运行相同的命令:bottari 下载捆绑包,与那台机器合并(保留每台机器独有的内容),然后上传结果。

之后,日常使用只需:

bottari sync

命令

bottari sync

同步(--dry-run 预览)

bottari status

显示将要上传或下载的内容,不做任何更改

bottari restore --generation N

将文件恢复到较早的版本

bottari generations

列出云端中的版本

bottari doctor

诊断环境和存储

bottari prune --keep N

回收旧世代占用的空间

bottari projects add <path>

将项目文件夹添加到同步中

bottari tools capture / show

记录并比较已安装的工具

bottari secrets set <name>

填写从配置中拆分出的机密

bottari secrets sync --enable

也在捆绑包中携带 MCP 令牌(默认关闭——见 SECURITY.md)

bottari login / logout

登录 / 退出 Google Drive

Claude Desktop (MCP)

bottari 附带一个 MCP 服务器,让 Claude 可以从桌面应用中驱动它。

  1. 构建捆绑包:node scripts/build-mcpb.mjs → dist/bottari.mcpb

  2. Claude Desktop → 设置 → 扩展 → 将 bottari.mcpb 拖入。

一旦你在终端中运行过一次 bottari sync --remember-key(这样密钥就会被存储),只需告诉 Claude:"检查我的 bottari 状态" 或 "同步 bottari"。冲突会以列表形式返回;由你选择,下一次同步就会应用。

同步内容

示例

方式

资产

skills、CLAUDE.md、AGENTS.md、hooks

原样

设置

settings.json、config.toml、MCP 服务器

仅机器中立形式;路径变为占位符,机密移至操作系统凭据库

会话历史

对话 .jsonl

8 MB 分块,追加自动合并

项目

你注册的文件夹

按名称共享,每台机器路径不同

凭据文件(.credentials.json、auth.json 等)永远不会离开你的机器,并且在上传前会进行故障安全扫描,阻止任何看似凭据的内容。可重新生成的文件夹(node_modules、dist 等)和缓存会被排除。

Google 账户

构建中嵌入了一个作用域为 drive.file 的 OAuth 客户端——它只能看到此应用创建的文件,永远不会看到你 Drive 中的其他内容。任何 Google 账户都可以登录。由于该应用未通过 Google 的验证(drive.file 不需要验证),浏览器会显示一次"未验证应用"提示;高级 → 继续 即可继续。

与任何已安装的应用一样,嵌入的客户端并非机密(RFC 8252 §8.5)——它标识的是 bottari,而不是你。如果你分叉并重新分发,请注册自己的客户端并设置 BOTTARI_CLIENT_ID / BOTTARI_CLIENT_SECRET。

安全

设计与威胁模型:SECURITY.md。同步模型本身定义在 docs/SYNC-MODEL.md 中。

许可证

GPL-3.0-only · 版权所有 (C) 2026 JUNG HWANGBO <dostevskii@gmail.com>

Related MCP Connectors

Related MCP Servers