docs

Everything you need to run Ziro.

Installation

Ziro supports Linux, macOS (Intel and Apple Silicon), and Windows. Tested primarily on Arch Linux — other Linux distros and macOS should work but are less thoroughly tested.

Stable (Linux & macOS)

Downloads a prebuilt binary. No Rust required.

bash
curl -sSL https://ziro.faizeenhoque.dev/install.sh | bash

Rolling (Linux & macOS)

Builds from the latest commit on main. Requires Rust and Cargo.

bash
curl -sSL https://ziro.faizeenhoque.dev/install-rolling.sh | bash
» note
Rolling may be unstable. Use stable unless you want the absolute latest changes.

Windows

There's no install script for Windows yet. Download ziro-windows-x86_64.exe directly from the GitHub Releases page and run it, or place it somewhere on your PATH.

» note
The curl-bash scripts above are Linux/macOS only — they won't run natively in PowerShell or cmd. Use the manual download until a proper Windows installer exists.

Building from source

bash
git clone https://github.com/FaizeenHoque/ziro
cd ziro
cargo build --release
sudo mv target/release/ziro /usr/local/bin/ziro

Requires Rust 1.78+. Install Rust from rustup.rs. On Windows, build with cargo build --release --target x86_64-pc-windows-msvc instead of moving to /usr/local/bin — copy the resulting .exe wherever you keep it.

» note
Both install scripts require sudo to move the binary to /usr/local/bin. Read the script before running if you're cautious about piping curl to bash.

Opening Files

ziro              # open a blank buffer
ziro file.txt     # open a specific file

If you open Ziro without a file, you'll start with a blank buffer. You'll be prompted for a filename the first time you save.

File Explorer

The explorer opens as a sidebar and keeps folder state inline instead of jumping between directories. Click a folder to expand or collapse it. Click a file to load it in the editor. Drag entries to move them within the tree.

KeyAction
Ctrl+EToggle the file explorer sidebar.
Click folderExpand or collapse that folder in place.
Click fileOpen the file in the editor.
Drag entryMove a file or folder into another directory.
» note
The editor shifts to the right while the explorer is open, so the cursor stays lined up with the visible text area.

Tabs & Saving

Ziro keeps open files in a tab bar above the editor. Opening a file adds it to the bar, clicking a tab switches to it, dragging a tab reorders the bar, and closing the last tab returns you to a blank buffer. Each tab keeps its own cursor and scroll position.

FeatureBehavior
Tab barShows every open file, with the current file highlighted.
Click tabSwitch to that file immediately.
Click xClose that file tab.
Drag tabReorder the open tabs by dragging.
Unnamed savePressing Ctrl+S on a blank buffer opens the filename popup.
EnterConfirms the filename and saves the file.
EscCancels the filename popup without saving.
tip
If you want to exit immediately, use Ctrl+Alt+W. Ctrl+W closes the current tab instead.

Mouse Controls

Mouse input works directly in the text area, independent of the file explorer and tab bar behavior described above.

ActionBehavior
ClickMoves the text cursor to that position in the document.
Scroll wheelScrolls the viewport up or down without moving the cursor.
HoverShows type/definition info after a short pause, if an LSP is running.
» note
If you scroll far enough that the cursor's line goes off-screen, the cursor snaps back to the nearest visible line rather than staying hidden off-screen.

Keybindings

These work anywhere in the document (not mode-gated), except where noted.

KeyAction
Ctrl+EOpen or close the file explorer.
Ctrl+SSave. Opens the filename popup if the buffer has no path yet.
Ctrl+WClose the current tab.
Ctrl+Alt+WExit the editor immediately if the buffer is clean.
Ctrl+ZUndo the last change.
Ctrl+Shift+ZRedo the last undone change.
↑ ↓ ← →Move the cursor.
Ctrl+← / Ctrl+→Jump the cursor a full word left or right.
EnterInsert a newline, splitting the current line.
BackspaceDelete the character before the cursor.
EscCancel the filename popup (only active while it's open).
tip
Ctrl+W closes the current file tab. If you close the last tab, Ziro drops back to a blank buffer instead of exiting.

Undo & Redo

Ziro snapshots the full buffer and cursor position before each edit, not per-keystroke. Consecutive character insertions and consecutive backspaces are grouped into a single undo step; typing a word and then deleting it are still two separate steps.

KeyAction
Ctrl+ZUndo
Ctrl+Shift+ZRedo
» note
Redo history is cleared as soon as you make a new edit after undoing — same behavior you'd expect from any standard editor.

Syntax Highlighting

Ziro detects the language from the file's extension and applies syntax highlighting via syntect, using the Ziro Dark theme. Supported languages include anything syntect ships by default: Rust, Python, JavaScript, TypeScript, Go, C, C++, HTML, CSS, JSON, TOML, Markdown, and more.

» note
If you open Ziro without a filename, there's no extension to detect — highlighting falls back to plain text until you save the buffer with a real name.