Repository navigation
JSheets 0.3.0
Pre-release
Pre-release
JSheets is a desktop spreadsheet for people who know Excel well, with DuckDB as its calculation engine and a built-in MCP server so AI agents can build and check workbooks. This pre-release is for Linux x86-64, and it also runs on WSL Ubuntu.
This release comes from running agents on SpreadsheetBench 2's finance tasks (financial models, debugging and templates) and fixing everything that went wrong because of JSheets.
Install
curl -LO https://github.com/matsonj/jsheets-releases/releases/download/v0.3.0/jsheets-0.3.0-linux-x86_64.tar.gz
curl -LO https://github.com/matsonj/jsheets-releases/releases/download/v0.3.0/jsheets-0.3.0-linux-x86_64.tar.gz.sha256
sha256sum -c jsheets-0.3.0-linux-x86_64.tar.gz.sha256
tar -xzf jsheets-0.3.0-linux-x86_64.tar.gz
./jsheets-0.3.0-linux-x86_64/jsheets-desktop [file.jsheets | file.xlsx] [--mcp [port]]It needs glibc 2.35 or later and a desktop with OpenGL.
New
- Evaluate Formula (Formulas menu) steps through a formula the way Excel's does, with a plan that doesn't change length as you step, and drills into the formulas of the cells it reads, with a path back.
- What-if data tables (
{=TABLE(...)}) calculate, and save back to XLSX as data tables. Like Excel's "Automatic except for data tables", they calculate when a workbook opens and with F9, and keep their values through edits. - Agents can explain a value. The MCP tool
evaluate_formulareturns the complete calculation trace for a cell, through the cells it reads. - Circular references iterate as Excel does when the workbook turns iteration on.
- The MCP server is easier to connect to: it listens on loopback without a token, on a stable default port.
Faster
- Workbooks with thousands of INDIRECT formulas open. A model with 18,900 one-cell
INDIRECTformulas and 510 defined names opens in about 80 seconds; it never finished before. - Large horizontal models recalculate much faster. A 134,000-formula monthly model recalculates in about 2 minutes instead of 12, and one edit takes about a second instead of 18 minutes.
- Editing stays responsive in workbooks that use OFFSET: an edit recalculates only what it reaches.
- The MCP server answers while a workbook recalculates, instead of waiting for it.
Fixed
- Formulas that showed
#UNSUPPORTEDnow calculate:OFFSETsized by a header cell across a wide row;SUM,MIN,MAX,AVERAGEandPRODUCTof several separate cells;- formulas that read their own column below themselves;
- INDIRECT and OFFSET whose targets were too large.
- Legacy array formulas (entered with Ctrl+Shift+Enter) over a range calculate across the whole range, and save back as one array formula; before, only the first cell recalculated.
SUMIF,SUMIFS,AVERAGEIFandAVERAGEIFSwith a range of criteria return one result per criterion, asCOUNTIFalready did.XLOOKUPfinds the next smaller or larger item (match mode -1 or 1) and searches last to first (search mode -1).- Formula spacing is kept on every cell of a filled formula, not just the first.
- Newer functions saved without their
_xlfn.prefix show#NAME?, as in Excel, and keep their spelling when saved. - Workbooks with unusual sheet names open.
- Undoing a transaction restores every calculation setting, including iteration.
- Smaller fixes: Paste Special opens with its first choice highlighted; Enter in a menu runs only the highlighted command; Find no longer jumps after a refused replace; closing waits for an agent's task to finish; the unsaved marker always matches the workbook.
Known gaps
- 3D references such as
SUM(Sheet1:Sheet3!A1)aren't supported. - Data tables recalculate the whole model once per cell, so a workbook with several opens more slowly: about 30 seconds for an LBO with four 5×5 tables.
- A legacy array formula entered in a single cell whose result is an array is shown as
INDEX(formula,1,1). The value matches Excel's; only the text differs. - Results can differ from Excel in the last of 15 significant digits.
Check results that matter against Excel until these are fixed.