Repository avatar
Search & Data Extraction
v1.0.2
active

sheetxl

io.github.sheetxl/sheetxl

Excel-grade spreadsheet engine for agents: read, query, build and check .xlsx and .csv files.

Documentation

SheetXL SheetXL

SheetXL β€” the agent-first spreadsheet engine

The Excel-compatible spreadsheet engine your agents, your apps and your servers can run.

β–Ά Live demo Β· πŸ“˜ Docs Β· ⚑ Benchmarks Β· πŸ”Œ API reference Β· πŸ’² Pricing Β· πŸ’¬ Discord

Discord npm (cli) npm (studio-mui) npm downloads

Table of contents

β–Ά Try the live demo β€” the full spreadsheet in your browser, no signup

Agents can reach every system except your spreadsheets. They read the file with Python, guess at what Excel would have calculated, and hope. SheetXL gives them the real thing: a calculation engine with 545+ Excel functions that an agent can query, change, recalculate and verify, with an audit log and undo, on your machine. The same engine is a React component for your app and a headless library for Node.

# No install. Ask a workbook a question from the terminal.
npx sheetxl -e "wb.getRange('Pricing!B14').getValue()" model.xlsx

Or paste this into Claude Code, Codex, Cursor or any agent that can run a shell:

I'd like to upgrade your spreadsheet skills with SheetXL:
npx -y skills add sheetxl/skills -g --all

Then give me a quick intro to the new things you can do.

An agent highlighting a range in a workbook open in VS Code

The agent highlights the cells it means and asks you in the grid, not in a sidebar.

See it running

Each picture opens that workbook in the live demo. Nothing to install, and every cell is editable.

A sales dashboard with KPI tiles, a heatmap table and charts
Sales dashboard. 600 orders behind KPI tiles, tables, a heatmap, charts, a pivot table, dynamic arrays and conditional formats.
The Mandelbrot set drawn in spreadsheet cells
Mandelbrot. One formula spills 8,192 cells and a color scale paints them. Change the zoom and it redraws.
SheetXL Studio, a blank workbook with the template gallery open
Start from scratch. The whole app, a blank workbook and the template gallery. Paste from Excel, drop in an xlsx, or type a formula.
Storybook
Storybook. Every component on its own, with the props to try. The quickest way to see what you would build with.

The workbooks are templates from the demo's New Workbook gallery; they live in sheetxl/templates-workbook. More in the demo gallery.

Just the facts

97%

on SpreadsheetBench
Verified-400. Agents reading the file with Python score 14–29%.

7Γ— fewer

output tokens per task
The engine does the arithmetic, so the model does not.

< 0.4 s

for a million formulas
Filled and calculated. Saved in about a second, in 160 MB.

545+

Excel functions
Dynamic arrays, LAMBDA, financials, statistics, text and dates.

120,000+

test fixtures
Each one checked against what Excel actually returns.

475+

shortcut keys and gestures
As in Excel, so your fingers already know them.

Got questions about a number? Ask us on Discord.

SpreadsheetBench: our submission, October 2026; baseline figures are from the public leaderboard (V1 Verified). Tokens: measured per task over the same 400 tasks; the agent-alone figure is derived, and the method is on sheetxl.com/agent. The harness that scored the benchmark is the one you install, not a private build. Engine timings and method are in the performance benchmarks.

One engine, three ways in

1. For agents β€” a plugin

Claude Code, Codex, Cursor or VS Code gets a spreadsheet it can calculate, check and fix. It is a spreadsheet plugged into your agent, so the agent that already has your code and your data gets the workbook as one more thing it can run.

  • Your AI. Bring the subscription you already have; SheetXL never marks up tokens.
  • Your machine. Your workbooks never leave it. No upload, no SaaS in the loop.
  • Verified, not hoped. Every write is recalculated by a real engine and read back.
  • Reversible. Sandbox sessions, a commit per change, undo, and an action log of what the agent did and why.
# Claude Code β€” the skill and the MCP server, at one version
claude plugin marketplace add sheetxl/skills
claude plugin install sheetxl@sheetxl

# Codex
codex plugin marketplace add sheetxl/skills
codex plugin add sheetxl@sheetxl

# VS Code β€” the grid, the engine and the MCP server. No Node, no terminal.
code --install-extension sheetxl.sheetxl-vscode --pre-release

# Any MCP client
npx -y @sheetxl/mcp

What is in the box:

  • The skill β€” teaches the agent to query a workbook like a database and run TypeScript inside the engine. MIT.
  • The MCP server β€” sessions, commits, undo and an audit log. Finds the workbooks you have open.
  • The CLI β€” the same engine from a shell. What the agent runs when there is no server.
  • The VS Code extension β€” a grid beside the agent, so a person stays in the loop.

Agent quickstart β†’

2. For apps β€” a React component

An Excel-compatible spreadsheet inside your product. Not "Excel-like": every shortcut key and drag gesture, dynamic arrays, formatted copy/paste, charts and pivots. Real DOM, not a canvas, so every cell is an element you can style with CSS, inspect in devtools and test like any other web UI.

# A new project, pre-configured
npm create sheetxl
Or add it to an existing React app...

React 19 and MUI 9 are peers.

npm install @sheetxl/studio-mui @mui/material @mui/styled-engine @mui/system @mui/utils @emotion/react @emotion/styled react react-dom
import { Studio } from '@sheetxl/studio-mui';

export default function App() {
  // Studio fills its parent container.
  return (
    <div style={{ height: '600px', width: '100%' }}>
      <Studio />
    </div>
  );
}

Not using React? @sheetxl/studio-vanilla is the same app, prebundled behind a plain JavaScript API. React guide β†’

3. For servers β€” a headless library and CLI

Pricing models, reports and reconciliations, run by your services, your schedules and your agents. No screen, no Excel install, no LibreOffice, no network call in the loop. Node 22+.

npm install @sheetxl/sdk @sheetxl/io
import { Workbook, WorkbookIO } from '@sheetxl/sdk';
import { IOPlugin } from '@sheetxl/io';

// Register the file format handlers (xlsx, csv, …) once at startup
await WorkbookIO.install(IOPlugin);

const workbook = await WorkbookIO.read('pricing-model.xlsx');
workbook.getRange('Inputs!B2').setValues([[1250]]);
const quote = workbook.getRange('Quote!B10').getValues();
await WorkbookIO.write(workbook, 'quote.xlsx');

The CLI is the same engine with no install. If you know duckdb, sqlite3 or psql, you already know its shape; where they take SQL, SheetXL takes TypeScript.

npx sheetxl book.xlsx                                   # interactive session, workbook loaded as `wb`
npx sheetxl -e "wb.getRange('A1:D9')" book.xlsx         # evaluate, print, exit
npx sheetxl -f transform.ts book.xlsx --out result.csv  # run a script, write the result
npx sheetxl book.xlsx --out book.csv                    # convert; no code needed

CLI Demo

Node guide β†’ Β· CLI guide β†’

Compared

A component for your app, a library for your server, a plugin for the agent you already run. Most spreadsheet vendors cover one layer.

In your app
A spreadsheet UI you embed
On your server
A calculation library for Node
With your agent
A plugin for the agent you already run
SheetXLβœ“βœ“βœ“
Univerβœ“βœ“βœ“
GRIDβœ“βœ“βœ“
SpreadJSβœ“β€”β€”
SheetJS Proβ€”βœ“β€”
HyperFormulaβ€”βœ“β€”
Coherent Sparkβ€”Their serverβ€”
Handsontableβ€”β€”β€”
AG Gridβ€”β€”β€”
Shortcutβ€”β€”Their agent
Tracelightβ€”β€”Their agent

Checked November 2026 against each vendor's public product and pricing pages. A check means a supported product for that layer that runs where you run. "Their server" and "Their agent" mean the vendor does it inside their own product: on their servers, or with their AI, not yours. The longer comparison β†’

The engine

  • Fast. Columnar storage and vectorized calculation. Fills and calculates a million formulas in under 0.4 s. See the benchmarks.
  • Big. 17B+ cells per workbook (defaults to Excel's limits; configurable). Rendering is virtualized, so a million rows scroll at 60 fps.
  • Excel-compatible, verified. 545+ functions checked against Excel with 120,000+ test fixtures. Dates, percents and errors are typed values, so what you read is what you can write back.
  • Deterministic. Same inputs, same outputs, every run. Runs unchanged in Node.js, Bun and the browser.
  • Scriptable. A range-based TypeScript API, live scripting with no build step, and custom functions in a few lines.
  • Files in and out. xlsx, csv, json and sxl (SheetXL's own format); parquet in progress. Formulas, names, formats, charts and pivots survive the xlsx round trip.

Live Scripting Demo

The full list of spreadsheet features...
  • Dynamic arrays
  • 475+ shortcut keys and gestures, as in Excel
  • Formatted Copy/Paste (Compatible with Microsoft Excel and Google Sheets)
  • Live Scripting (Office Scripts-style, with user-defined functions)
  • Tables (Filtering, Formatting)
  • Charting
  • Pivot
  • Sparklines
  • Slicers
  • Data Validation
  • Conditional formatting
  • Cell Styles (Themes and Formatting), Preset Cell Style Selector
  • Office Theme (Color Picker, Theme Selector)
  • Borders, Overflow, Word-wrap
  • Merged Cells
  • Multi-range selection
  • Hidden, Frozen, Resizable and Auto-fit Rows/Columns
  • Autofill
  • Undo/Redo
  • Find/Replace
  • Sort
  • Zoom
  • Hyperlinks
  • Drawings and Shapes
  • Internationalization
  • Mobile Friendly (Touch / Small screen accommodation)

License and pricing

The applications, the CLI, the agent skills, the built-in formulas and the utilities are MIT, with source in this repository and in sheetxl/skills. The core engine, the xlsx reader/writer, the MCP server and the React toolkits are commercially licensed. Every package and its license is listed below.

  • SheetXL for Agents (skills, MCP server, CLI, VS Code extension) has a free tier and a paid tier, and the paid tier is free during launch. It works with your own AI subscription. Your workbooks never leave your machine; the Free and Pro tiers send usage stats to SheetXL, and Business turns that off.
  • SheetXL for Apps and SheetXL for Servers are free to evaluate, watermarked outside localhost, and licensed per app for production.
  • Files are never hostage. Workbooks always open, edit and save, on every tier, forever.

See Pricing, LICENSE.md and Licensing for terms.

Every package and its license...

SheetXL Module Architecture

Items marked with πŸ’Ž are commercially licensed.

CategoryModuleDescriptionLicense
Core@sheetxl/sdk πŸ’ŽHeadless spreadsheet APICommercial
@sheetxl/formulasBuilt-in formulasMIT
@sheetxl/formulas-extended πŸ’ŽExtended (enterprise) formulasCommercial
@sheetxl/primitivesLow level types (Scalar, IRange)MIT
@sheetxl/scripting πŸ’ŽScripting engine and compilerCommercial
@sheetxl/query πŸ’ŽWorkbook read surface and renderers (grep, reports)Commercial
IO@sheetxl/ioImport/export (xlsx, csv, json, sxl)MIT
@sheetxl/io-xlsx πŸ’ŽExcel (xlsx) reader/writerCommercial
Agents@sheetxl/skillsAgent skills (markdown; ships no code)MIT
@sheetxl/mcp πŸ’ŽMCP server: sessions, commits, undo, audit logCommercial
sheetxl-vscode πŸ’ŽVS Code extension: the grid beside your agentCommercial
ToolssheetxlCommand line tool (npx sheetxl)MIT
@sheetxl/runnerProgrammatic execution of SheetXL scriptsMIT
Applications@sheetxl/studio-vanillaFramework-agnostic spreadsheet appMIT
@sheetxl/studio-muiSpreadsheet app powered by React/MUIMIT
UI Toolkits@sheetxl/react πŸ’ŽSpreadsheet React UI components and hooksCommercial
@sheetxl/grid-react πŸ’ŽLightweight, standalone React data gridCommercial
@sheetxl/scripting-react πŸ’ŽMonaco-based script editor and scripting UICommercial
@sheetxl/scripting-muiMUI script workspace, toolbar, and run-script pluginMIT
Utils@sheetxl/utilsHeadless utilities (math, ranges, etc)MIT
@sheetxl/utils-nodeNode-only utilities (terminal, environment)MIT
@sheetxl/utils-reactReact UI helpersMIT
@sheetxl/utils-muiMUI UI helpers (color picker, dialogs, etc)MIT

Why SheetXL?

For 40 years Excel has been users' favorite software, and it has kept developers in a separate silo. Users build the model in a spreadsheet. Developers get an export, a request to "put it in the app", and a rewrite of the logic in code that starts drifting from the original the day it ships.

As an Excel user and a React developer, I always wanted my applications to have spreadsheet features: the flexibility of Excel with the control of my own code. Importing and exporting data is a broken part of nearly every business workflow. Instead of importing and exporting the data, just import the spreadsheet.

Agents are now hitting the wall developers hit: they can read the file, but they can't run it. So SheetXL is a library first, something you can install, script, test and run in CI, with the grid and the agent tools built on the same API.

β€” Michael Ford, founder

SheetXL's mission is to make the spreadsheet part of your stack, not the shadow IT running beside it.

Read the full story: Why SheetXL Exists Β· How we compare

Roadmap

Full Excel parity is expected early/mid 2027.

  • Ribbon/Multi-chord shortcuts (in progress)
  • RichText (in progress)
  • Printing and PDF Export (in progress)
  • Multithreaded calculation
  • Accessibility (WCAG 2.1, in progress)
  • Parquet (in progress)
  • Collaboration
  • VBA Macro Execution
  • Google Sheets Interop

Credits

  • Fast Formula Parser (Early grammar inspiration)
  • Formula.js (Test cases for several financial functions)
  • Chevrotain (Formula parser toolkit)
  • NumFmt by Borgar Þorsteinsson (Number format engine, vendored with patches)
  • SheetJS (Compound file (CFB) container reader, adapted from XLSX.CFB.read)
  • Papa Parse (For CSV parsing)

Learn more

  • πŸ’¬ Discord - Get help and connect with the team.
  • πŸ—£οΈ GitHub Discussions - Questions, ideas, and show-and-tell.
  • πŸ“˜ Developer Docs - Guides and tutorials.
  • πŸ”Œ API Reference - Detailed documentation for all packages.
  • πŸ‘€ Live Demo Gallery - A showcase of interactive examples.
  • πŸ–ΌοΈ Storybook - Explore and test individual UI components.
  • 🌐 Website - Agents, Apps, Servers and pricing.
  • ❓ FAQ - Frequently asked questions.
  • 🀝 Contributing - How to get involved.
  • πŸ”’ Security Policy - Reporting vulnerabilities.
  • πŸ“¦ Changelog - Release notes and changelog.
NPM
@sheetxl/mcp
Install Command
npm install @sheetxl/mcp