L123: A Lotus 1-2-3–style terminal spreadsheet with modern Excel compatibility

· devtools · Source ↗

TLDR

  • l123 reimplements Lotus 1-2-3 R3.4a’s terminal UX in Rust with IronCalc, delivering slash menus, keyboard-first input, and native .xlsx round-trip.

Key Takeaways

  • Rust workspace with strict layering; IronCalc sits behind a swappable Engine trait; l123-parse translates @SUM/.. syntax to Excel format before compute.
  • Milestones M0-M8 complete: grid, formulas, .xlsx/CSV round-trip, 3D sheets, named ranges, undo, printing, 7 graph types, WYSIWYG icon panel with mouse support.
  • Authenticity contract: an experienced R3.4a user must drive it cold without docs; acceptance tests use keystroke transcripts verifying screen state output.
  • Formula syntax is 1-2-3 native: @SUM(A1..A5), #AND#/#OR#/#NOT# logical operators, first-char rule decides label vs. value entry without mode switching.
  • M9 macros (/X, {BRANCH}, {IF}) are planned; M10 themes and context help are in progress; API, keybindings, and file paths are not stable until v1.0.

Hacker News Comment Review

  • Terminal spreadsheets form a small but active niche: sc-im is the most established prior art with repeated HN appearances; sheetsui and cell are newer entries in the same space.
  • A commenter who maintains a working port of the official UNIX 1-2-3 binary to modern Linux cites the keyboard design as a genuine data-input efficiency win, not nostalgia, and notes LMBCS-to-UTF-8 as an unsolved gap that l123 sidesteps with its Rust rewrite.
  • VisiData surfaced as a recommendation for data wrangling and exploration, a related but distinct use case from l123’s goal of strict 1-2-3 behavioral fidelity.

Notable Comments

  • @nhatcher: names sc-im, sheetsui, and cell as the current field of terminal spreadsheet alternatives worth tracking alongside l123.
  • @taviso: maintains 123elf, a working port of the original UNIX 1-2-3 binaries to Linux; still uses it daily and notes LMBCS character encoding as the remaining portability gap.

Original | Discuss on HN