docs
Ziro is currently only supported on Linux. Tested on Arch Linux — other distros may work but are untested.
Downloads a prebuilt binary. No Rust required.
curl -sSL https://ziro.faizeenhoque.dev/install.sh | bashBuilds from the latest commit on main. Requires Rust and Cargo.
curl -sSL https://ziro.faizeenhoque.dev/install-rolling.sh | bashgit clone https://github.com/FaizeenHoque/ziro
cd ziro
cargo build --release
sudo mv target/release/ziro /usr/local/bin/ziroRequires Rust 1.78+. Install Rust from rustup.rs.
sudo to move the binary to /usr/local/bin.
Read the script before running if you're cautious about piping curl to bash.ziro # open a blank buffer
ziro file.txt # open a specific fileIf 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.
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.
| Key | Action |
|---|---|
Ctrl+E | Toggle the file explorer sidebar. |
Click folder | Expand or collapse that folder in place. |
Click file | Open the file in the editor. |
Drag entry | Move a file or folder into another directory. |
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.
| Feature | Behavior |
|---|---|
Tab bar | Shows every open file, with the current file highlighted. |
Click tab | Switch to that file immediately. |
Click x | Close that file tab. |
Drag tab | Reorder the open tabs by dragging. |
Unnamed save | Pressing Ctrl+S on a blank buffer opens the filename popup. |
Enter | Confirms the filename and saves the file. |
Esc | Cancels the filename popup without saving. |
Ctrl+Alt+W. Ctrl+W closes the current tab instead.These work anywhere in the document (not mode-gated), except where noted.
| Key | Action |
|---|---|
Ctrl+E | Open or close the file explorer. |
Ctrl+S | Save. Opens the filename popup if the buffer has no path yet. |
Ctrl+W | Close the current tab. |
Ctrl+Alt+W | Exit the editor immediately if the buffer is clean. |
Ctrl+Z | Undo the last change. |
Ctrl+Shift+Z | Redo the last undone change. |
↑ ↓ ← → | Move the cursor. |
Enter | Insert a newline, splitting the current line. |
Backspace | Delete the character before the cursor. |
Esc | Cancel the filename popup (only active while it's open). |
Ctrl+W closes the current file tab. If you close the last tab,
Ziro drops back to a blank buffer instead of exiting.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.
| Key | Action |
|---|---|
Ctrl+U | Undo |
Ctrl+R | Redo |
Ziro detects the language from the file's extension and applies syntax
highlighting via syntect,
using the Solarized (dark) theme. Supported languages include anything
syntect ships by default: Rust, Python, JavaScript, TypeScript, Go, C,
C++, HTML, CSS, JSON, TOML, Markdown, and more.