Hilbish is a highly extensible interactive shell configured using Lua.
It aims to provide comfortable defaults for ordinary terminal use while exposing most of its behaviour through a Lua API for users who want to customise or extend it.
Its default hybrid runner first attempts to interpret input as Lua and then falls back to shell syntax. Alternative runners can prioritise shell commands, accept only shell syntax or turn the prompt into a Lua REPL. Custom runners can also be written for other languages. Traditional shell syntax is intended for interactive commands, while configuration and extensibility are handled through Lua.
This is free and open source software.
Key Features
- Interactive shell designed around extensive Lua customisation.
- Run Lua expressions and conventional shell commands from the same prompt.
- Default hybrid runner tries Lua before shell syntax.
- Alternative shell-first, shell-only and Lua-only runner modes.
- Register custom input runners for other languages.
- Override the runner for an individual command without changing the global mode.
- Lua configuration file and comprehensive shell API.
- Create commands and extend shell behaviour using Lua functions.
- Event and hook system for reacting to shell activity.
- Customisable prompts and input handling.
- Aliases with positional argument substitution.
- Temporarily disable alias expansion for an individual command.
- Abbreviations expand text in place before execution.
- Expanded abbreviations are stored in history as complete commands.
- Command-specific tab completion with file completion as a fallback.
- Grid, list and mixed completion layouts.
- Completion entries can include descriptions and aliases.
- Lua API for registering completion handlers for additional commands.
- Persistent command history.
- Optional fuzzy history searching through the Ctrl-R menu.
- Private-command modifier prevents sensitive commands from entering history.
- Run a command temporarily from another directory.
- Automatic directory changing when a directory is entered as a command.
- Background-job management.
- Notification system for shell features and extensions.
- Optional notification when a background job finishes.
- Configurable greeting and message of the day.
- Standard edition uses a Lua implementation written in Go.
- Midnight edition supports the original C Lua implementation, C-based Lua libraries and LuaJIT.
- Distributed as a self-contained shell without requiring a separate shell framework.
Website: github.com/sammy-ette/Hilbish
Support:
Developer: sammyette
License: MIT License
Hilbish is written in Go and Lua. Learn Go with our recommended free books and free tutorials. Learn Lua with our recommended free books and free tutorials.
Related Software
| Shells | |
|---|---|
| zsh | Advanced and programmable command interpreter |
| Nushell | Adopts the Unix philosophy of shells where pipes connect command together |
| fish | Smart and user-friendly command line shell |
| Xonsh | Python-powered, cross-platform shell language and command prompt |
| bash | sh-compatible command language interpreter |
| Murex | Intuitive, typed and content aware shell |
| PowerShell | Cross-platform automation and configuration framework |
| Elvsh | Expressive programming language and a versatile interactive shell |
| Oils | Billed as an upgrade to bash. Written in Python. |
| DASH | POSIX-compliant implementation of sh that aims to be as small as possible |
| sh | Shell parser, formatter, and interpreter |
| tcsh | C shell with file name completion and command line editing |
| mksh | MirBSD Korn shell |
| ksh | Unix shell which was developed by David Korn at Bell Labs |
| brush | POSIX- and bash compatible shell |
| Rash | Language, library, and shell REPL for Racket. |
| ion | Modern system shell that features a simple, yet powerful, syntax |
| Yash | Yet another shell |
| oksh | Portable OpenBSD ks |
| es | Extensible shell with higher-order functio |
| dune | A shell by the beach |
| cosh | Concatenative command-line she |
| gsh | POSIX-compatible generative shell |
| arsh | Statically typed scripting language with shell-like features |
| Sushi shell | Bash clone shell implemented in Rust |
| fortsh | Shell written in Fortran |
| hsh | Slightly different take on your shell |
| ReShell | Modern shell |
| rash | Rudimentary shell |
| Dax | Custom Unix shell implementation |
Read our verdict in the software roundup.
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |


Please read our Comment Policy before commenting.