Skip to content

JSheets 0.2.2

Pre-release
Pre-release

Choose a tag to compare

@matsonj matsonj released this 05 Nov 00:41

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 is the first public release. It is a pre-release for Linux x86-64 only, and it also runs on WSL Ubuntu.

Claude Opus 5.5, using only the JSheets MCP tools, solved 355 of the 400 SpreadsheetBench Verified tasks (88.8%) on a build from just before this release. This release fixes the JSheets bugs that run found.

Install

curl -LO https://github.com/matsonj/jsheets-releases/releases/download/v0.2.2/jsheets-0.2.2-linux-x86_64.tar.gz
curl -LO https://github.com/matsonj/jsheets-releases/releases/download/v0.2.2/jsheets-0.2.2-linux-x86_64.tar.gz.sha256
sha256sum -c jsheets-0.2.2-linux-x86_64.tar.gz.sha256
tar -xzf jsheets-0.2.2-linux-x86_64.tar.gz
./jsheets-0.2.2-linux-x86_64/jsheets-desktop [file.jsheets | file.xlsx] [--mcp [port]]

It needs glibc 2.35 or later and a desktop with OpenGL.

New since 0.2.0

  • Ranges between reference expressions: A1:INDEX(A:A,n), INDEX(r,i):INDEX(r,j) and A2:OFFSET(A2,2,0) now calculate. This was the most common formula JSheets couldn't read in the benchmark.
  • Excel tables: structured references such as Sales[Amount] calculate, tables import and export, and they survive inserted and deleted rows and columns.
  • External workbook links calculate from the values the file saved for the linked workbook, and export unchanged. An agent can ask to update them from the linked file.
  • Dates typed as text such as 3/4/2026 are read as dates, in the workbook's day and month order. That order comes from the system locale for new workbooks and is inferred on import; agents can change it through MCP, and the change can be undone.
  • More formulas match Excel: lookups with computed INDEX arguments, MATCH over arrays, SUMIF and COUNTIF over arrays, and empty last arguments. Of the 157 benchmark workbooks with formulas, 145 now match the values Excel saved, up from 110.

Fixed

  • Deleting columns in a transaction that had already changed cells failed with "another transaction has altered this table". Deleting many columns of a wide sheet no longer uses gigabytes of memory per column.
  • Export after deleting rows could run for over 10 minutes when a whole column was formatted. It now takes about a second.

Known gaps

  • A long run of single-column deletes in one transaction on a very wide sheet (hundreds of deletes of 1,600 columns) fails with an out-of-memory error. Delete the columns as one range instead.
  • Some dynamic-array chains of LET, FILTER, UNIQUE, VSTACK and similar functions are rejected, and one such chain filled down a column gave blanks instead of counts. Check these results against Excel.
  • 3D references such as Sheet1:Sheet3!B2 aren't supported yet.
  • Last-digit differences: Excel sometimes rounds a product to 15 significant digits where JSheets keeps the exact IEEE result, so =5.35*1.5 gives 8.024999999999999 instead of 8.025.

Check results that matter against Excel until these are fixed.