A spreadsheet that is one HTML file.
Open it in any browser and it's a working sheet with charts; hand it to an AI and it's plain data and formulas. On cello.sh, share it and edit it together, privately.
Want the files on your own computer? Download the cello tool.
The Okafor-Lindqvist household
Budget, July 1, 2026 for 3 months
As of September 20, 2026
Where the money went
| Rent | $6,300 | 67.4% |
|---|---|---|
| Groceries | $927 | 9.9% |
| Utilities | $297 | 3.2% |
| Transit | $507 | 5.4% |
| Kids | $701 | 7.5% |
| Eating out & fun | $617 | 6.6% |
Left to spend
| Groceries | $1,023 | |
|---|---|---|
| Utilities | $423 | |
| Kids | $199 | |
| Transit | $33.40 | |
| Rent | $0 | |
| Eating out & fun | -$76.80 |
Month by month
| Month | Rent | Groceries | Utilities | Transit | Kids | Eating out & fun |
|---|---|---|---|---|---|---|
| Jul 2026 | $2,100 | $354 | $96.40 | $311 | $240 | $165 |
| Aug 2026 | $2,100 | $396 | $113 | $98 | $286 | $310 |
| Sep 2026 | $2,100 | $177 | $88.10 | $98 | $175 | $142 |
To claim back
| Date | What | Category | Amount |
|---|---|---|---|
| 7/28/26 | Conference train | Transit | $212.60 |
| 9/11/26 | Team dinner (client) | Eating out & fun | $142.30 |
| Total | $354.90 | ||
<!-- the same file, read as text --> // named formulas, in plain JSON "total_remaining": { "title": "Remaining", "unit": "USD", "formula": "total_budget - total_spent" } // a calculated column, by column name, never A1 { "name": "spent", "unit": "USD", "formula": "SUM(FILTER(expenses.amount, expenses.category = id))" } // the data is CSV id,name,monthly rent,Rent,2100 groceries,Groceries,650 utilities,Utilities,240 transit,Transit,180 kids,Kids,300 fun,Eating out & fun,180 // a view asks for a chart by name; cello draws it <c-stat label="Remaining" value="total_remaining"></c-stat> <c-pie from="categories" label="name" value="spent" donut></c-pie>
A real cello file. Flip to Text to see what's inside it.
cello.sh keeps your sheets, and lets you share them.
Put your cello files on cello.sh and the people you choose can open them in a browser and work on them with you.
Your sheets are locked in your browser before they're sent, and only you and the people you share them with can unlock them. cello.sh stores them but can't open them, and nor could anyone who broke in.
- Share by email or by link
- Invite people by email to edit or to read, or make a link that opens one sheet, or just one view of it.
- Edit together, live
- Everyone's changes show up for everyone at once, and you can see who else is there.
- Every version kept
- See who changed what and when, name the versions that matter, and go back to any of them.
- Hand a sheet to an AI by link
- Give an AI assistant a link to one sheet. It reads and edits with the cello tools, and only that sheet, until you end it.
- Still your files
- Bring in Excel, CSV or cello files, and download any sheet as a cello file that opens anywhere.
Spreadsheets got stuck inside apps.
A budget, a forecast or an investor model lives in an app's format or a cloud account. It's hard to diff, hard to check, and an AI can only edit it by guessing at cells. Charts get faked, numbers get copied between files, and nobody can tell what changed.
The usual spreadsheet
- Needs a particular app or account to open
- Formulas point at cells:
=SUM(B2:B19) - Changes are invisible unless someone wrote them down
- An AI edits by guessing coordinates
- One file's numbers are pasted into the next
A cello file
- Opens in any browser, offline, from a double-click
- Formulas name things:
SUM(expenses.amount) - Every edit is logged, can be undone, and shows up in a diff
- An AI reads plain text and checks its work with one command
- Files link to each other and stay up to date
Plain text on top. A small viewer underneath.
A cello file is an ordinary web page. Its first lines are the part you own: a short description of the tables, the data as CSV, named formulas, and the views, each a template and a stylesheet.
Underneath sits the viewer that turns them into a working sheet, with charts, print layouts and controls for trying out numbers. It never reaches the network, and the page's security policy allows only that one script to run.
Because the data comes first and is line by line, version control shows exactly which numbers changed, and an AI can read a large file one piece at a time.
- Description of the tables and formulasJSON
- Each table's dataCSV
- Each view: a templateHTML
- Each view: a stylesheetCSS
- The viewer, pinned by its fingerprint~170 KB
Yours to editNever edited
Two files to try.
Both are complete cello files, running here as they would from your desktop. Change a number and everything that depends on it moves. Nothing you do is saved.
seat plan · demo of cello's built-in pieces
Seats, revenue and cash
Revenue, costs and cash
| Month | Revenue | Costs | Cash | Low | High |
|---|---|---|---|---|---|
| Jul 2026 | $22,800 | $33,000 | $1,489,800 | $1,173,000 | $1,814,500 |
| Aug 2026 | $24,852 | $33,000 | $1,481,652 | $1,146,450 | $1,834,760 |
| Sep 2026 | $27,089 | $33,000 | $1,475,741 | $1,120,373 | $1,861,517 |
| Oct 2026 | $29,527 | $47,000 | $1,458,267 | $1,087,291 | $1,869,603 |
| Nov 2026 | $32,184 | $47,000 | $1,443,451 | $1,054,731 | $1,885,957 |
| Dec 2026 | $35,081 | $47,000 | $1,431,532 | $1,022,717 | $1,911,635 |
| Jan 2027 | $38,238 | $61,000 | $1,408,770 | $983,778 | $1,921,833 |
| Feb 2027 | $41,679 | $61,000 | $1,389,449 | $945,442 | $1,943,895 |
| Mar 2027 | $45,430 | $61,000 | $1,373,880 | $907,739 | $1,979,342 |
| Apr 2027 | $49,519 | $75,000 | $1,348,399 | $863,201 | $2,003,885 |
| May 2027 | $53,976 | $75,000 | $1,327,375 | $819,361 | $2,045,459 |
| Jun 2027 | $58,834 | $75,000 | $1,311,208 | $776,254 | $2,106,241 |
| Jul 2027 | $64,129 | $89,000 | $1,286,337 | $726,417 | $2,162,692 |
| Aug 2027 | $69,900 | $89,000 | $1,267,238 | $677,388 | $2,243,585 |
| Sep 2027 | $76,191 | $89,000 | $1,254,429 | $629,207 | $2,352,048 |
| Oct 2027 | $83,049 | $103,000 | $1,234,477 | $574,417 | $2,465,610 |
| Nov 2027 | $90,523 | $103,000 | $1,222,000 | $520,563 | $2,614,252 |
| Dec 2027 | $98,670 | $103,000 | $1,217,671 | $467,691 | $2,802,464 |
| Jan 2028 | $107,550 | $117,000 | $1,208,221 | $408,351 | $3,009,312 |
| Feb 2028 | $117,230 | $117,000 | $1,208,451 | $350,094 | $3,266,508 |
| Mar 2028 | $127,781 | $117,000 | $1,219,231 | $292,973 | $3,580,497 |
| Apr 2028 | $139,281 | $131,000 | $1,227,512 | $229,547 | $3,932,548 |
| May 2028 | $151,816 | $131,000 | $1,248,328 | $167,374 | $4,356,862 |
| Jun 2028 | $165,480 | $131,000 | $1,282,808 | $106,518 | $4,862,689 |
| Jul 2028 | $180,373 | $145,000 | $1,318,180 | $39,544 | $5,434,461 |
| Aug 2028 | $196,606 | $145,000 | $1,369,787 | -$25,979 | $6,109,948 |
| Sep 2028 | $214,301 | $145,000 | $1,439,087 | -$89,978 | $6,902,425 |
| Oct 2028 | $233,588 | $159,000 | $1,513,675 | -$159,877 | $7,800,867 |
| Nov 2028 | $254,611 | $159,000 | $1,609,286 | -$228,096 | $8,848,166 |
| Dec 2028 | $277,526 | $159,000 | $1,727,812 | -$294,550 | $10,063,376 |
| Jan 2029 | $302,503 | $173,000 | $1,857,315 | -$366,653 | $11,441,988 |
| Feb 2029 | $329,728 | $173,000 | $2,014,043 | -$436,811 | $13,034,246 |
| Mar 2029 | $359,404 | $173,000 | $2,200,447 | -$504,926 | $14,867,498 |
| Apr 2029 | $391,750 | $187,000 | $2,405,197 | -$578,397 | $16,946,589 |
| May 2029 | $427,008 | $187,000 | $2,645,205 | -$649,617 | $19,332,317 |
| Jun 2029 | $465,438 | $187,000 | $2,923,644 | -$718,473 | $22,063,929 |
Assumptions
Revenue
| Input | In use | Range | Your value | Lock |
|---|---|---|---|---|
| Price per seat — List is $50; discounts bring the collected price down. | $38 | $30 to $45 | — | — |
| Seats at launch — Design partners who said they would pay at launch. | 600 seats | 300 to 1,000 | — | — |
| Monthly seat growth — Comparable tools grew 8-12% a month in year one. | 11% | 8% to 14% | — | — |
| Monthly churn — Card-paid tools at this price lose 2-4% a month. | 2% | 3% to 1.2% | — | — |
Costs
| Input | In use | Range | Your value | Lock |
|---|---|---|---|---|
| Loaded cost per hire — Salary, tax and benefits, per month. | $14,000 | $15,000 to $13,000 | — | — |
| Hires a quarter — Paced by cash: a hire must leave a year of runway. | 1 people | 0.5 to 2 | — | — |
| Software and running costs — Accounting, insurance, hosting and tools. | $5,000 | $6,000 to $4,500 | — | — |
Funding
| Input | In use | Range | Your value | Lock |
|---|---|---|---|---|
| Cash at the start — The round as it stands today. | $1,500,000 | $1,200,000 to $1,800,000 | — | — |
- Switch the caseLow, Base and High move every figure, and the chart glides to its new numbers.
- Drag an assumptionEach dot in the assumptions panel slides between the low and high values.
- Hover a monthThe chart shows that month's revenue, costs and cash in each case.
The Okafor-Lindqvist household
Budget, July 1, 2026 for 3 months
As of September 20, 2026
Where the money went
| Rent | $6,300 | 67.4% |
|---|---|---|
| Groceries | $927 | 9.9% |
| Utilities | $297 | 3.2% |
| Transit | $507 | 5.4% |
| Kids | $701 | 7.5% |
| Eating out & fun | $617 | 6.6% |
Left to spend
| Groceries | $1,023 | |
|---|---|---|
| Utilities | $423 | |
| Kids | $199 | |
| Transit | $33.40 | |
| Rent | $0 | |
| Eating out & fun | -$76.80 |
Month by month
| Month | Rent | Groceries | Utilities | Transit | Kids | Eating out & fun |
|---|---|---|---|---|---|---|
| Jul 2026 | $2,100 | $354 | $96.40 | $311 | $240 | $165 |
| Aug 2026 | $2,100 | $396 | $113 | $98 | $286 | $310 |
| Sep 2026 | $2,100 | $177 | $88.10 | $98 | $175 | $142 |
To claim back
| Date | What | Category | Amount |
|---|---|---|---|
| 7/28/26 | Conference train | Transit | $212.60 |
| 9/11/26 | Team dinner (client) | Eating out & fun | $142.30 |
| Total | $354.90 | ||
- A doughnut and a rankingSpending by category, and what's left to spend, drawn from the same table.
- Stacked monthsEach month's spending, split by category, from one grouped query.
- See the dataThe tabs along the bottom open the Categories and Expenses sheets the charts are drawn from.
What you get from a format, not an app.
- It opens anywhere
- Email it, put it on a drive, open it in ten years. A browser is all it needs, and it works with no connection.
- It reads as text
- CSV, JSON and templates, data first. Diffs are readable and merges are possible.
- It's safe to open
- No macros and no network. Formulas are never run as code, and the viewer is pinned by its fingerprint.
- Formulas say what they mean
monthly * monthsinstead of=C4*$B$1, so a reader, or an AI, can follow the math.- Charts and views are built in
- Bars, lines, areas, pies, doughnuts, summary boxes and print layouts, all drawn from the data.
- Made for working with AI
- One command shows a file's outline, explains any number down to its inputs, or tries a what-if without saving. Edits are checked, logged and undoable.
- Cases and assumptions
- Keep low, base and high values side by side, switch between them, and compare them on one chart.
- Files that link
- A budget can use a total from a salaries file without a single salary landing in it.
Download the cello tool
Prefer the files on your own computer? The cello command makes, checks and edits them, with no account. You need Node.js 20 or later.
Get the command
One file, from cello.sh. The last line gives an LLM app (here Claude Code) the cello tools, for files and for sheets on cello.sh.
curl -fsSLo ~/.cello.mjs https://cello.sh/_static/cello.mjs alias cello="node ~/.cello.mjs" # or put it on your path claude mcp add cello -- node ~/.cello.mjs mcpMake a file
Start from an example, or bring a CSV or Excel file.
cello new budget.cello --example budget cello import sales.xlsx -o sales.cello
Open it
Rename a copy to
.htmland open it in a browser, or open the editor for a spreadsheet-style window.cello edit budget.cello
Ask it questions
Read a large file a piece at a time, explain a number, or try a change without saving it.
cello outline budget.cello cello explain budget.cello total_remaining cello eval budget.cello total_budget --set months=6
Hand it to an AI
cello guideprints the one page an agent needs to edit files safely. Agents change files in one checked step and can undo each other's work.cello guide cello do budget.cello --as helper <<'EOF' set months = 6 add expenses date = 2026-10-01, category = rent, amount = 2200 EOF cello check budget.cello