[HN Gopher] Sheets: Terminal based spreadsheet tool
___________________________________________________________________
Sheets: Terminal based spreadsheet tool
Author : _____k
Score : 179 points
Date : 2026-04-04 06:34 UTC (2 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| gigatexal wrote:
| Vim bindings I'm in!
| opengears wrote:
| +1
| qiine wrote:
| I have been trying https://github.com/hat0uma/csvview.nvim
|
| Its rather neat.
| lateforwork wrote:
| All spreadsheets used to run in your terminal, in the old days.
| You can still download one here and I wouldn't be surprised if it
| still works: https://winworldpc.com/product/quattro-pro/4x
| tibbon wrote:
| Right? Visicalc wasn't using anything that a terminal didn't
| offer.
| jnpnj wrote:
| there are some videos about quattro in those days and i was
| sincerely surprised how featured and advanced it was
|
| the ratio of space / cpu / capabilities (beside the network
| part) is something that reaches deep in my brain
| captn3m0 wrote:
| You can run Lotus 1-2-3 for Unix in modern Linux :
| https://github.com/taviso/123elf
| codethief wrote:
| What a great name :) ("elf" = 11 in German)
| chrisweekly wrote:
| what's the relevance of 11 in this context?
| alexpotato wrote:
| Lotus 1-2-3 was the first spreadsheet I ever used around age
| 9 so this is really bringing me back!
| julcol wrote:
| I am shy to admit I used visicalc on an HP-85.....1980 ???
| maybe...I learned the periodic table with a basic program I
| made on that piece of art.
| prideout wrote:
| Yes! My first encounter with spreadsheets was SuperCalc for
| CP/M, and I suppose you would call it a "TUI" nowadays.
| halosghost wrote:
| See also, one of the older / more-robust entrants in this space
| [0], and one of the more innovative (still from a hot-second ago
| now...) [1].
|
| All the best,
|
| 0. https://github.com/andmarti1424/sc-im
|
| 1. https://www.syntax-k.de/projekte/teapot/
| somat wrote:
| Teapot is pretty great, it's too bad there is close to zero
| room for real innovation in the spreadsheet domain. For the
| most part if it's not spreadsheeting how prophet Dan Bricklin
| envisioned, people don't want it.
|
| See also: lotus improv
|
| Actually... on that note I realized have never tried lotus
| improv.
|
| I found a copy of the win3.1 version here.
| https://archive.org/details/lotus-improv-2.0-for-windows-2.0...
|
| But my plan is to go for the full nerd experiance and see if I
| can get the nextstep version to work.
| https://winworldpc.com/download/7c521434-e280-a0e2-82ac-11c3...
|
| Which will require a NeXT machine emulator
| https://previous.nextcommunity.net/
|
| Wish me luck.
| einr wrote:
| The easy way to accomplish this is to just launch a NeXTstep
| box in your browser from https://infinitemac.org/
|
| I don't know if they have Improv pre-installed, but it will
| let you mount disk images from your computer.
|
| (Personally I find the easy way too easy, so I have
| NeXT^WOpenSTEP installed on bare metal on a 5x86 box. But
| that's me)
| mhd wrote:
| > Teapot is pretty great, it's too bad there is close to zero
| room for real innovation in the spreadsheet domain.
|
| One issue is that this is hard to do while still retaining
| backwards compatibility. Lotus Improv basically gave you no
| other choice, something that Excel The Next Version can't do.
| And I doubt that we're getting a third MS app, no Multiplan
| -> Excel -> NewSpreadsheetThingProbablyCalledCopilotAnyway.
|
| I know a lot of people that don't even use Excel's _tables_ ,
| introduced almost 20 years ago. But instead they
| painstakingly recreate most of its built-in features. It's
| just an easy shortcut away, and has plenty of GUI support
| hidden in the ribbon morass, but it's not the default
| state...
| 0_gravitas wrote:
| Oh man, I played with teapot once a long while ago, but
| couldn't figure out how to parse values from XDR files in
| $LANG, or export some given sheet into CSV or other format-
| which sadly put a stop to my experimentation. Super interesting
| otherwise, and wish it had more eyes.
| deathanatos wrote:
| You might say ... it's As Easy As[2] 1-2-3?[1]
|
| [1]: https://en.wikipedia.org/wiki/Lotus_1-2-3
|
| [2]: https://en.wikipedia.org/wiki/As-Easy-As
|
| What's old is new again.
| drob518 wrote:
| Exactly. I immediately thought, "So, we've invented VisiCalc
| all over again."
| freedomben wrote:
| TBF, VisiCalc is not open source, and this is relatively
| fresh start, so I don't think it's fair to compare this to a
| reinvention.
| drob518 wrote:
| Isn't that what reinvention means?
| freedomben wrote:
| I suppose that's fair, and I concede, though I think you
| can play with the definition enough to make anything
| spreadsheet (even GUIs and webapps) be "reinvention" of
| visicalc, so I think the term is actually pretty
| meaningless.
| drob518 wrote:
| My point was, it's a spreadsheet in a term window. That's
| basically what VisiCalc was in the 80s.
| freedomben wrote:
| Appreciate the clarification, and sorry, I wasn't trying
| to be a pedantic pain in the ass :-)
| drob518 wrote:
| No worries; all good.
| jnpnj wrote:
| pretty cool, most of the time I don't want to spin emacs org-
| table nor google sheets for a quick table
| maaslalani wrote:
| Agreed!
| blippage wrote:
| Visidata is a fast popular data tool in python
| https://www.visidata.org/ if you just want data entry.
|
| If I may be permitted a small plug ...
|
| Oleo is a GNU spreadsheet going back absolutely donkey years. I
| cloned the repo here: https://github.com/blippy/oleo and made
| minimalist fixes to get the thing to compile.
|
| I also based my own terminal-based spreadsheet based off of it
| call neoleo: https://github.com/blippy/neoleo
|
| I wouldn't say that my project is particularly good, but it does
| have a number of features that I find useful. The next release
| will include Tcl bindings, so you can customise some of the
| workings of the app. There's also a module available where you
| can go to town programmatically.
|
| It opens up a world of possibilities, including stuff like pivot
| tables. package require oleo load-oleo
| mysheet.oleo set ws [toMat] set subset [subRows $ws
| [mand [mstreq 2 foo] [mstreq 3 bar]]
|
| It has what I think is a nice little query language, too. In the
| last line I select the rows from the spreadsheet sheet column 2
| is equal to foo and column 3 is equal to bar.
|
| I'm kinda dog-fooding it at the moment to put in place features
| that I need. It doesn't have the full equivalence of SQL-
| equivalent though.
| izhak wrote:
| vd (visidata) is amazing. The only tool that really works for
| me with millions of rows csv's
| chrisweekly wrote:
| See also lnav (https://lnav.org), a mini-ETL CLI power tool.
| guessbest wrote:
| Thanks for showing this. What would you say the differences
| between the classic version of oleo and your neoleo version?
| blippage wrote:
| Oleo is C, circa 50k of C code, Neo(-leo) is around 5k of C++
| code. A 10th of the size, but not necessarily any less
| powerful. Oleo has some memory leaks in places, whereas Neo
| has no (known) leaks.
|
| Oleo uses lex and yacc, whereas Neo has a hand-parser.
|
| Oleo is in the style of emacs bindings, whereas Neo is more
| vim-like, but without the modality.
|
| I think the Neo code is better-structured and more readable
| (but I would say that, wouldn't I? - although it is far from
| perfect). C++ generally makes code more readable and obvious,
| without all that pointer arithmetic.
|
| The internals of Oleo are more complicated. It uses byte-code
| for cells, for example. Neo stores a parse tree for a cell.
| So you can see that a lot of programming effort is saved
| right there.
|
| In terms of speed, I suspect that the original Oleo is
| faster, although it's difficult to benchmark.
|
| Neo is also heading towards being a library that you can
| compile in with other C++ code. Plus there's an interface to
| Tcl, which Oleo never had. So you get a lot of extensibility
| there which Oleo doesn't have.
|
| I also think Neo is more generally accessible. It's got
| something in the way of a menu (still early stages), which
| helps. Neo is just generally less fiddly with editing cells,
| IMO. The mouse works, too.
|
| Oleo does have an interface using Motif. Very early-90s.
| There's even an interface to GTk, although I don't think that
| works properly. I decided to abandon all that and just stick
| to an ncurses interface. After all, if you want a fancy
| interface, there are proper options these days like
| LibreCalc, Caliigra and Gnumeric.
| blippage wrote:
| To add to the cool things you can do with Neoleo, I wrote a
| little TCL extension that loads current processes into the
| spreadsheet. I added custom bindings so that you could
| search for processes, go to its parent, and kill processes.
|
| I'm also half-way to adding a little calendar extension,
| too.
| guestbest wrote:
| Thanks for the extensive write up
| Andrex wrote:
| > Oleo is a GNU spreadsheet going back absolutely donkey years.
|
| Third line of README:
|
| > As of this writing (February 1999)
|
| Whoah, you weren't kidding!
| blippage wrote:
| Yes, I'm partial to a bit of retro. It does back to around
| 1991, IIRC. I don't think it had a curses interface in those
| days.
|
| And check this: version 1.2.2 is available on Aminet, for the
| Amiga. How's that for a blast from the past?
| m-hodges wrote:
| VisiData is superb. It can work with website tabular data too;
| great for scraping.1
|
| 1 https://matthodges.com/posts/2025-09-30-visidata/
| jmacc93 wrote:
| Semi-related: I always wished there was something like the unholy
| combination of a spreadsheet and notebook rolled into one. I
| picture it notebook-like at the top level, then each cell is a
| widget that the host language can reference parts of in other
| cells (probably with a variable (eg: something like mathematicas
| `Out[_]`) or a built in construct (like the `$ABC123` forms in
| spreadsheet formulas)). A notebook interface would also be good
| (I think) as a straight up terminal as well, as you (I) typically
| want to run commands in an order like in a notebook
| BirAdam wrote:
| Some time ago, I remember Microsoft having made a video for a
| "courier tablet" that was essentially an electronic notebook.
| Either side of the spine was, by default, just plain "paper"
| that could be drawn or written on. It had some kind of
| intelligence to recognize stuff, so if you started drawing out
| a grid it had basic capabilities that could be attached to that
| grid, like spreadsheets.
|
| At least, these are things I think I remember. It's not quite
| what you're imagining, but it was cool and along the same
| lines.
| chrisweekly wrote:
| I think that combination exists using Obsidian.md, via built-in
| "Bases", or dataview / datacore plugins.
| jasaldivara wrote:
| Do you know TreeSheets[1]? It kind of sounds similar to your
| notebook idea.
|
| https://strlen.com/treesheets/
| andy99 wrote:
| If I'm remembering correctly, I had bought a Borland Turbo C++
| compiler circa 1994 (for DOS) that came with a demo sheets
| application you could build and run.
|
| Does anyone remember this, I can't find it now.
| ncr100 wrote:
| Anybody ever bound a Google sheets to a CSV and provided a TUI
| for that? I expect it would be slow.
|
| Two-Way synchronizing of a text file version of Google sheets is
| another way to think of it. Aside from that, there would also be
| the need to implement the spreadsheets user interface of
| highlighting and all that stuff, in the TUI side.
| zaphar wrote:
| This is cool. I built a similar thing for myself a while back:
| https://github.com/zaphar/sheetsui
| freedomben wrote:
| To really be useful (to me at least and a handful of others I've
| talked to) it has to have xlsx support or at least open document
| format. If you're not sharing it with anyone then csv-only is
| fine, but still very limited. This project is early days though
| so shouldn't be judged for a while, but I would heavily suggest
| not overlooking compatiblity support even though it's a nasty
| boondoggle.
| semiinfinitely wrote:
| this is probably the thing being replaced in that excel elevator
| demo commerical from microsoft in the 90s
| nickjj wrote:
| The functionality I miss from a GUI spreadsheet is this "simple"
| case:
|
| I have a spreadsheet with 186 rows and want to select a specific
| cell's value from rows 6 and 127 and immediately know the sum if
| it happens to be 2 digits. Most of the time it's from the same
| column but not always.
|
| With a GUI, this is really easy. CTRL + left click each cell and
| get the answer in a second. Throw SHIFT into the mix if you want
| a range of cells.
| SoftTalker wrote:
| To be clear, this is a TUI spreadsheet called "sheets" not a TUI
| interface to Google Sheets spreadsheets. Unless I completely
| missed something.
| dang wrote:
| Related ongoing thread:
|
| _Sc-im: Spreadsheets in your terminal_ -
| https://news.ycombinator.com/item?id=47662658 - April 2026 (25
| comments)
___________________________________________________________________
(page generated 2026-04-06 23:01 UTC)