cello

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.

budget.cello
Read the file as

The Okafor-Lindqvist household

Budget, July 1, 2026 for 3 months

As of September 20, 2026

Budget$10,9503 months from Jul 1, 2026
Spent$9,34885% of the budget
Remaining$1,602as of Sep 20, 2026
Categories over budget1of 6

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%)
$9.35K
Rent$6,30067.4%
Groceries$9279.9%
Utilities$2973.2%
Transit$5075.4%
Kids$7017.5%
Eating out & fun$6176.6%

Left to spend

Groceries$1,023
Utilities$423
Kids$199
Transit$33.40
Rent$0
Eating out & fun-$76.80

Month by month

$0$1K$2K$3K$4KJul 26AugSep
RentGroceriesUtilitiesTransitKidsEating out & fun
MonthRentGroceriesUtilitiesTransitKidsEating 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

DateWhatCategoryAmount
7/28/26Conference trainTransit$212.60
9/11/26Team 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.

We can't read your sheets.

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.

  1. Description of the tables and formulasJSON
  2. Each table's dataCSV
  3. Each view: a templateHTML
  4. Each view: a stylesheetCSS
  5. 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.

Example files

seat plan · demo of cello's built-in pieces

Seats, revenue and cash

Scenariobase
Pick a case to see every number move.
Cash at the end$2,923,644after 36 months
Lowest cash$1,208,221the tightest month
Yearly revenue at the end$5,585,262monthly revenue × 12
Team at the end13people, founders included

Revenue, costs and cash

$0$0$150K$1.5M$300K$3M$450K$4.5M$600K$6MHigh $22.1M ↑Cash $2.92MLow -$718K ↓202720282029
Left scaleRevenueCosts
Right scaleCashLowHigh
MonthRevenueCostsCashLowHigh
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

Revenue4 inputs
InputIn useRangeYour valueLock
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%
——
Costs3 inputs
InputIn useRangeYour valueLock
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
——
Funding1 input
InputIn useRangeYour valueLock
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

Budget$10,9503 months from Jul 1, 2026
Spent$9,34885% of the budget
Remaining$1,602as of Sep 20, 2026
Categories over budget1of 6

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%)
$9.35K
Rent$6,30067.4%
Groceries$9279.9%
Utilities$2973.2%
Transit$5075.4%
Kids$7017.5%
Eating out & fun$6176.6%

Left to spend

Groceries$1,023
Utilities$423
Kids$199
Transit$33.40
Rent$0
Eating out & fun-$76.80

Month by month

$0$1K$2K$3K$4KJul 26AugSep
RentGroceriesUtilitiesTransitKidsEating out & fun
MonthRentGroceriesUtilitiesTransitKidsEating 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

DateWhatCategoryAmount
7/28/26Conference trainTransit$212.60
9/11/26Team 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 * months instead 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.

  1. 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 mcp
  2. Make 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
  3. Open it

    Rename a copy to .html and open it in a browser, or open the editor for a spreadsheet-style window.

    cello edit budget.cello
  4. 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
  5. Hand it to an AI

    cello guide prints 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