Install Cicada

There are a few ways to install cicada into your system.

Install on Some Known Linux Distributions

Alpine Linux

$ apk add cicada -X

Arch Linux

cicada shell on AUR

Note: makepkg will install rust system and other packages.

$ git clone
$ cd cicada-shell/
$ makepkg -si

Generic Install Options

Option A: cargo

If rust installed on your system, you can install cicada with:

$ cargo install -f cicada

Optionally, you can move the binary downloaded to a common place:

$ cp ~/.cargo/bin/cicada /usr/local/bin/cicada

Option B: via Pre-built Binaries

First download the latest right binary for your system from Release Page.

Move it to right place and add runable permisson:

# on Mac
$ mv cicada-mac-arm64 /usr/local/bin/cicada

# on Linux
$ mv cicada-linux-x86_64 /usr/local/bin/cicada

$ chmod +x /usr/local/bin/cicada

If you encounter error when running the binary downloaded:

... version `GLIBC_2.31' not found (required by ./cicada)

That indicate the GLIBC version on your system is too old. Please try install cicada with other options.

Option C: via Source

Note: Rust environment (Rust stable or above) is required.

$ git clone
$ cd cicada
# try cicada without installing
$ make
$ make install

cicada will be installed under /usr/local/bin

I found on newer MacOS, a reboot is needed after generating a new binary. This may be an bug/feature of the OS security things.

Set cicada as your login shell

WARNING: Please test cicada on your system before setting it as default shell.

In file /etc/shells, append the following line:


Then run

$ chsh -s /usr/local/bin/cicada

Next time you open a terminal window, cicada shell will be the default one.

default shell on GNOME Terminal

For GNOME Terminal on Ubuntu or other systems, you may need reboot after running chsh. If failed, another way to config terminal to use cicada is following:

Preferences --> Profiles (Unnamed) --> Tab Command:


For better terminal use experience, I have following in my ~/.inputrc file:

"\e[1;3D": backward-word
"\e[1;3C": forward-word
"\e[1;9D": backward-word
"\e[1;9C": forward-word
"\e[A": history-search-backward
"\e[B": history-search-forward