Thu January 4, 2024

Is hucksh for you?

Do you wish your shell remembered more of your work for you?

bash and zsh remember previous commands, and (maybe) when you ran them, depending on configuration.

Hucksh does so much more than that:

  • remember the directory you were in, and the command output
  • search your entire command history with full regular expressions. (Bash doesn’t use full regular expressions.)
  • search your command output history with simple functions, or more directly with simple sql
  • remember every directory you’ve ever visited, and the last time you visited it
  • replay output of a previous command without messy cut-and-paste
  • populate tabs with past history
    • “Show me everything I’ve run in this directory.”
    • “I reconfigured my router and now I can’t get online. Show me everything I did yesterday.”
  • stores all this in a sqlite database, so it’s persistent across crashes and restarts

Do you have a bunch of shell tabs? Do you hate it when the server restarts and they all go away?

  • screen or tmux are great for saving your work, but only as long as the server stays up
  • hucksh saves all your work in a database and can recover your context after a server restart.
  • This is not that big a deal if you have one tab and you start fresh every day. It’s a bigger deal when you have ten tabs with weeks of history each and the server needs a kernel update.

Do you ever need to share your work with someone else?

With hucksh, you can share an archive / transcript of everything you’ve done, or any subset thereof. Great for:

  • Demos: Record a demo and distribute an archive to your audience, which they can load into their instance of hucksh, or view separately. [Forthcoming]
  • Onboarding new employees: Build a database of commonly used commands and pro-load it into their instance of hucksh. [Forthcoming]
  • Have you ever wished you could show a coworker/teacher/student/manager/helper exactly what you did … yesterday? Last week? Last year?

Do you have a slow, high-latency, or unreliable network?

  • ssh does a round-trip to the server for every key you press. If you’re on cellular or satellite Internet this can be annoying.
  • hucksh does all command entry & editing locally. You can also open a command in an external editor window, and reread it back into hucksh when you’re ready. (Requires some configuration.)
  • hucksh automatically retries connecting to the server via gRPC’s built-in exponential back-off. (Admittedly this still uses ssh in the background, for the moment.)

I’ll be honest: It might not, in fact, be for you

See the bottom of Why hucksh? What makes hucksh different?