Choose a workspace
| Command | Behavior |
|---|---|
izar or izar status |
Print the status groups and a diff, then exit |
izar status --tui |
Open the interactive terminal workspace |
izar status --gui |
Open a native window when terminal input and output are available |
izar status -C ../project |
Inspect another repository |
izar status --filter README |
Narrow the visible paths |
If native startup fails, --gui reports the problem and attempts the terminal
workspace. Interactive TUI input also needs terminal output; redirected input or
output produces a status snapshot instead.
Review files in the terminal
- Run
izar status --tuifrom your repository root. - Move with
jandkto select a changed path. - Read the diff below the status groups.
+marks inserted lines and-marks deleted lines. - Press
/, type a path query, and press Enter to narrow the groups. Submit an empty query to show all paths again. - Press
rafter changing files in your editor to reload their status.
Path filtering uses Spica’s fuzzy matching when Spica is available, with plain substring matching as a fallback. It filters paths, rather than diff contents. The printed terminal diff contains at most 500 lines.
Stage or unstage a file
Press Space on a changed path to stage its current working-tree content. For a deleted tracked file, this stages the deletion. If the file is fully staged with no additional working-tree edits, Space unstages it instead.
A partially staged file can appear in both Staged and Unstaged. Space stages its
remaining edits regardless of which entry you reached. Use the explicit
unstage command if you want to remove its staged changes while keeping the file
content:
izar stage lib/example.rb
izar unstage lib/example.rb
Press a to stage all changes in the repository, including untracked files and
deletions. This acts on the whole repository even when a path filter is active.
Stage one hunk at a time
Press s on the selected path to stage its first available unstaged hunk. A hunk
is a block of nearby changed lines and their surrounding context. Press s
again to process the next remaining hunk after the workspace reloads.
For a fully staged file without further edits, s unstages its first staged
hunk. For a partially staged file, it stages the next unstaged hunk. There is no
separate hunk cursor or control for choosing an arbitrary hunk in the workspace.
Use the Ruby API to select a specific
hunk.
Both terminal and native diff views show index-to-working-tree changes. They
can be empty for a fully staged file even though s can unstage its first hunk.
Commit staged changes
In the terminal workspace, press c, enter a message, and press Enter. Izar
commits all staged changes, including files hidden by your current filter.
An empty message or an empty index produces an error.
For the same operation from a command prompt:
izar commit -m "Add installation instructions"
Commit identity comes from your Git configuration or Git author and committer environment variables. See getting started if an identity is missing.
Discard a file
In the terminal workspace, select the path, press uppercase X, and respond to
discard PATH? [y/N]. Only y or Y confirms the action; another response cancels
it. From the command line, explicit confirmation is also required:
izar discard README.md --yes
Discard restores a tracked file to its last committed content and resets its index entry. It removes an untracked or newly added file that has no version in HEAD. This discards both staged and unstaged changes for that path. The temporary stash mentioned in the result is restored before discard; it is not a retained backup of the discarded file.
Keyboard shortcuts
| Key | Action |
|---|---|
j / k |
Select the next / previous path |
| Space | Stage the selected file, or unstage it when fully staged |
a |
Stage all repository changes |
s |
Stage or unstage the first applicable hunk |
c |
Enter a message and commit staged changes in the TUI |
X |
Confirm and discard the selected path in the TUI |
/ |
Enter a path filter in the TUI |
r |
Reload status |
? |
Show a short help message |
q |
Quit |
You can change the stage and commit bindings in
configuration. Keep the default c when
you need the terminal’s commit-message prompt.
Use the native window
Click a path in the sidebar to select it, or move with j and k. Space, a,
s, r, ?, and q share the terminal workspace’s actions. The native view
highlights syntax and renders up to 50,000 diff lines.
The native window has no commit-message or discard-confirmation dialog, and
ignores the default c and X keys. Use the TUI or CLI for those operations. It
also has no filter-text entry; set an initial filter with
izar status --gui --filter README. Pressing / in the window clears the filter.
Choose appearance and diff settings in configuration.