cat / 012
clone

a spreadsheet for the terminal: lotus 1-2-3 looks, google sheets keys and formulas, one go binary

README: a landing page; docs show the recordings that teach them

Dami committed e231576
The README keeps what 012 is, the hero recording, install and a short
tour linking each feature to its doc, and leaves the docs list to
docs/README.md and the development commands to testing.md; counts that
live in functions.md and themes.md go. The demos table adds conditional
formatting and pivot tables.

keys.md shows the vim recording, macros.md the macro one, themes.md the
theme picker, formulas.md decimal arithmetic, files.md the import
picker, and data.md selection statistics, rules and pivot tables. The
index describes data.md and files.md as they are.
commit
e231576fbfb3129418ed17d1b6ddc8912bc54d04
parent
767710fa90200ce3f48bd702b82cede80b859f96
author
Dami <dami.etoile@gmail.com>
7 files changed, +53 -79
MREADME.md114++++++++++--------------------
Mdocs/README.md4+-
Mdocs/data.md6++
Mdocs/formulas.md2+
Mdocs/keys.md2+
Mdocs/macros.md2+
Mdocs/themes.md2+
M README.md +37 -77
@@ -29,97 +29,57 @@ Requires Go 1.27. Or from a clone: `make build` puts the binary in `bin/012`.
2929 F1 shows every shortcut, F10 or Alt+letter opens the menus, and Ctrl+K3030 searches every command. `012 config edit` opens the settings file.3131 32-## What it does33-34-- **Sheets-style editing.** Formulas with 120 Sheets-compatible functions,35- autocomplete and argument hints, pointing at cells with the arrows or the36- mouse, named ranges, undo and redo for everything, copy and paste with37- reference adjustment and the system clipboard, fill series, insert and38- delete rows and columns.39-- **Formats and styles.** Currency, percent, dates and times detected as you40- type; number formats, bold, italic, underline, strikethrough, alignment.41-- **Several sheets.** Sheet tabs on the status line, references between42- sheets (`=Sheet2!A1`) that follow renames, pointing into another sheet43- while typing a formula, hiding sheets, and Sheets' keys for moving44- between them.45-- **Data tools.** Freeze rows and columns, multi-column sort, filters with46- value pickers and conditions, find and replace with regular expressions,47- tracing precedents and dependents, live pivot tables and frequency48- tables on sheets of their own.49-- **Charts.** Column, bar, line, area, pie and scatter charts (stacked,50- with trend lines, log and fixed axes) that float over the grid and51- update live; real images in terminals with the kitty graphics protocol52- (kitty, Ghostty, WezTerm), text elsewhere.53-- **Files.** A diff-friendly JSON format, plus import from CSV, TSV, XLSX,54- SQLite, Parquet and Lotus 1-2-3 `.wk1`, and export to CSV, TSV, XLSX and55- SQLite.56-- **Macros.** Record what you do with absolute or relative references and57- replay it with Ctrl+Alt+Shift+digit, as one undo step; macros are readable58- Starlark scripts saved in the file, with step limits and no file or59- network access ([docs](docs/macros.md)).60-- **JEV functions.** `JEV.TEST`, `JEV.PROB`, `JEV.CLASSIFY` and `JEV.SCORE`61- ask TypeSafe's hosted JEV model about your data, answered in the background62- and cached ([docs](docs/jev.md)).63-- **Made for terminals.** Mouse with hover and resize handles, hyperlinks,64- light and dark themes that follow the terminal, desktop notifications,65- menus and a command palette styled like terminal software, not a GUI,66- and optional vim keys (hjkl, counts, dd/yy/p, visual selection, `:`67- commands) in File > Settings.68-- **Themes and a config file.** Your terminal's colors by default, or any69- of 349 color schemes (or your own Ghostty theme) with solid menu and70- status bars; one Ghostty-style config file for every setting, and the71- JEV API key kept in the OS keychain ([config](docs/config.md),72- [themes](docs/themes.md)).73-74-## Demos32+## A short tour33+34+- **Formulas as in Sheets**, with [Sheets' functions](docs/functions.md),35+ suggestions and argument hints, pointing at cells with the arrows or the36+ mouse, named ranges, references between sheets, optional decimal37+ arithmetic for money, and undo for everything38+ ([formulas](docs/formulas.md)).39+- **Data tools**: freeze, sort, filter, find and replace, conditional40+ formatting, dropdowns and checkboxes, notes, protected ranges, and live41+ pivot tables ([working with data](docs/data.md)).42+- **Charts** that float over the grid and follow their data, drawn as real43+ images in kitty, Ghostty and WezTerm and as text elsewhere44+ ([charts](docs/charts.md)).45+- **Files**: a diff-friendly JSON format, import from CSV, TSV, XLSX,46+ SQLite, Parquet and Lotus 1-2-3, export to CSV, TSV, XLSX and SQLite47+ ([files](docs/files.md)).48+- **Macros**, recorded or written as Starlark scripts saved with the sheet49+ ([macros](docs/macros.md)).50+- **Made for terminals**: the mouse, hyperlinks, the system clipboard over51+ SSH, your terminal's colors or any of hundreds of schemes, optional vim52+ keys, and `012 serve` to reach your sheets over SSH53+ ([keys](docs/keys.md), [themes](docs/themes.md), [SSH](docs/ssh.md)).54+- **JEV functions** ask TypeSafe's hosted model about your data from a55+ formula ([JEV](docs/jev.md)).7556 7657 | | |7758 |---|---|7859 | ![Menus and the command palette](docs/media/menus-palette.gif) | ![Inserting a chart that follows its data](docs/media/charts.gif) |7960 | Menus and the command palette (Ctrl+K) | Charts that float over the grid and follow their data |61+| ![A task list with a color scale, a dropdown and checkboxes](docs/media/rules.gif) | ![A pivot table of sales by region and quarter](docs/media/pivot.gif) |62+| Conditional formatting and data validation | Pivot tables, live |8063 | ![Freezing, sorting and filtering](docs/media/freeze-sort-filter.gif) | ![Find and replace](docs/media/find-replace.gif) |8164 | Freeze, sort and filter | Find and replace |8265 | ![JEV functions classifying reviews](docs/media/jev.gif) | ![Currency formats and totals](docs/media/formats-budget.png) |8366 | JEV functions in formulas | Formats detected as you type |8467 8568 The recordings are [VHS](https://github.com/charmbracelet/vhs) tapes in86-[`demos/`](demos); `make demos` renders them in a terminal using the87-Catppuccin Mocha palette, which 012 follows by default ([themes](docs/themes.md)).88-Charts show as text here; in kitty, Ghostty and WezTerm they are real images.89-90-## Documentation91-92-- [Keys and mouse](docs/keys.md)93-- [Entries and formulas](docs/formulas.md) and [functions](docs/functions.md)94-- [Working with data](docs/data.md)95-- [Charts, links and the terminal](docs/charts.md)96-- [Files](docs/files.md)97-- [JEV functions](docs/jev.md)98-- [Serving over SSH](docs/ssh.md): `012 serve`, public-key only, confined to one directory99-- [Configuration](docs/config.md) and [themes](docs/themes.md)100-- [Macros](docs/macros.md): recording, running, and the scripting API101-- [Architecture](docs/architecture.md), [UX bar](docs/UX.md) and [testing](docs/testing.md)102-- [Limits](docs/limits.md): how big a sheet 012 handles and where it slows down103-- [Observability](docs/observability.md): event logs, DuckDB, and a local Collector, ClickHouse and Grafana stack104-- [Roadmap](ROADMAP.md)105-106-## Development107-108-```sh109-make build # pure Go, CGO_ENABLED=0110-make test # unit tests111-make e2e # the real binary in libghostty, Ghostty's terminal core (needs Zig 0.16+ and pkg-config)112-make screens # golden screens and the review gallery113-make oracle # formulas and formats against excelize114-make stress # benchmarks on synthetic and real data; make stress-report compares runs115-```69+[`demos/`](demos), rendered by `make demos` in the Catppuccin Mocha70+palette; 012 draws in your terminal's own colors by default71+([themes](docs/themes.md)). Charts show as text here.11672 117-See [docs/testing.md](docs/testing.md).73+## More11874 119-## Status75+- [Documentation](docs/README.md): every guide, for using 012 and for76+ working on it77+- [Roadmap](ROADMAP.md)78+- Working on 012: `make build`, then `make check` before a push; see79+ [testing](docs/testing.md) and [CLAUDE.md](CLAUDE.md)12080 121-Young and moving quickly. The file format is versioned and older files keep122-loading; the Go packages are internal and may change at any time.81+Young and moving quickly. The file format is versioned and older files82+keep loading; the Go packages are internal and may change at any time.12383 12484 ## License12585
M docs/README.md +2 -2
M docs/data.md +6 -0
M docs/formulas.md +2 -0
M docs/keys.md +2 -0
M docs/macros.md +2 -0
M docs/themes.md +2 -0