See It In Action
FIG. 1 - SHEETY.EXE IN ITS NATURAL HABITAT
What "People" Are Saying
What Even Is This?
Sheety compiles spreadsheet definitions (YAML or Excel) into standalone, interactive TUI binaries. Each spreadsheet becomes its own executable with a terminal UI. Yes, really. We asked ourselves "what if spreadsheets were compiled binaries?" and then we just kept going.
No runtime dependencies. No JVM. No Python. Just a single binary that runs your spreadsheet with formula support, cell editing, and in-process rebuilding.
Features
[*] Hash-Based Caching
Smart content-based caching makes re-running unchanged spreadsheets ~400x faster. First run: ~3 seconds. Subsequent runs: ~0.007 seconds (instant).
[#] Format Support
Works with YAML (version control friendly) and Excel (.xlsx) files. Convert between any format with full roundtrip support.
[%] Terminal UI
Interactive TUI with 1000x1000 grid, mouse support, formula editing, and live recalculation. Navigate, edit, save—all in your terminal.
[@] Self-Rebuilding
Edit a formula in the TUI and it recompiles itself from within the binary. The binary rebuilds the binary. It's binaries all the way down.
[&] State Persistence
UUID-based state management that survives rebuilds. Remembers cursor position and saves all changes back to your source file.
[+] Excel Formulas
Comprehensive formula support: SUM, AVERAGE, IF, VLOOKUP, CONCAT, text functions, date functions, and more. 50+ functions implemented.
How To Use
Option 1: Download Static Binary (Recommended)
Download a pre-built static binary - no dependencies required:
Also available for ARM64 (Raspberry Pi, AWS Graviton, etc.)
Option 2: Build from Source
Convert Between Formats
Spreadsheet Format
Define your spreadsheet in YAML:
Sheet1: A1: value: 100 A2: value: 200 A3: formula: "=SUM(A1:A2)" B1: value: "Hello" B2: formula: "=CONCAT(B1, \" World\")" Sheet2: A1: formula: "=Sheet1!A3*2"
Why Would You Use This?
- Distribution: Send a single binary instead of a fragile Excel file with broken references
- Version Control: YAML format plays nice with git. No more binary diff hell
- Performance: Hash-based caching makes opening spreadsheets instant
- Portability: One binary, no dependencies, runs anywhere
- Curiosity: You want to see how spreadsheets work under the hood
- Because: Why not compile YAML to binaries? Who's going to stop you?
Formula Support
Math: SUM, AVERAGE, MIN, MAX, COUNT, COUNTA, MEDIAN, STDEV, VAR, ROUND, POWER, SQRT, MOD, ABS
Text: CONCAT, LEFT, RIGHT, MID, LEN, UPPER, LOWER, TRIM, FIND, SEARCH, SUBSTITUTE
Logical: IF, AND, OR, NOT, IFS, SWITCH
Lookup: VLOOKUP, HLOOKUP, INDEX
Date: TODAY, NOW, YEAR, MONTH, DAY, DATEDIF, EOMONTH
Conditional: COUNTIF, SUMIF
Status
[OK] Features: Formula parsing * YAML/Excel support * TUI * Interactive editing * State persistence * In-process rebuilding * Hash caching
[!!] Experimental: This is "I had a weird idea and ran with it" software. Use it for learning, for fun, or because you too want compiled spreadsheet binaries.
Actually, if you DO run your nuclear power plant's financial models on compiled spreadsheet binaries, please tell us. That would be an amazing story.
Contributing
Found a bug? Have a feature idea? PRs welcome! Just remember: we're compiling YAML to binaries here. Let's keep it weird.