hucksh: a Unix-y shell that remembers everything you do

maria890

New member

The product​


Website: https://huckridge.notion.site/Hucksh-overview-2fdcaf7d639145c0b192d0e19d7c25e4

Hucksh is a command-line shell for Unix-ish platforms (Linux, macOS, perhaps eventually Windows with WSL or Cygwin).

It combines elements & functionality of bash/zsh, ssh/sshd, screen/tmux, and sqlite.

It is not a SaaS. It uses a client-server model, like ssh & sshd. The client is a graphical user interface that runs locally, and the server runs either locally or remotely, wherever you want to run CLI commands (like sshd). The client communicates with the server via gRPC.

Key features
  • Run commands on the server and display their output, just like a more traditional command-line shell.
  • Unlike those traditional shells, Hucksh remembers command output, directories you visit (and when, and how often), and of course the commands themselves (and when you ran them, how long they took, what directory you were in, and their result code (
    Code:
    $?
    )).
  • All user context is stored persistently on disk. This includes tabs you have open and all the commands you've run in them. It's like a "screen" command that's persistent across restarts.
    • As an example, if you run it in a VM, and open 9 different tabs and run 19 different commands in each, and then shut down the VM and forget about it for a year, and then restart it, hucksh will restore all 9 tabs and all 19 commands in each and leave you right as you were the year before.
  • You can retrieve past commands (and their output) based on multiple criteria (the directory you were in, text in the command, text in its output, etc) at will, and populate a tab with them.
    • As an example, you can open a new tab,
      Code:
      cd /path/to/project ; cmds-here
      and the tab will populate with every command you've ever run in that directory.
      Code:
      cmds-here
      is just a shell function that does a predefined hucksh query.
  • When writing a new command, all editing is done locally; no back-and-forth to the remote server for every keystroke.
  • Easy directory viewing & navigation (similar in spirit to
    Code:
    ranger
    , though admittedly not yet as good).
  • Each command is run separately in its own environment, which makes it easy to do tricks like "pop out" the command in its own window, copy the complete output of the command to the system clipboard or an external text editor, mirror the command in multiple other tabs, delete the command from the tab, and so on.
Possible future features
  • Make it really easy to save a partial copy of your work in a separate archive or database, and share it with someone else, where they could easily import it, whereupon it'd be as if they'd run it themselves. Good for sharing work or onboarding a new co-worker.
  • Allow commands to be paused/restarted automatically, e.g. if they've produced a certain amount of output. Sort of "auto-more".
  • Easily display the process tree of a command and its "children", updated in real time.
  • Interact with "piped" data dynamically, e.g. pause a pipeline, view the throughput of a pipeline at a given pipe (like pv), or insert new code into the middle of a pipeline (e.g. seamlessly change
    Code:
    cmd1 | cmd3
    to
    Code:
    cmd1 | cmd2 | cmd3
    while the command is running).
  • Share sessions in real time. (This is very close to screen sharing, which is a pretty well-understood and -covered market, so it's pretty iffy.)
  • Export hucksh command history to other shells; import other shells' command history into hucksh (obviously sans output in both directions), for easier onboarding.

The market​


Anybody that uses a command line shell could benefit from hucksh. This includes developers, Site Reliability Engineers (SREs), system administrators, and most Linux users of any kind or profession, since most of them use the shell for a lot of stuff they do.

Online estimates are that there are 26 million software developers worldwide, and that about 45% of them use Linux or macOS. If all of them use a command-line shell in one way or another (which, in my experience, is a reasonable assumption), that's almost 12 million people, just in the developer community alone.

Anybody that wants to share exact snapshots of their work (in their CLI or terminal) with others: Teachers, streamers, co-workers, Stack Overflow users, penetration testers.

Competition​


There are many shells out there (bash, zsh, ksh, csh, etc, along with some niche shells like fish and elvish), and enhancement suites for some of them (e.g. "oh my zsh"). Shell usage is frequently very idiosyncratic, with years or decades of use and customization, and getting people to change shells takes a lot. I'd say it's "like pulling teeth" but it's probably actually harder than that.

There are not as many terminal emulators, and getting people to change them would be little easier, but that's hard to quantify.

There's a next-generation terminal emulator called Warp that's kind of reminiscent of hucksh or some of its ideas. Its lowest paid tier is $12/person/month for teams of 6 or more (i.e. at least $864/year, forever); they've raised $50M in a Series B as of June 2023.

I don't know of any shell or enhancement suite anywhere that saves all command output and lets you restore it in arbitrary combinations, so in that sense, at least, hucksh is unique.

Stage​


I am looking for product validation, beta testers, and paid customers. I have an app available for download, which runs in trial mode until you enter a license code.

I am self funded / bootstrapping. I am not looking for venture capital, though certainly I'd consider it if offered.

Conversion strategy​


Where do I find (or at least look for) customers

I have a newsletter with ten subscribers, most of them friends or former co-workers. So far as I can tell, exactly two of them have so much as downloaded the app. (The metrics I have might not have shown the whole story, but regardless, I've gotten no traction to speak of.) I have gotten zero feedback from any of them about anything.

I've posted to two other Reddit forums; this is the third. Combined, I got maybe 6k views, a few up- (and down-) votes, and a few comments. The most positive comment so far likes what I'm offering, and has wanted something like it since 1983 (when they got into the field), but only uses open-source software, so hucksh is a non-starter for them.

Eventually I want to post in r/SideProject, and also start patronizing r/commandline and other related subreddits and mentioning hucksh organically when and if appropriate.

I have several Reddit posts saved that list hundreds of places to promote one's startup, but so far I've stuck to Reddit.

The most engagement I've gotten has been on LinkedIn, but I think most of those have just been "attaboy"-style well-wishing. I have not posted on LinkedIn since I made hucksh generally available, though.

How do I make them buy shit from me

hucksh is free to download. A license is currently $40. I've offered discount codes worth ~90% off to my newsletter readers and in the other Reddit posts.

An unlicensed version will allow only a single top-level window, with two tabs. (Similar to a single iTerm window with two tabs.)

A licensed version allows unlimited top-level windows and tabs.

The license is "perpetual plus a year of upgrades", so if you buy a license today, any past release and any release for the next year will work forever. After that, new code stops working with that license, and you'll need to buy another one. I may offer a discount for upgrades, but right now the question is moot.

Why me?​


I'm an experienced programmer with decades of experience with command line shells and other CLI apps. I am active in the community of the GUI toolkit I use and the shell emulator I use. So far as I can tell I'm the only person that's ever thought to create the functionality I'm offering.

Thank you for reading and any feedback you care to offer, positive or negative.
 
@davedavids I have considered it, yes. I've been kind of working my way there, I guess. I'm a lot more familiar with Reddit than HN. Thanks for the encouragement.
 
Back
Top