Claude, inside your
Google Sheet
Select cells as context, chat with Claude, and let it write results straight back into your spreadsheet — no copy-paste, no tab switching.
Your API key, your data
Paste your Anthropic key once — it stays in Google's own storage. Nothing ever reaches a cld-ext server (there isn't one).
Selection → context
Highlight any range across any tabs and click "Use selection as context" to stream it directly into the chat.
Claude writes the cells
Claude calls write_range, add_comment, create_sheet — you approve in Suggest mode or let it run in Autonomous mode.
Everything you need, nothing you don't
Built lean and BYOK — you control the key, the data, and the pace.
Conversational sidebar
Full chat transcript inside Sheets. Multi-turn conversations with Claude, model picker, and a "new conversation" button — without ever leaving your spreadsheet.
Context from any range
Select cells across multiple tabs and send them as structured context with one click. Claude sees headers, values, and existing comments.
Audit log & undo
Every mutation is recorded in a hidden _cld_ext_log sheet — timestamp, range, old value, new value. One-click undo from the sidebar sidebar.
Token counter
After each reply, the sidebar shows input/output token counts and a running session total so you always know your usage.
Protected ranges
Mark header rows or formula columns as protected — even Autonomous mode falls back to Suggest for those cells.
Prompt presets
One-click canned prompts: Explain formula, Find anomalies, Summarize row, Draft comment — saves keystrokes for common tasks.
Sheet tools available to Claude
Claude picks the right tool for your request. Read-only calls run instantly; writes go through your chosen mode.
| Tool | What it does | Mode |
|---|---|---|
| list_sheets() | Names, dimensions, frozen rows/cols of every tab | instant |
| read_range(sheet, range) | Values and number formats for any range | instant |
| write_range(sheet, range, values) | Writes a 2D array of values | gated |
| add_comment(sheet, cell, text) | Adds a cell note/comment | gated |
| create_sheet(name) | Adds a new tab | gated |
| rename_sheet(old, new) | Renames an existing tab | gated |
| format_range(sheet, range, format) | Bold, color, number format | gated |
Two modes, one toggle
Claude proposes every cell write as a preview card showing the old value → new value. Nothing touches the sheet until you click Apply. Perfect for auditing changes.
Claude writes directly — fast, uninterrupted. Every action is still logged to the hidden _cld_ext_log sheet so you can undo any change from the sidebar.
Install in 3 steps
No Marketplace listing yet — install manually as a personal deployment.
Clone the repo and push to Apps Script with clasp
You need Node.js and the clasp CLI. Run clasp login once to authenticate with your Google account, then push the add-on source.
npm install -g @google/clasp
git clone https://github.com/zync-code/cld-ext.git
cd cld-ext/apps/addon
clasp login # opens browser OAuth once
clasp push # uploads all .gs and .html filesOpen your Google Sheet and install from Apps Script
In the Apps Script editor (Extensions → Apps Script) you'll see the pushed project. Deploy it as an Editor Add-on test deployment, then reload your Sheet.
Open the sidebar and paste your Anthropic API key
Extensions → cld-ext → Open sidebar. Go to Settings, paste your key from console.anthropic.com, and click Test connection. You're ready to chat.
Your data never leaves Google
There is no cld-ext server. The add-on calls the Anthropic API directly from within Apps Script, using your key stored in Google's own PropertiesService. Your spreadsheet data only goes to Anthropic — the same place it would go if you copied it into claude.ai yourself. Read the full Privacy Policy →