bottari
你的 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` directlyLinux
# 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命令
| 同步( |
| 显示将要上传或下载的内容,不做任何更改 |
| 将文件恢复到较早的版本 |
| 列出云端中的版本 |
| 诊断环境和存储 |
| 回收旧世代占用的空间 |
| 将项目文件夹添加到同步中 |
| 记录并比较已安装的工具 |
| 填写从配置中拆分出的机密 |
| 也在捆绑包中携带 MCP 令牌(默认关闭——见 SECURITY.md) |
| 登录 / 退出 Google Drive |
Claude Desktop (MCP)
bottari 附带一个 MCP 服务器,让 Claude 可以从桌面应用中驱动它。
构建捆绑包:
node scripts/build-mcpb.mjs→dist/bottari.mcpbClaude Desktop → 设置 → 扩展 → 将
bottari.mcpb拖入。
一旦你在终端中运行过一次 bottari sync --remember-key(这样密钥就会被存储),只需告诉 Claude:"检查我的 bottari 状态" 或 "同步 bottari"。冲突会以列表形式返回;由你选择,下一次同步就会应用。
同步内容
示例 | 方式 | |
资产 | skills、CLAUDE.md、AGENTS.md、hooks | 原样 |
设置 | settings.json、config.toml、MCP 服务器 | 仅机器中立形式;路径变为占位符,机密移至操作系统凭据库 |
会话历史 | 对话 | 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>
This server cannot be deployed
Maintenance
Related MCP Connectors
Give Claude only the Google Drive files you choose. Every action logged.
Personal CRM for Claude. Contacts live as plain-text files in your own Google Drive.
A second brain for Claude: remembers your work, plans your day, encrypted under a key only you hold.
Share context and questions between Claude instances — VS Code, claude.ai web, and mobile.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConnects Claude Desktop to Google Drive, allowing Claude to access and interact with your Drive files and folders securely through OAuth authentication.1ISC
- AlicenseNot gradedqualityDmaintenanceConnects Claude Desktop to Google Docs and Google Drive, enabling comprehensive document reading, writing, formatting, structuring, and complete Drive file management including shared drives support through OAuth 2.0 authentication.5 npm3MIT
- AlicenseNot gradedqualityDmaintenanceSyncs Claude Code sessions between machines with end-to-end encryption using a recovery phrase.6 npmMIT
- AlicenseNot gradedqualityCmaintenanceBridges Claude Code terminal sessions with Claude Chat by exposing session logs as tools, enabling seamless context transfer and two-way communication via a cooperative inbox and optional Google Drive sync.87 npm2MIT