Skip to content

Install and first run

Install the terminal app, sign in, and keep it up to date.

The terminal app (the TUI) is one command, zidane.

zidane
A chat in the terminal app: the transcript, the prompt and the footer.

Install and run#

Terminal
curl -fsSL https://zidane.si/install | sh
zidane

The script downloads the binary for your machine from https://zidane.si/dl, checks its SHA-256 against the release manifest (and the manifest's signature when minisign is installed), and puts it in ~/.local/bin. Options go after sh -s --: --prefix <dir> installs to <dir>/bin, and --version <v> picks the previous release. Run the script again to update.

Every file is also on the download page. The npm package pulls one prebuilt binary for your machine. A small launcher runs it on Node 18 or later, so you do not need Bun.

PlatformPackage
macOS, Apple siliconzidane-tui-darwin-arm64
macOS, Intelzidane-tui-darwin-x64
Linux x64 (glibc)zidane-tui-linux-x64
Linux arm64 (glibc)zidane-tui-linux-arm64

The launcher checks your C library with ldd --version. Alpine and other musl systems have no binary yet, and the launcher says so. With --ignore-scripts, the launcher finds the binary on first run.

First launch#

On a fresh install, zidane opens the setup wizard. It has the steps of the desktop app: Welcome, Connect, Bring your setup, Connectors, Skills, Extensions, Look, Conversation, Autonomy, Features and Ready. A step that does not apply is left out. Full setup takes about two minutes. Quick start asks for a provider and your setup from other agents, and keeps the defaults for the rest.

zidane
The setup wizard on a first launch, with what zidane found on this computer.
KeyDoes
↑ ↓Move. On Welcome, Look and the model list of Connect, the move also picks the row.
SpacePick the row, or turn it on or off
EnterContinue. On Ready, Start, or go back to the step of a recap line.
SSkip the step and keep its values
EscGo back one step

The terminal app needs a provider, so Connect has no Skip. Pick a provider to set it up, as in the steps below. A provider that is ready shows its model, its effort and a test message that it answers.

zidane
Connect with a key from the environment, the model, the effort and a live test.

Skills lists the recommended sources. Space opens one, or the last row, where you type a source. In a source, Space picks a skill, A picks them all, and Esc goes back to the sources. Your picks stay when you open another source.

zidane
Skills with a recommended source open and two skills picked.

Connectors, skills and extensions install in the background once you pass their step. Ready lists them. Press Enter on a failed one to try again, or on a connector that needs its browser sign-in to sign in. Look shows the theme on the whole app as you move. A provider that an extension adds shows in Connect after you install the extension and start zidane again.

zidane
Features, each switch with what it does and an example.

An install from before the wizard never opens it on its own. To open it again, use Run setup again at the end of Settings › Agent, or Run setup in the command palette. It then starts on Connect, with your current values, and Esc on that first step closes it. ZIDANE_NO_ONBOARDING=1 turns it off at launch. Every step, and what each one writes, is on setup wizard.

Sign in#

With no provider set up and the wizard off, zidane opens the provider picker. Connect in the wizard uses the same steps:

  1. 1

    Pick a provider

    Each provider's needs are on providers.

  2. 2

    Pick a method

    API key, or OAuth in the browser when the provider offers it. A provider with one method skips this step.

  3. 3

    Enter the credential

    Paste the key, or finish OAuth in the browser. Local LLM asks for a base URL, an optional key, a default model and a context window.

OAuth on a provider you already use asks which account to replace or what to name the new one. Keys from environment variables also work.

Add or switch providers later in Settings › Authentication. The credentials file location is on files and folders.

What opens#

You launchYou see
First timeThe setup wizard
With a provider set upYour last session (Settings › Agent › Start from last session)
With that setting offThe sessions list

Esc in a chat opens the sessions list. Esc there returns to the open chat, or quits when none is open.

When the prompt or an input has selected text, CtrlC copies it and CtrlX cuts it. Text that you select with the mouse goes to the clipboard when you release the button. With no selection in the prompt or an input, CtrlC follows Settings › UI › Ctrl+C behavior:

ChoiceCtrl+C does
Quit (default)Quits
ConfirmAsks first
Stop, then quitThe first press stops the run (or clears the prompt). A second press within 1.5 seconds quits.

Command-line switches#

zidane flags
FlagDescription
--no-daemonForce the in-process runtime: the kill switch for the daemon setting (sets ZIDANE_NO_DAEMON=1).
--no-remoteTurn remote hosts off (sets ZIDANE_NO_REMOTE=1): refuses --host and ignores ZIDANE_HOST_URL.
--host <wss-url>Launch the TUI on a remote zidane server (also ZIDANE_HOST_URL).
--token-file <path|->Read the server's device token from a file, or from stdin with - (also ZIDANE_HOST_TOKEN).
--token <t|->The device token itself. It shows in ps and shell history: prefer --token-file.
-v, --versionPrint the version and exit.
-h, --helpPrint this help and exit.

--no-daemon: the daemon. --no-remote, --host and the token flags: remote hosts. Subcommands (run, daemon, attach, server, machine, upgrade): CLI.

Updates#

The footer checks for a new zidane-tui once a day and shows ↑ vX.Y.Z when one exists. Install it with:

Terminal
zidane upgrade

The chip then turns into ↻ vX.Y.Z. Restart the app to use the new version. To install new releases in the background, turn on Settings › Agent › Install updates automatically. The app never restarts on its own, and the daemon restarts once nothing runs. A global desktop app install (zidane-gui) upgrades in the same run. Flags and exit codes: CLI.

To stop the checkDo
In the appTurn off Settings › Agent › Check for updates
For a shellSet ZIDANE_NO_UPDATE=1 or NO_UPDATE_NOTIFIER=1
In CINothing: the check never runs when CI is set

Same engine as the desktop app#

The terminal app and the desktop app run the same chat engine and read the same files: one engine, two apps.

Reference#

  • zidane/tui: runTui and the options to embed the app