⚡️ Installation
Quick setup
Add the following snippet in the .zshrc
file:
- Instant
- Verified
source <(curl -sL git.io/zi-loader); zzinit
Verify the sha256 checksum for a file: lib/zsh/init.zsh
:
local cs_ok='7fab1ecb8d2ffbdb4aa98dd1e51cebaeaa4d8137e1de11938f3e0df24af262bb'local cs=$(sha256sum <(curl -sL git.io/zi-loader) | awk '{print $1}')[[ $cs_ok == $cs ]] && { source <(curl -sL git.io/zi-loader); zzinit; } || { print -P "%F{160}▓▒░ Houston, we have a problem, the %F{226}$cs%F{160} do not match\!%f%b"; exit 1}
Reload shell with exec zsh
and run zi -h
for usage information.
Automated setup
- Verify the sha256 checksum for file:
lib/sh/install.sh
- If required append
-b <tag>
or-b <branch>
e.g:
sh -c "$(curl -fsSL git.io/get-zi)" -- -i skip -b main
- Minimal
- Loader
- Repository
- Annex
- ZUnit
Install and include minimal configuration to the .zshrc
:
sh -c "$(curl -fsSL git.io/get-zi)" --
Install and include minimal configuration with loader:
sh -c "$(curl -fsSL git.io/get-zi)" -- -a loader
The installer will download the loader and add the snippet below to the .zshrc
file.
if [[ -r "${XDG_CONFIG_HOME:-${HOME}/.config}/zi/init.zsh" ]]; then source "${XDG_CONFIG_HOME:-${HOME}/.config}/zi/init.zsh" && zzinitfi
The loader can be manually fetched from available links to any location on the system, and sourced from .zshrc
or as shown in the quick-setup.
Then reload shell with: exec zsh
. All done!
Clone repository using default or if set custom values:
sh -c "$(curl -fsSL git.io/get-zi)" -- -i skip
Install and include minimal configuration with recommended annexes:
sh -c "$(curl -fsSL git.io/get-zi)" -- -a annex
Install and include minimal configuration with recommended annexes and setup zdharma/zunit:
sh -c "$(curl -fsSL git.io/get-zi)" -- -a zunit
Manual Setup
Set up install location and create a directory:
typeset -Ag ZItypeset -gx ZI[HOME_DIR]="${HOME}/.zi" ZI[BIN_DIR]="${ZI[HOME_DIR]}/bin"command mkdir -p "$ZI[BIN_DIR]"
For security reasons run function compaudit
to check if the completion system would use files owned by root
or by the current user
, or files in directories that are world
or group-writable
.
If failed, then set the current user as the owner of directories, then remove group/others write permissions, and clone the repository:
compaudit | xargs chown -R "$(whoami)" "$ZI[HOME_DIR]"compaudit | xargs chmod -R go-w "$ZI[HOME_DIR]"command git clone https://github.com/z-shell/zi.git "$ZI[BIN_DIR]"
To enable Zi, source the zi.zsh
from the previously set up directory placing the following snippet in the .zshrc
file:
typeset -A ZIZI[BIN_DIR]="${HOME}/.zi/bin"source "${ZI[BIN_DIR]}/zi.zsh"
The two lines below must be placed after the lines above, i.e. after enabling Zi.
Enable Zi completions:
autoload -Uz _zi(( ${+_comps} )) && _comps[zi]=_zi
Post-install
After a fresh install, recommended to reload the shell with exec zsh
and compile Zi with zi self-update
. Run zi -h
to see all available commands. Increase Zi functionality, and performance, or get started by exploring the wiki.
If you have any issue or need help 🤦♂️, lets discuss it or open an issue in any language.
It helps us to improve and make Zi better. Don't forget to help the project: share, contribute, or translate 🌐 🥰 🤓.
Let's glue everything together to create a toolchain that works for us 🚀.
Have ideas?
Suggest or request at playground
sh -c "$(curl -fsSL git.io/get-zi)" -- -a ???
Need warm-up?
Docker Alpine
docker run --rm -it ghcr.io/z-shell/zd:latest
Turbo Zi in Docker
If you create a Docker image that uses Zi, install Turbo-loaded plugins before the shell starts interactively, with the @zi-scheduler
function in such a way, that it:
- Install plugins without waiting for the prompt (i.e. it's script friendly).
- Install all plugins instantly, without respecting the
wait
argument.
To accomplish this, use burst argument and call the @zi-scheduler
function:
RUN zsh -i -c -- '@zi-scheduler burst || true'
- An example: Dockerfile
- In action: Playground
Zi Module: zpmod
- Required Zsh version: >= v5.8.0
- z-shell/zpmod
- With Zi
- Standalone
Usage:
zi module {build|info|help} [options]zi module build [--clean]zi module info [--link]
- To start using the Zi Zsh module run:
zi module build
. Append--clean
to runmake distclean
. - To display the instructions on loading the module, run:
zi module info
. - To enable debug messages from the module set:
typeset -g ZI_MOD_DEBUG=1
sh -c "$(curl -fsSL git.io/get-zi)" -- -a zpmod
Available links
Installer
Service | URL |
---|---|
Redirect | https://get.zshell.dev |
IPFS | https://ipfs.zshell.dev/sh/install.sh |
Direct | https://raw.githubusercontent.com/z-shell/zi-src/main/lib/sh/install.sh |
Loader
Service | URL |
---|---|
Redirect | https://init.zshell.dev |
IPFS | https://ipfs.zshell.dev/zsh/init.zsh |
Direct | https://raw.githubusercontent.com/z-shell/zi-src/main/lib/zsh/init.zsh |