---
title: ⚙️ Zi Console
description: A console based on the `zsh/zcurses` Zshell module.
canonical_url: https://wiki.zshell.dev/ecosystem/plugins/zi-console
markdown_url: https://wiki.zshell.dev/ecosystem/plugins/zi-console/index.md
locale: en
source_path: ecosystem/plugins/zi_console.mdx
---

<!-- Generated from the canonical Z-Shell Wiki build. The linked human-facing page remains the editorial source of truth. -->

# ⚙️ Zi Console

<a id="i-classfa-brands-fa-githubi-z-shellzi-consolez-shell-zi-console"></a>

## [z-shell/zi-console](https://github.com/z-shell/zi-console)

A console for [Zi](https://github.com/z-shell/zi) – based on the `zsh/zcurses` Zshell module allows the user to:

-   View the currently loaded plugins in a colorful list, in one of 3 different display modes.
-   Unload and load plugins.
-   Delete the plugins and snippets from the disk.

<a id="zi-console-keybindings"></a>

## Zi Console keybindings

Start the console by <kbd>Ctrl-O</kbd> <kbd>Ctrl-J</kbd> keyboard shortcut, or by running `ziconsole` function in the shell.

<a id="Ctrl-U"></a>
<a id="Ctrl-P"></a>
<a id="Ctrl-L"></a>
<a id="["></a>
<a id="g"></a>
<a id="&lt;"></a>
<a id="/"></a>
<a id="F1"></a>
<a id="Esc"></a>
<a id="Ctrl-W"></a>
<a id="Ctrl-K"></a>

<table><thead><tr><th>Key(s)</th><th>Description</th></tr></thead><tbody><tr id="Ctrl-U"><td><kbd>Ctrl-U</kbd> ,<kbd>Ctrl-D</kbd></td><td>Half page up; half page down</td></tr><tr id="Ctrl-P"><td><kbd>Ctrl-P</kbd> ,<kbd>Ctrl-N</kbd></td><td>Previous line, centered; next line, centered</td></tr><tr id="Ctrl-L"><td><kbd>Ctrl-L</kbd></td><td>Redraw of whole display</td></tr><tr id="["><td><kbd>[</kbd> , <kbd>]</kbd></td><td>Jump to next and previous section (e.g.: next plugin or snippet)</td></tr><tr id="g"><td><kbd>g</kbd> , <kbd>G</kbd></td><td>Jump to beginning and end of whole interface</td></tr><tr id="&lt;"><td><kbd>&lt;</kbd> ,<kbd>&gt;</kbd> or <kbd>{</kbd> ,<kbd>}</kbd></td><td>Horizontal scroll (i.e.: left or right)</td></tr><tr id="/"><td><kbd>/</kbd></td><td>Show incremental search</td></tr><tr id="F1"><td><kbd>F1</kbd></td><td>Jump to result (in incremental search) and back</td></tr><tr id="Esc"><td><kbd>Esc</kbd></td><td>Exit incremental search, clearing query</td></tr><tr id="Ctrl-W"><td><kbd>Ctrl-W</kbd></td><td>Delete whole word (in incremental search)</td></tr><tr id="Ctrl-K"><td><kbd>Ctrl-K</kbd></td><td>Delete whole line (in incremental search)</td></tr></tbody></table>

<a id="zi-console-preview"></a>

## Zi Console preview

<a id="install-zi-console"></a>

## Install Zi Console

> Prerequisites: [ZUI](https://github.com/z-shell/zui) library.

-   Standard
-   Turbo mode

Standard syntax:

```zi
zi load z-shell/zi-console
```

with use of [turbo mode](https://wiki.zshell.dev/docs/getting_started/overview/index.md#turbo-mode-zsh--53) and the [for](https://wiki.zshell.dev/docs/guides/syntax/for/index.md) syntax:

```zi
zi wait lucid for z-shell/zi-console
```

The plugin needs the `zsh/curses` Zsh module. You can check if it's available to your Zsh by executing:

```zsh
zmodload zsh/curses
```

If the call will return an error, then the `zsh/curses` module isn't available.

<a id="build-the-zshcurses-module"></a>

### Build the `zsh/curses` module

You can build the `zsh/curses`\-equipped Z shell with Zi by the following command:

```zi
zi ice id-as"zsh" atclone"./.preconfig
    CFLAGS='-I/usr/include -I/usr/local/include -g -O2 -Wall' \
    LDFLAGS='-L/usr/lib -L/usr/local/lib' ./configure --prefix='$ZPFX'" \
  atpull"%atclone" run-atpull make"install" pick"/dev/null"
zi load zsh-users/zsh
```

The command will build a custom `zsh` and install it under `$ZPFX` (`${ZI[HOME_DIR]}/polaris` by default). The path `$ZPFX/bin` is already added to `$PATH` by Zi at the first position, so starting `zsh` will run the new Z shell.

When on Gentoo, and possibly other systems, the `zsh` can still not have the ncurses library linked. To address this, utilize the [patch-dl](https://github.com/z-shell/z-a-patch-dl) annex and automatically patch the source first:

```zi
zi light z-shell/z-a-patch-dl
zi ice id-as"zsh" atclone"./.preconfig
    CFLAGS='-I/usr/include -I/usr/local/include -g -O2 -Wall' \
    LDFLAGS='-L/usr/lib -L/usr/local/lib' ./configure --prefix='$ZPFX'" \
  dl"http://gist.githubusercontent.com/z-shell/2373494c71cb6d1529344a2ed1a64b03/raw -> curses.patch" \
  patch'curses.patch' atpull"%atclone" reset \
  run-atpull make"install" pick"/dev/null"
zi load zsh-users/zsh
```

Then, to update, rebuild and reinstall the `zsh`, you can do `zi update zsh`. The binary can be safely copied over `/bin/zsh` as it has paths to all needed directories built-in.
