A simple, fast spreadsheet viewer written in Rust using GPUI.
Editing is not supported.
Note
As with most things in 2026, the code here was almost entirely written by AI - using both Codex + GPT-5.5 and Claude Code + Opus 4.7 1M.
Note
No PRs, they don't make sense on majority AI generated code like this. If you want a feature, please create an issue, if you really want to help, include the proposed prompt in the issue.
Why
I wanted a quick way to view spreadsheets locally, without the need to open a document in Google sheets.
Features:
- supports CSV, Parquet, and XLSX file formats
- loads 30M row Parquet files in 112ms
- supports copy and paste to Google sheets or excel
- displays formatting such as dates, currency, percentages, bold text, colors, and column/row dimensions
--display xmlmode from the CLI to make it easy for LLMs to "view" spreadsheets

Example of rendering xlsx file

Example of rendering large Parquet file
Install
Install the binary locally:
(If you're not on macOS, your mileage may vary, try make install-cli instead.)
On macOS, this also installs Spread.app to ~/Applications, registers it with Finder, and sets it as the default app for .xlsx, .csv, and .parquet when duti is installed. Without duti, use Finder's Get Info panel to choose Spread and click "Change All...".
macOS build requirements
gpui compiles Metal shaders at build time, so full Xcode (not just the Command Line Tools) is required. If the build fails with unable to find utility "metal" or missing Metal Toolchain, run:
- Install Xcode from the Mac App Store (free, ~10 GB).
- Launch it once and accept the license, then continue with the Metal Toolchain setup:
sudo xcodebuild -license accept sudo xcode-select -s /Applications/Xcode.app/Contents/Developer xcodebuild -downloadComponent MetalToolchain # required on recent macOS even with Xcode installed xcrun metal --version # verify the toolchain is reachable cargo clean && make install-macos
Usage
Then open a file with:
or:
or:
spread path/to/file.parquet
Useful CLI modes:
spread --list-sheets path/to/file.xlsx spread --sheet Summary path/to/file.xlsx spread --sheet 2 --display json path/to/file.xlsx spread --sheet 2 --display xml path/to/file.xlsx spread --sheet 2 --display table path/to/file.xlsx spread --display audit path/to/file.xlsx
--sheet accepts a sheet name or 1-based sheet index. --display can be gui, json, xml, table, or audit.