bottari
Synchronizes Claude Code and Codex CLI configurations, skills, settings, session histories, and registered project folders across machines using an encrypted bundle stored in the user's own Google Drive, with version history and conflict handling.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@bottaricheck for sync conflicts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Your Claude Code and Codex CLI setup lives on more than one machine — Windows, an old Linux laptop, a Mac. bottari keeps them in step: it packs your skills, settings, session history and project folders into an encrypted bundle on your own Google Drive, and every machine syncs to it. Only encrypted data ever leaves your computer.
Union merge, nothing deleted. What exists on one side is always kept. You are only asked when the same file changed on two machines.
Version history. Every sync is a generation;
bottari restorebrings any earlier state back.End-to-end encrypted. The cloud holds one plaintext file (encryption parameters and a wrapped key). Forget your password and there is no way in — there is no back door.
Zero dependencies. Node.js 20+ and nothing else.
Status: 0.1.0. In daily use across Windows, Linux and macOS. Early — expect rough edges, and read SECURITY.md before trusting it with anything you cannot lose.
Install
You need Node.js 20 or newer and a Google account. Check Node with
node -v; if it is missing or older, install it first (per-OS below).
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
First run
On the machine that has the most data (usually your main one), run:
bottari init --remember-keyIt signs you in to Google in the browser and asks you to set a password.
Remember this password. It locks the whole bundle and cannot be recovered.
--remember-keystores the key in your OS credential store so you are not asked again — and so the Claude Desktop extension can work without it.
On every other machine, run the same command: bottari downloads the bundle, merges it with that machine (keeping everything unique to each), and uploads the result.
After that, day to day, it is just:
bottari syncCommands
| synchronize ( |
| show what would go up or down, changing nothing |
| bring files back to an earlier version |
| list the versions in the cloud |
| diagnose the environment and store |
| reclaim space from old generations |
| add a project folder to the sync |
| record and compare installed tools |
| fill a secret that was split out of a config |
| carry MCP tokens in the bundle too (off by default — see SECURITY.md) |
| sign in / out of Google Drive |
Claude Desktop (MCP)
bottari ships an MCP server so Claude can drive it from the desktop app.
Build the bundle:
node scripts/build-mcpb.mjs→dist/bottari.mcpbClaude Desktop → Settings → Extensions → drag
bottari.mcpbin.
Once you have run bottari sync --remember-key once in a terminal (so the key
is stored), just ask Claude: "check my bottari status" or "sync bottari".
Conflicts come back as a list; you choose, and the next sync applies it.
What syncs
example | how | |
assets | skills, CLAUDE.md, AGENTS.md, hooks | as-is |
settings | settings.json, config.toml, MCP servers | machine-neutral form only; paths become placeholders, secrets move to your OS credential store |
session history | conversation | 8 MB chunks, appends auto-merge |
projects | folders you register | shared by name, path per machine |
Credential files (.credentials.json, auth.json, …) never leave your
machine, and a fail-closed scan blocks any credential-looking content before
upload. Regenerable folders (node_modules, dist, …) and caches are excluded.
Google account
The build embeds an OAuth client scoped to drive.file — it only ever sees
files this app created, never the rest of your Drive. Any Google account can
sign in. Because the app is not through Google's verification (which
drive.file does not require), the browser shows an "unverified app" notice
once; Advanced → continue proceeds.
As with any installed app, the embedded client is not a secret (RFC 8252
§8.5) — it identifies bottari, not you. If you fork and redistribute,
register your own client and set BOTTARI_CLIENT_ID / BOTTARI_CLIENT_SECRET.
Security
Design and threat model: SECURITY.md. The sync model itself is defined in docs/SYNC-MODEL.md.
License
GPL-3.0-only · Copyright (C) 2026 JUNG HWANGBO <dostevskii@gmail.com>
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceConnects Claude Desktop to Google Drive, allowing Claude to access and interact with your Drive files and folders securely through OAuth authentication.1
- 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.112MIT
- AlicenseNot gradedqualityDmaintenanceSyncs Claude Code sessions between machines with end-to-end encryption using a recovery phrase.2MIT
- FlicenseNot gradedqualityCmaintenanceEnables Claude to search, list, and download files from any Google Drive folder shared with a service account, without OAuth or browser login.
Related MCP Connectors
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Edit your Overleaf LaTeX projects from Claude and ChatGPT; every change is a real Git commit.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dostevskii/bottari'
If you have feedback or need assistance with the MCP directory API, please join our Discord server