Cicada is a Bash-like Unix shell written in Rust. It is designed as a simple daily-use command interpreter, providing familiar shell constructs without attempting to reproduce the full complexity of Bash or compete with feature-heavy shells such as Zsh.
The shell can launch external programs, construct pipelines, redirect input and output, manage foreground and background jobs and perform command substitution. It also supports a lightweight scripting language with conditionals, loops and functions. Interactive facilities include persistent SQLite-based history, syntax highlighting, programmable completion and a highly configurable prompt.
This is free and open source software.
Key Features
- Launch external commands and shell builtins.
- Connect commands using Unix pipelines.
- Input, output and standard-error redirection.
- Command substitution using both backticks and $(command) syntax.
- Run multiple commands separated by semicolons.
- Conditional command execution using && and ||.
- Perform integer and floating-point arithmetic directly at the prompt.
- Supports arithmetic precedence, parentheses and exponentiation.
- Foreground and background job control.
- Suspend jobs and resume them using the bg and fg builtins.
- List active jobs and address them by job or process-group identifier.
- Aliases with alias and unalias management commands.
- Environment-variable assignment, expansion and removal.
- Configurable login-shell startup file.
- Source additional configuration or script files into the current session.
- If, else, for and while scripting constructs.
- User-defined shell functions and positional parameters.
- Filename globbing and brace-range expansion.
- Path, executable and environment-variable completion.
- Built-in completion support for make targets and SSH hosts.
- Custom command completions defined using YAML files.
- Persistent command history stored in an SQLite database.
- Search history by pattern, session or working directory.
- Reverse history search and prefix-based history navigation.
- Optionally exclude commands beginning with a space from history.
- Syntax highlighting recognises commands and command wrappers.
- Customisable prompt with colours, formatting and exit-status indicators.
- Prompt can display the current directory, user, host and Git branch.
- Embed the output of a command in the prompt.
- Builtins for checking commands, inspecting resource limits and managing Python virtual environments.
Website: github.com/mitnk/cicada
Support:
Developer: Hugo Wang
License: MIT License
Cicada is written in Rust. Learn Rust 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.