docs
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.
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 | bashThere'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.
git 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. 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.
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.Mouse input works directly in the text area, independent of the file explorer and tab bar behavior described above.
| Action | Behavior |
|---|---|
Click | Moves the text cursor to that position in the document. |
Scroll wheel | Scrolls the viewport up or down without moving the cursor. |
Hover | Shows type/definition info after a short pause, if an LSP is running. |
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. |
Ctrl+← / Ctrl+→ | Jump the cursor a full word left or right. |
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+Z | Undo |
Ctrl+Shift+Z | Redo |
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.