Theo Sheets
A live, AI-powered spreadsheet canvas. Start from a blank grid, an uploaded Excel/CSV file, or a table Theo built in chat — then edit cell-by-cell like Excel while Theo handles the heavy lifting from the chat rail beside your sheet.
What it can do
Excel-grade grid with live formulas, number formats, merged cells, frozen panes, sorting, filters, conditional formatting, data validation, find & replace, hyperlinks, multiple sheet tabs, and full undo/redo — right in your browser.
Ask for anything in plain English — "add a totals row", "sort by revenue", "highlight overdue rows in red", "add a status dropdown" — and the changes land on the grid instantly.
Upload .xlsx, .xls, .csv, or .tsv files — formulas, formatting, borders, dates, hyperlinks, filters, and validations come along. Export the workbook back to Excel or the active sheet to CSV anytime.
Point Theo at your rows and it searches the public web for each one — websites, cities, contacts — and writes what it finds into new columns.
Creating a sheet
From the dashboard: click + New → Sheet, then pick a blank grid or upload a spreadsheet file (you can also drop a file anywhere on the page).
From Theo Chat:ask for a working spreadsheet (“build me a wedding budget tracker”) and Theo creates a live sheet project you can open from the chat card. Uploaded spreadsheets in chat also get an Open in Theo Sheets button on their table card.
Sheets live in your Library like every other project — star them, move them into folders, and reopen them anytime at their own editor.
Editing with Theo
Theo lives in a floating glass panel over your sheet — drag it anywhere by its header, resize it from the edges, collapse it to an Ask Theo pill, or close it and bring it back from the header button. It remembers where you left it.
The panel sees your live sheet on every message. Ask questions (“what's the average deal size?”) and Theo answers from the data; ask for changes and they apply straight to the grid with a change list under the reply — press Undo (⌘Z) to revert anything.
When a request implies a calculation, Theo writes connected formulas that reference your real cells, not hardcoded numbers — so the sheet keeps recalculating as you edit.
Formatting, too:Theo can do anything the toolbar can — background and font colors, bold/italic/underline, font size and family, alignment, wrapping, borders, merging cells, and row heights. Just ask (“make the header row bold with a navy background and white text”).
Data tools, too:ask Theo to sort a range, filter a table, apply conditional formatting (“highlight amounts over $500 in green”, “flag duplicates”), add dropdown lists, checkboxes, and other data validation, freeze header rows, hide or show rows and columns, auto-fit column widths, and add or remove hyperlinks. On sheets with the advanced grid enabled, Theo can also insert charts and build pivot tables — and on the standard grid it offers a formula-driven summary table instead.
“These cells”: highlight a range on the grid and refer to it naturally — “turn these red”, “center the selected cells”, “bold this” — and Theo applies the change to exactly what you highlighted.
Speak instead of typing: tap the sound-wave button (the same one as Theo Chat), talk, and hit stop — your words land in the composer ready to send.
Attach files: use the +button (or paste an image) to add up to 5 files — spreadsheets, images, PDFs, or text — and Theo reads their actual contents to update your sheet: merge a CSV's rows in, add expenses from a receipt photo, or pull figures from a PDF.
Find & Enrich
Switch the rail to the Find & Enrich tab and fill in four short prompts — what to find, which columns identify each row, which new columns to fill, and (optionally) a website/URL column Theo can scrape directly instead of searching. Theo pre-picks the strongest identifiers from your headers (email > URL > name + company) so a typical setup takes seconds.
Readiness check:before spending credits, Theo double-checks whether your identifiers are strong enough to actually find what you're asking for. A sheet with only a first name and a goal of “find their LinkedIn profile” is going to return junk — Theo will block the run, name the missing signals (“Add: Email”, “Add: Company”), and suggest existing columns to flip on as identifiers. When the setup looks solid, Theo previews the exact search query it will use for the first row so you know what you're getting.
Row scope:enrich every row (up to 50 per run) or just the range you've highlighted on the grid. Rows whose target columns are already filled are skipped automatically — re-running is idempotent, so a batch that got cut off can be resumed by hitting the button again.
Every run is honest about confidence: each filled cell carries a source URL when Theo could confirm the answer, and rows Theo couldn't verify come back blank instead of guessed. Press ⌘Z to undo the entire batch in one step.
Share & collaborate
Click Share in the header to invite people by email or handle (viewer or editor) or create a public link — exactly like flowcharts and notes. Invitees open the sheet at its own editor; link visitors without an account get a read-only view.
See who's here:collaborator avatars appear in the header while they're viewing, and each person's live selection shows on the grid as a colored outline with their name — so you always know where everyone is working.
Changes flow automatically: when a collaborator saves, your sheet updates in place (keeping your spot). If you have unsaved edits of your own, nothing is ever discarded — a banner lets you choose Load latest or keep working and save over it.
Version history
The History button opens a timeline of every version — who changed what, when, and which cells were touched. Edits are captured automatically as you work, every Theo change is recorded with its exact ranges, and you can pin a moment yourself with Save version.
Preview any version to view it read-only right in the editor, then Restoreto bring it back. The state you're replacing is saved to history first, so restoring is always reversible.
Seeing changes as they happen
When Theo edits your sheet, the exact cells it touched light up with a soft teal glow that gently fades away — so you can see precisely which rows, columns, and ranges changed without hunting for them. Collaborators watching the same sheet see the same highlights when the changes arrive.
Changes on other tabs:if an edit lands on a sheet tab you're not viewing, a small chip appears — “3 changes on ‘Q2’ →” — and clicking it jumps to that tab and flashes the changed cells there.
Drive it from an AI agent (MCP)
Any MCP-capable agent — Claude Code, Codex, Cursor, or Theo itself — can drive your sheets headlessly with an OpenCharts API key. Connect the MCP server once (see the MCP Server guide), and the agent can create a sheet, inspect the workbook, read exact ranges, and edit cells & formulas — all without a browser.
Git-style safety: every change an agent makes is recorded as a commit. Open the Changes button in the sheet header to review the history with a cell-by-cell diff, roll any change back, or — for changes an agent proposes rather than applies — merge or reject them yourself.
Live updates: when an agent edits a sheet you have open, the change appears in place automatically — and never overwrites your own unsaved edits (you get the same load-latest / save-anyway choice as with a human collaborator).
Exporting
The Export menu in the header downloads the full workbook as .xlsx (values, formulas, number formats, styles, borders, merges, column widths, row heights, hyperlinks, filters, and data validations included) or the active sheet as .csv. Files open in Excel and Google Sheets, and formulas recalculate on open.
Honest about the edges:a few things don't survive the trip between formats — conditional-formatting rules from an uploaded Excel file (just ask Theo to re-apply them), and charts or pivot tables in an exported .xlsx. Whenever something is skipped, a notice tells you exactly what.