What Markdown is to text, Omasheet is to numbers.
📄 String as the source of truth
The spreadsheet becomes a readable, diffable and composable document, not just a binary XLSX Workbook.
📊 Columns as the computational model
Named, typed data and array expressions connect spreadsheet authoring to dataframe-style transformations.
🔢 Exact decimal arithmetic as a semantic guarantee
Numeric values retain their exact decimal meaning instead of floating-point
approximations: 0.1 + 0.2 is exactly 0.3. Numbers are held the way Polars
holds them — a 64-bit Int and a 38-digit Decimal — so a value too wide to
hold is reported rather than quietly rounded. The last 8 of those 38 digits
are working room: held but neither compared nor shown, so that two ways of
reaching one number agree — 1/3 * 3 is 1 and 2/7 + 3/7 == 5/7 is true.
A Fraction column shows what it holds as a fraction, 1/7 and 2 3/4.
Automatically follows system dark/light mode.
const TaxRate = 20%
sheet Sales
| Month | Revenue | Cost | Profit | Tax | Running |
| ----- | ------- | ---- | ------ | --- | ------- |
| Jan | 10000 | 6000 | * | * | * |
| Feb | 12000 | 7000 | * | * | * |
| Mar | 15000 | 8000 | * | * | * |
Profit := Revenue - Cost
Tax := Profit * TaxRate
Running := [Revenue; 0..*].sum()
From OmaStore — Omasheet is listed under Office in
OmaStore, the community app
store for Omarchy. Search for it there and click install.
With pacman:
curl -fsSL https://raw.githubusercontent.com/librasteve/omasheet/main/install.sh | bashUpdate: run the same line again.
Uninstall: sudo pacman -R omasheet.
Build from source (e.g. on macOS ARM and other Linux): install Qt 6 and Rust
(brew install qt rust), then cargo build --release --package omasheet-ui;
the binary is at target/release/omasheet.
Building directly from the git repo instead of a local clone needs --locked
(cargo install --git https://github.com/librasteve/omasheet --locked omasheet-ui),
since omasheet depends on a crate whose compatible releases are all yanked, and
only the version pinned in this repo's Cargo.lock can still be resolved.
omasheet # the app, on a new file
omasheet examples/budget.omx # the app, on a .omx, .csv, .json or .xlsx file
omasheet print examples/budget.omx # print the calculated file
omasheet eval '1/3 + 1/6' # 0.5, exactly
omasheet export examples/budget.omx --xlsx [or --csv | --json | --parquet]
omasheet render examples/report.md --htmlPrompt your favorite AI with:
Please load the Omasheet skill from https://raw.githubusercontent.com/librasteve/omasheet/main/.claude/skills/omasheet/SKILL.md and follow its instructions when creating, checking, or converting spreadsheets.
- The file format
- Expressions
- The app and the command line
- XLSX, CSV, JSON and Markdown
examples/— worked files, each with its expected outputopenspec/— the design and the specs
Early and changing. MAY CONTAIN ERRORS.
Copyright (c) 2026 Stephen Roe. MIT licence; see LICENSE.

