Show HN: Hucksh – A shell with a very good memory
I took a look at my shell history and a frequent pattern of commands was "cd, ls, cd, ls, ...". And I thought "I love my keyboard, but you know, point and click might be nice in this context."
And then I thought, "It'd be even cooler if you could run commands there."
Skip forward several years, a few earlier implementations, a name change, and now there's Hucksh(ell), a bash-like shell that makes it easy to do all that.
There's a directory navigation tab, where you can click around to navigate, use forward and back buttons (like a browser), and also a "navigate" mode where you can select the directory to change to with a single keystroke.
The system remembers every directory you do anything in and lets you choose them from a list, which you can order by name, time last used, or frequency of use.
And finally, of course, there are shell tabs where you can run individual commands.
Each command gets its own widget in the UI, separate from the others, in its own tty, with no overlap.
The system saves each command you run, along with its start & stop times, the directory you were in, the result code when it finishes, and (this is the fun part) the command output, all in a sqlite database, on disk. (Disk is cheap, yeah? Might as well do something with it.)
This allows you to do some neat things with history and context.
* Keep the same tab open forever, maintaining months or years of context and history
* Pick up where you left off a month or a year ago
* Pick up where you left off after a system restart (like when you restart your browser and it reopens all your windows and tabs)
* Review everything you've done in a project directory
* Review everything you did yesterday, or a month ago
I hope in the future to make it easy to share history, which could help with new employee onboarding, teaching, asking or answering questions on StackOverflow, documenting a penetration test, or anywhere else you want to easily share your work or consume someone else's work.
Everything is in Go.
* The front-end uses Gio UI, a cross-platform GUI for Go
* The shell itself is https://github.com/mvdan/sh, a bash-like command interpreter
* The terminal emulator is a fork of Darktile (https://github.com/liamg/darktile) with very few changes.
This is not a SaaS. You download code and run the front- and back-end yourself, like ssh/sshd. (Except it doesn't run as root.)
This is a commercial product. Without a license, the app limits you to a single top-level window, with two shell tabs. (Similar to a single iTerm window with two tabs.) With a license, as many windows and tabs as you like.
I'm looking for any kind of feedback whatsoever, positive or negative, from the app itself, to the documentation and other online information, to this very post.
hucksh is currently available for macOS and Linux.
Learn more: https://huckridge.notion.site/Hucksh-overview-2fdcaf7d639145...
Download, etc: https://huckridge.notion.site/Hucksh-online-download-purchas...