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>
| M | README.md | 114 | ++++++++++-------------------- |
| M | docs/ | 4 | +- |
| M | docs/ | 6 | ++ |
| M | docs/ | 2 | + |
| M | docs/ | 2 | + |
| M | docs/ | 2 | + |
| M | docs/ | 2 | + |
@@ -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 |  |  |7960 | Menus and the command palette (Ctrl+K) | Charts that float over the grid and follow their data |61+|  |  |62+| Conditional formatting and data validation | Pivot tables, live |8063 |  |  |8164 | Freeze, sort and filter | Find and replace |8265 |  |  |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 @@ -5,9 +5,9 @@
55 - [Keys and mouse](keys.md): every shortcut, the mouse, and what's on screen66 - [Entries and formulas](formulas.md): what you type, references, names, errors77 - [Functions](functions.md): all of them, generated from the engine8-- [Working with data](data.md): selection, copy and fill, undo, freeze, sort, filter, find8+- [Working with data](data.md): selection, copy and fill, undo, freeze, sort, filter, conditional formatting, data validation, pivot tables, find, notes, protection99 - [Charts, links and the terminal](charts.md): charts, hyperlinks, terminal features used10-- [Files](files.md): the `.012` format, import and export10+- [Files](files.md): import and download, Excel files, saving, the `.012` format1111 - [JEV functions](jev.md): asking a hosted model from formulas, and storing the API key1212 - [Serving over SSH](ssh.md): `012 serve`, setup, the security model and limits1313 - [Configuration](config.md): the config file, `012 config` and every option@@ -9,6 +9,8 @@ select whole columns and rows. The active cell stays distinct from the rest
99 of the selection, and the status line shows Sum, Avg and Count, dropping the1010 ones that don't fit on a narrow terminal.1111 12+13+1214 ## Copy, paste and fill1315 1416 Ctrl+C, Ctrl+X and Ctrl+V work as in Sheets: relative references shift,@@ -97,6 +99,8 @@ Left/Right change a choice, Space flips a check, text lines are typed
9799 into, Enter saves and Esc goes back without saving. Every change is an98100 undo step.99101 102+103+100104 A rule applies to ranges (`A2:A100`, or several: `A2:A9,C2:C9`) and is101105 one of:102106 @@ -178,6 +182,8 @@ picking an item asks as typing does ([protection](#protected-sheets-and-ranges))
178182 179183 ## Pivot tables180184 185+186+181187 Data > Pivot table summarizes the selection, or the table around the182188 active cell, on a new sheet named `Pivot Table 1`, as Sheets' Insert >183189 Pivot table does. The data's first row names the fields. The pivot editor@@ -128,6 +128,8 @@ file, every sheet of it, to decimal math for money. The status line then says
128128 `decimal`, the menu shows a check mark, and the setting is saved with the129129 file and can be undone.130130 131+132+131133 | Computed in decimal | Stays binary |132134 |---|---|133135 | `+ - * /` and postfix `%`; `SUM`, `AVERAGE`, `PRODUCT`, `SUMIF`, `SUMIFS`, `SUMPRODUCT`; `ROUND`, `ROUNDUP`, `ROUNDDOWN`, `TRUNC` | `^`, `SQRT`, statistics, finance, dates and everything else |@@ -132,6 +132,8 @@ Ctrl+D, Ctrl+U and Ctrl+R are vim's, so fill down and fill right are in
132132 the Edit menu. F1 lists the vim keys first, and the menus and palette133133 show them where Sheets' keys are taken.134134 135+136+135137 | Keys (NORMAL) | Action |136138 |---|---|137139 | `h` `j` `k` `l`, arrows | Left, down, up, right |@@ -7,6 +7,8 @@ script (a small, deterministic dialect of Python) saved in the `.012`
77 file, as Sheets saves Apps Script with a spreadsheet. Recorded macros are88 scripts too, so you can read them, change them, or write your own.99 10+11+1012 ## Recording1113 1214 1. **Data > Macros > Record macro** (or search the palette for "record").@@ -30,6 +30,8 @@ writes `theme = ...` to the config file, and Esc goes back to the theme you
3030 had. With a `light:`/`dark:` pair, the picker changes the one in use.3131 `012 config themes` lists every theme, with a `*` on the current one.3232 33+34+3335 ## Built-in schemes3436 3537 012 embeds the 348 schemes of [VHS](https://github.com/charmbracelet/vhs)